| 
    OpenDDS
    Snapshot(2023/03/03-19:27)
    
   | 
 
#include <DataLinkSet.h>


Public Types | |
| typedef ACE_SYNCH_MUTEX | LockType | 
| typedef ACE_Guard< LockType > | GuardType | 
Public Member Functions | |
| DataLinkSet () | |
| virtual | ~DataLinkSet () | 
| int | insert_link (const DataLink_rch &link) | 
| void | remove_link (const DataLink_rch &link) | 
| void | send (DataSampleElement *sample) | 
| Send to each DataLink in the set.  More... | |
| void | send_control (DataSampleElement *sample) | 
| Send a control message that is wrapped in a DataSampleElement.  More... | |
| SendControlStatus | send_control (GUID_t pub_id, const TransportSendListener_rch &listener, const DataSampleHeader &header, Message_Block_Ptr msg) | 
| Send control message to each DataLink in the set.  More... | |
| void | send_response (GUID_t sub_id, const DataSampleHeader &header, Message_Block_Ptr response) | 
| bool | remove_sample (const DataSampleElement *sample) | 
| bool | remove_all_msgs (const GUID_t &pub_id) | 
| void | send_start (DataLinkSet *link_set) | 
| void | send_stop (GUID_t repoId) | 
| DataLinkSet_rch | select_links (const GUID_t *remoteIds, const CORBA::ULong num_targets) | 
| bool | empty () | 
| void | send_final_acks (const GUID_t &readerid) | 
| typedef | OPENDDS_MAP (DataLinkIdType, DataLink_rch) MapType | 
| LockType & | lock () | 
| Accessors for external iteration.  More... | |
| MapType & | map () | 
| void | terminate_send_if_suspended () | 
| bool | is_leading (const GUID_t &writer_id, const GUID_t &reader_id) const | 
  Public Member Functions inherited from OpenDDS::DCPS::RcObject | |
| virtual | ~RcObject () | 
| virtual void | _add_ref () | 
| virtual void | _remove_ref () | 
| long | ref_count () const | 
| WeakObject * | _get_weak_object () const | 
Private Member Functions | |
| void | copy_map_to (MapType &target) | 
| lock and copy map for lock-free access  More... | |
Private Attributes | |
| MapType | map_ | 
| Hash map for DataLinks.  More... | |
| LockType | lock_ | 
| SendResponseListener | send_response_listener_ | 
| Listener for TransportSendControlElements created in send_response.  More... | |
Additional Inherited Members | |
  Protected Member Functions inherited from OpenDDS::DCPS::RcObject | |
| RcObject () | |
Definition at line 30 of file DataLinkSet.h.
Definition at line 78 of file DataLinkSet.h.
Definition at line 77 of file DataLinkSet.h.
| OpenDDS::DCPS::DataLinkSet::DataLinkSet | ( | ) | 
Definition at line 30 of file DataLinkSet.cpp.
References DBG_ENTRY_LVL.
      
  | 
  virtual | 
      
  | 
  private | 
lock and copy map for lock-free access
Definition at line 256 of file DataLinkSet.inl.
References ACE_INLINE, lock_, and map_.
Referenced by send_control().
| bool OpenDDS::DCPS::DataLinkSet::empty | ( | void | ) | 
Definition at line 87 of file DataLinkSet.cpp.
| int OpenDDS::DCPS::DataLinkSet::insert_link | ( | const DataLink_rch & | link | ) | 
Definition at line 42 of file DataLinkSet.cpp.
References OpenDDS::DCPS::bind(), DBG_ENTRY_LVL, OpenDDS::DCPS::DataLink::id(), lock_, and map_.
Referenced by OpenDDS::DCPS::TransportClient::add_link(), OpenDDS::DCPS::TransportClient::send_control_to(), and OpenDDS::DCPS::TransportClient::send_response().
| bool OpenDDS::DCPS::DataLinkSet::is_leading | ( | const GUID_t & | writer_id, | 
| const GUID_t & | reader_id | ||
| ) | const | 
Definition at line 107 of file DataLinkSet.cpp.
Referenced by OpenDDS::DCPS::TransportClient::is_leading().
      
  | 
  inline | 
      
  | 
  inline | 
