OpenDDS  Snapshot(2023/04/28-20:55)
Public Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::DataWriterRemoteImpl Class Reference

Implements the OpenDDS::DCPS::DataWriterRemote interface. More...

#include <DataWriterRemoteImpl.h>

Inheritance diagram for OpenDDS::DCPS::DataWriterRemoteImpl:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::DataWriterRemoteImpl:
Collaboration graph
[legend]

Public Member Functions

 DataWriterRemoteImpl (DataWriterCallbacks &parent)
 
virtual ~DataWriterRemoteImpl ()
 
virtual void add_association (const GUID_t &yourId, const ReaderAssociation &readers, bool active)
 
virtual void remove_associations (const ReaderIdSeq &readers, CORBA::Boolean callback)
 
virtual void update_incompatible_qos (const IncompatibleQosStatus &status)
 
virtual void update_subscription_params (const GUID_t &readerId, const DDS::StringSeq &exprParams)
 
void detach_parent ()
 

Private Attributes

WeakRcHandle< DataWriterCallbacksparent_
 

Detailed Description

Implements the OpenDDS::DCPS::DataWriterRemote interface.

Definition at line 31 of file DataWriterRemoteImpl.h.

Constructor & Destructor Documentation

◆ DataWriterRemoteImpl()

OpenDDS::DCPS::DataWriterRemoteImpl::DataWriterRemoteImpl ( DataWriterCallbacks parent)
explicit

Definition at line 19 of file DataWriterRemoteImpl.cpp.

20  : parent_(parent)
21 {
22 }
WeakRcHandle< DataWriterCallbacks > parent_

◆ ~DataWriterRemoteImpl()

OpenDDS::DCPS::DataWriterRemoteImpl::~DataWriterRemoteImpl ( )
virtual

Definition at line 26 of file DataWriterRemoteImpl.cpp.

27 {
28 }

Member Function Documentation

◆ add_association()

void OpenDDS::DCPS::DataWriterRemoteImpl::add_association ( const GUID_t yourId,
const ReaderAssociation readers,
bool  active 
)
virtual

Definition at line 36 of file DataWriterRemoteImpl.cpp.

References ACE_DEBUG, ACE_TEXT(), OpenDDS::DCPS::LogGuid::c_str(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::RcHandle< T >::in(), LM_DEBUG, OpenDDS::DCPS::WeakRcHandle< T >::lock(), parent_, and OpenDDS::DCPS::ReaderAssociation::readerId.

39 {
40  if (DCPS_debug_level) {
41  LogGuid writer_log(yourId);
42  LogGuid reader_log(reader.readerId);
43  ACE_DEBUG((LM_DEBUG, ACE_TEXT("(%P|%t) DataWriterRemoteImpl::add_association - ")
44  ACE_TEXT("local %C remote %C\n"),
45  writer_log.c_str(),
46  reader_log.c_str()));
47  }
48 
49  // the local copy of parent_ is necessary to prevent race condition
50  RcHandle<DataWriterCallbacks> parent = parent_.lock();
51  if (parent.in()) {
52  parent->add_association(yourId, reader, active);
53  }
54 }
#define ACE_DEBUG(X)
WeakRcHandle< DataWriterCallbacks > parent_
ACE_TEXT("TCP_Factory")
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30
RcHandle< T > lock() const
Definition: RcObject.h:188

◆ detach_parent()

void OpenDDS::DCPS::DataWriterRemoteImpl::detach_parent ( )

Definition at line 31 of file DataWriterRemoteImpl.cpp.

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

32 {
33 }

◆ remove_associations()

void OpenDDS::DCPS::DataWriterRemoteImpl::remove_associations ( const ReaderIdSeq readers,
CORBA::Boolean  callback 
)
virtual

Definition at line 57 of file DataWriterRemoteImpl.cpp.

References OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::WeakRcHandle< T >::lock(), and parent_.

59 {
60  // the local copy of parent_ is necessary to prevent race condition
61  RcHandle<DataWriterCallbacks> parent = parent_.lock();
62  if (parent.in()) {
63  parent->remove_associations(readers, notify_lost);
64  }
65 }
WeakRcHandle< DataWriterCallbacks > parent_
RcHandle< T > lock() const
Definition: RcObject.h:188

◆ update_incompatible_qos()

void OpenDDS::DCPS::DataWriterRemoteImpl::update_incompatible_qos ( const IncompatibleQosStatus status)
virtual

Definition at line 68 of file DataWriterRemoteImpl.cpp.

References OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::WeakRcHandle< T >::lock(), and parent_.

70 {
71  // the local copy of parent_ is necessary to prevent race condition
72  RcHandle<DataWriterCallbacks> parent = parent_.lock();
73  if (parent.in()) {
74  parent->update_incompatible_qos(status);
75  }
76 }
WeakRcHandle< DataWriterCallbacks > parent_
RcHandle< T > lock() const
Definition: RcObject.h:188

◆ update_subscription_params()

void OpenDDS::DCPS::DataWriterRemoteImpl::update_subscription_params ( const GUID_t readerId,
const DDS::StringSeq exprParams 
)
virtual

Definition at line 79 of file DataWriterRemoteImpl.cpp.

References OpenDDS::DCPS::RcHandle< T >::in(), OpenDDS::DCPS::WeakRcHandle< T >::lock(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, and parent_.

81 {
82  // the local copy of parent_ is necessary to prevent race condition
83  RcHandle<DataWriterCallbacks> parent = parent_.lock();
84  if (parent.in()) {
85  parent->update_subscription_params(readerId, params);
86  }
87 }
WeakRcHandle< DataWriterCallbacks > parent_
RcHandle< T > lock() const
Definition: RcObject.h:188

Member Data Documentation

◆ parent_

WeakRcHandle<DataWriterCallbacks> OpenDDS::DCPS::DataWriterRemoteImpl::parent_
private

The documentation for this class was generated from the following files: