MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / association_complete_i

Method association_complete_i

dds/DCPS/DataWriterImpl.cpp:380–560  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

378}
379
380void
381DataWriterImpl::association_complete_i(const GUID_t& remote_id)
382{
383 DBG_ENTRY_LVL("DataWriterImpl", "association_complete_i", 6);
384
385 bool reader_durable = false;
386#ifndef OPENDDS_NO_CONTENT_FILTERED_TOPIC
387 OPENDDS_STRING filterClassName;
388 RcHandle<FilterEvaluator> eval;
389 DDS::StringSeq expression_params;
390#endif
391 {
392 ACE_GUARD(ACE_Recursive_Thread_Mutex, guard, this->lock_);
393
394 if (DCPS_debug_level >= 1) {
395 ACE_DEBUG((LM_DEBUG,
396 ACE_TEXT("(%P|%t) DataWriterImpl::association_complete_i - ")
397 ACE_TEXT("bit %d local %C remote %C\n"),
398 is_bit_,
399 LogGuid(this->publication_id_).c_str(),
400 LogGuid(remote_id).c_str()));
401 }
402
403 if (insert(readers_, remote_id) == -1) {
404 ACE_ERROR((LM_ERROR,
405 ACE_TEXT("(%P|%t) ERROR: DataWriterImpl::association_complete_i: ")
406 ACE_TEXT("insert %C from pending failed.\n"),
407 LogGuid(remote_id).c_str()));
408 }
409 }
410 {
411 ACE_GUARD(ACE_Thread_Mutex, reader_info_guard, this->reader_info_lock_);
412 RepoIdToReaderInfoMap::const_iterator it = reader_info_.find(remote_id);
413
414 if (it != reader_info_.end()) {
415 reader_durable = it->second.durable_;
416#ifndef OPENDDS_NO_CONTENT_FILTERED_TOPIC
417 filterClassName = it->second.filter_class_name_;
418 eval = it->second.eval_;
419 expression_params = it->second.expression_params_;
420#endif
421 }
422 }
423
424 if (this->monitor_) {
425 this->monitor_->report();
426 }
427
428 if (!is_bit_) {
429
430 RcHandle<DomainParticipantImpl> participant = this->participant_servant_.lock();
431
432 if (!participant)
433 return;
434
435 data_container_->add_reader_acks(remote_id, get_max_sn());
436
437 const DDS::InstanceHandle_t handle = participant->assign_handle(remote_id);

Callers

nothing calls this directly

Calls 15

LogGuidFunction · 0.85
insertFunction · 0.85
get_db_lockFunction · 0.85
moveFunction · 0.85
add_reader_acksMethod · 0.80
assign_handleMethod · 0.80
reenqueue_allMethod · 0.80
get_resend_dataMethod · 0.80
is_suspendedMethod · 0.80
enqueue_tailMethod · 0.80
message_sentMethod · 0.80
message_droppedMethod · 0.80

Tested by

no test coverage detected