Implements the OpenDDS::DCPS::ReaderRemote interface that is used to add and remove associations. More...
#include <DataReaderRemoteImpl.h>
Public Member Functions | |
DataReaderRemoteImpl (DataReaderCallbacks &parent) | |
virtual | ~DataReaderRemoteImpl () |
virtual void | add_association (const RepoId &yourId, const WriterAssociation &writer, bool active) |
virtual void | association_complete (const RepoId &remote_id) |
virtual void | remove_associations (const WriterIdSeq &writers, CORBA::Boolean callback) |
virtual void | update_incompatible_qos (const IncompatibleQosStatus &status) |
void | detach_parent () |
Private Attributes | |
WeakRcHandle< DataReaderCallbacks > | parent_ |
Implements the OpenDDS::DCPS::ReaderRemote interface that is used to add and remove associations.
Definition at line 34 of file DataReaderRemoteImpl.h.
OpenDDS::DCPS::DataReaderRemoteImpl::DataReaderRemoteImpl | ( | DataReaderCallbacks & | parent | ) | [explicit] |
Definition at line 17 of file DataReaderRemoteImpl.cpp.
00018 : parent_(parent) 00019 { 00020 }
OpenDDS::DCPS::DataReaderRemoteImpl::~DataReaderRemoteImpl | ( | ) | [virtual] |
Definition at line 24 of file DataReaderRemoteImpl.cpp.
void OpenDDS::DCPS::DataReaderRemoteImpl::add_association | ( | const RepoId & | yourId, | |
const WriterAssociation & | writer, | |||
bool | active | |||
) | [virtual] |
Definition at line 34 of file DataReaderRemoteImpl.cpp.
References ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::RcHandle< T >::in(), LM_DEBUG, OpenDDS::DCPS::WeakRcHandle< T >::lock(), parent_, and OpenDDS::DCPS::WriterAssociation::writerId.
00037 { 00038 if (DCPS_debug_level) { 00039 GuidConverter writer_converter(yourId); 00040 GuidConverter reader_converter(writer.writerId); 00041 ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t) DataReaderRemoteImpl::add_association - ") 00042 ACE_TEXT("local %C remote %C\n"), 00043 std::string(writer_converter).c_str(), 00044 std::string(reader_converter).c_str())); 00045 } 00046 00047 // the local copy of parent_ is necessary to prevent race condition 00048 RcHandle<DataReaderCallbacks> parent = parent_.lock(); 00049 if (parent.in()) { 00050 parent->add_association(yourId, writer, active); 00051 } 00052 }
void OpenDDS::DCPS::DataReaderRemoteImpl::association_complete | ( | const RepoId & | remote_id | ) | [virtual] |
Definition at line 55 of file DataReaderRemoteImpl.cpp.
References OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::WeakRcHandle< T >::lock(), and parent_.
00056 { 00057 // the local copy of parent_ is necessary to prevent race condition 00058 RcHandle<DataReaderCallbacks> parent = parent_.lock(); 00059 if (parent.in()) { 00060 parent->association_complete(remote_id); 00061 } 00062 }
void OpenDDS::DCPS::DataReaderRemoteImpl::detach_parent | ( | ) |
Definition at line 29 of file DataReaderRemoteImpl.cpp.
Referenced by OpenDDS::DCPS::InfoRepoDiscovery::removeDataReaderRemote().
void OpenDDS::DCPS::DataReaderRemoteImpl::remove_associations | ( | const WriterIdSeq & | writers, | |
CORBA::Boolean | callback | |||
) | [virtual] |
Definition at line 65 of file DataReaderRemoteImpl.cpp.
References OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::WeakRcHandle< T >::lock(), and parent_.
00067 { 00068 // the local copy of parent_ is necessary to prevent race condition 00069 RcHandle<DataReaderCallbacks> parent = parent_.lock(); 00070 if (parent.in()) { 00071 parent->remove_associations(writers, notify_lost); 00072 } 00073 }
void OpenDDS::DCPS::DataReaderRemoteImpl::update_incompatible_qos | ( | const IncompatibleQosStatus & | status | ) | [virtual] |
Definition at line 76 of file DataReaderRemoteImpl.cpp.
References OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::WeakRcHandle< T >::lock(), and parent_.
00078 { 00079 // the local copy of parent_ is necessary to prevent race condition 00080 RcHandle<DataReaderCallbacks> parent = parent_.lock(); 00081 if (parent.in()) { 00082 parent->update_incompatible_qos(status); 00083 } 00084 }
Definition at line 56 of file DataReaderRemoteImpl.h.
Referenced by add_association(), association_complete(), remove_associations(), and update_incompatible_qos().