| 378 | } |
| 379 | |
| 380 | void |
| 381 | DataWriterImpl::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); |
nothing calls this directly
no test coverage detected