Definition at line 85 of file DataLinkSet.h.
| typedef OpenDDS::DCPS::DataLinkSet::OPENDDS_MAP | ( | DataLinkIdType | , | 
| DataLink_rch | |||
| ) | 
| ACE_INLINE bool OpenDDS::DCPS::DataLinkSet::remove_all_msgs | ( | const GUID_t & | pub_id | ) | 
Definition at line 185 of file DataLinkSet.inl.
References ACE_INLINE, DBG_ENTRY_LVL, lock_, and map_.
Referenced by OpenDDS::DCPS::TransportClient::remove_all_msgs().
| void OpenDDS::DCPS::DataLinkSet::remove_link | ( | const DataLink_rch & | link | ) | 
Definition at line 50 of file DataLinkSet.cpp.
References ACE_TEXT(), DBG_ENTRY_LVL, OpenDDS::DCPS::DataLink::id(), LM_DEBUG, lock_, map_, OpenDDS::DCPS::unbind(), and VDBG.
Referenced by OpenDDS::DCPS::TransportClient::disassociate().
| ACE_INLINE bool OpenDDS::DCPS::DataLinkSet::remove_sample | ( | const DataSampleElement * | sample | ) | 
Definition at line 166 of file DataLinkSet.inl.
References ACE_INLINE, DBG_ENTRY_LVL, lock_, map_, and OpenDDS::DCPS::REMOVE_RELEASED.
Referenced by OpenDDS::DCPS::TransportClient::remove_sample().
| OpenDDS::DCPS::DataLinkSet_rch OpenDDS::DCPS::DataLinkSet::select_links | ( | const GUID_t * | remoteIds, | 
| const CORBA::ULong | num_targets | ||
| ) | 
Definition at line 64 of file DataLinkSet.cpp.
References OpenDDS::DCPS::bind(), DBG_ENTRY_LVL, lock_, and map_.
Referenced by OpenDDS::DCPS::TransportClient::send_i().
| ACE_INLINE void OpenDDS::DCPS::DataLinkSet::send | ( | DataSampleElement * | sample | ) | 
Send to each DataLink in the set.
Definition at line 22 of file DataLinkSet.inl.
References ACE_INLINE, OpenDDS::DCPS::DataSampleHeader::add_cfentries(), OpenDDS::DCPS::CONTENT_FILTER_FLAG, OpenDDS::DCPS::TransportSendListener::data_dropped(), DBG_ENTRY_LVL, ACE_Message_Block::duplicate(), OpenDDS::DCPS::DataSampleElement::get_filter_per_link(), OpenDDS::DCPS::DataSampleElement::get_sample(), OpenDDS::DCPS::DataSampleElement::get_send_listener(), LM_DEBUG, lock_, map_, OpenDDS::DCPS::move(), OpenDDS::DCPS::TransportSendElement::msg(), OpenDDS::DCPS::DataSampleHeader::test_flag(), and VDBG_LVL.
| ACE_INLINE void OpenDDS::DCPS::DataLinkSet::send_control | ( | DataSampleElement * | sample | ) | 
Send a control message that is wrapped in a DataSampleElement.
Definition at line 81 of file DataLinkSet.inl.
References ACE_INLINE, DBG_ENTRY_LVL, LM_DEBUG, lock_, map_, and VDBG.
Referenced by OpenDDS::DCPS::TransportClient::send_control(), and OpenDDS::DCPS::TransportClient::send_control_to().
| ACE_INLINE OpenDDS::DCPS::SendControlStatus OpenDDS::DCPS::DataLinkSet::send_control | ( | GUID_t | pub_id, | 
| const TransportSendListener_rch & | listener, | ||
| const DataSampleHeader & | header, | ||
| Message_Block_Ptr | msg | ||
| ) | 
Send control message to each DataLink in the set.
Definition at line 100 of file DataLinkSet.inl.
References ACE_DEBUG, ACE_INLINE, ACE_TEXT(), OpenDDS::DCPS::LogGuid::c_str(), copy_map_to(), DBG_ENTRY_LVL, OpenDDS::DCPS::DCPS_debug_level, header, OpenDDS::DCPS::RcHandle< T >::in(), LM_DEBUG, OpenDDS::DCPS::move(), and OpenDDS::DCPS::SEND_CONTROL_OK.
| ACE_INLINE void OpenDDS::DCPS::DataLinkSet::send_final_acks | ( | const GUID_t & | readerid | ) | 
Definition at line 273 of file DataLinkSet.inl.
Referenced by OpenDDS::DCPS::TransportClient::send_final_acks().
| ACE_INLINE void OpenDDS::DCPS::DataLinkSet::send_response | ( | GUID_t | sub_id, | 
| const DataSampleHeader & | header, | ||
| Message_Block_Ptr | response | ||
| ) | 
Definition at line 141 of file DataLinkSet.inl.
References ACE_INLINE, DBG_ENTRY_LVL, lock_, map_, OpenDDS::DCPS::move(), send_response_listener_, and OpenDDS::DCPS::SendResponseListener::track_message().
Referenced by OpenDDS::DCPS::TransportClient::send_response().
| ACE_INLINE void OpenDDS::DCPS::DataLinkSet::send_start | ( | DataLinkSet * | link_set | ) | 
Calls send_start() on the links in link_set and also adds the links from link_set to *this.
Definition at line 202 of file DataLinkSet.inl.
References ACE_ERROR, ACE_INLINE, OpenDDS::DCPS::bind(), DBG_ENTRY_LVL, LM_ERROR, lock_, map_, and OpenDDS::DCPS::OPENDDS_VECTOR().
Referenced by OpenDDS::DCPS::TransportClient::send_i().
| ACE_INLINE void OpenDDS::DCPS::DataLinkSet::send_stop | ( | GUID_t | repoId | ) | 
Calls send_stop() on the links with ID repoId and then clears the set.
Definition at line 239 of file DataLinkSet.inl.
References ACE_INLINE, DBG_ENTRY_LVL, lock_, and map_.
Referenced by OpenDDS::DCPS::TransportClient::send_i().
| void OpenDDS::DCPS::DataLinkSet::terminate_send_if_suspended | ( | ) | 
Definition at line 94 of file DataLinkSet.cpp.
Referenced by OpenDDS::DCPS::TransportClient::terminate_send_if_suspended().
      
  | 
  mutableprivate | 
This lock will protect critical sections of code that play a role in the sending of data.
Definition at line 100 of file DataLinkSet.h.
Referenced by copy_map_to(), empty(), insert_link(), is_leading(), remove_all_msgs(), remove_link(), remove_sample(), select_links(), send(), send_control(), send_final_acks(), send_response(), send_start(), send_stop(), and terminate_send_if_suspended().
      
  | 
  private | 
Hash map for DataLinks.
Definition at line 96 of file DataLinkSet.h.
Referenced by copy_map_to(), empty(), insert_link(), is_leading(), remove_all_msgs(), remove_link(), remove_sample(), select_links(), send(), send_control(), send_final_acks(), send_response(), send_start(), send_stop(), and terminate_send_if_suspended().
      
  | 
  private | 
Listener for TransportSendControlElements created in send_response.
Definition at line 103 of file DataLinkSet.h.
Referenced by send_response().
 1.8.13