OpenDDS::DCPS::DataReaderRemoteImpl Class Reference

Implements the OpenDDS::DCPS::ReaderRemote interface that is used to add and remove associations. More...

#include <DataReaderRemoteImpl.h>

Collaboration diagram for OpenDDS::DCPS::DataReaderRemoteImpl:
Collaboration graph
[legend]

List of all members.

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< DataReaderCallbacksparent_

Detailed Description

Implements the OpenDDS::DCPS::ReaderRemote interface that is used to add and remove associations.

Definition at line 34 of file DataReaderRemoteImpl.h.


Constructor & Destructor Documentation

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.

00025 {
00026 }


Member Function Documentation

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

void OpenDDS::DCPS::DataReaderRemoteImpl::detach_parent (  ) 

Definition at line 29 of file DataReaderRemoteImpl.cpp.

Referenced by OpenDDS::DCPS::InfoRepoDiscovery::removeDataReaderRemote().

00030 {
00031 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:


Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1