OpenDDS
Snapshot(2023/04/07-19:43)
|
#include <MulticastSession.h>
Public Member Functions | |
virtual | ~MulticastSession () |
MulticastDataLink * | link () |
MulticastPeer | remote_peer () const |
bool | acked () |
void | set_acked () |
virtual bool | is_reliable () |
void | syn_received (const Message_Block_Ptr &control) |
void | send_all_syn (const MonotonicTimePoint &now) |
void | send_syn (const GUID_t &local_writer, const GUID_t &remote_reader) |
void | synack_received (const Message_Block_Ptr &control) |
void | send_synack (const GUID_t &local_reader, const GUID_t &remote_writer) |
virtual void | send_naks () |
virtual bool | check_header (const TransportHeader &header)=0 |
virtual void | record_header_received (const TransportHeader &header)=0 |
virtual bool | ready_to_deliver (const TransportHeader &header, const ReceivedDataSample &data)=0 |
virtual void | release_remote (const GUID_t &) |
virtual bool | control_received (char submessage_id, const Message_Block_Ptr &control) |
virtual bool | start (bool active, bool acked)=0 |
virtual void | stop () |
bool | reassemble (ReceivedDataSample &data, const TransportHeader &header) |
void | add_remote (const GUID_t &local) |
void | add_remote (const GUID_t &local, const GUID_t &remote) |
void | remove_remote (const GUID_t &local, const GUID_t &remote) |
![]() | |
virtual | ~RcObject () |
virtual void | _add_ref () |
virtual void | _remove_ref () |
long | ref_count () const |
WeakObject * | _get_weak_object () const |
Protected Types | |
typedef ACE_Reverse_Lock< ACE_Thread_Mutex > | Reverse_Lock_t |
Protected Member Functions | |
MulticastSession (RcHandle< ReactorInterceptor > interceptor, MulticastDataLink *link, MulticastPeer remote_peer) | |
void | send_control (char submessage_id, Message_Block_Ptr data) |
void | start_syn () |
virtual void | syn_hook (const SequenceNumber &) |
typedef | OPENDDS_MAP_CMP (GUID_t, RepoIdSet, GUID_tKeyLessThan) PendingRemoteMap |
![]() | |
RcObject () | |
Protected Attributes | |
MulticastDataLink * | link_ |
MulticastPeer | remote_peer_ |
ACE_Thread_Mutex | start_lock_ |
Reverse_Lock_t | reverse_start_lock_ |
bool | started_ |
bool | active_ |
TransportReassembly | reassembly_ |
bool | acked_ |
PendingRemoteMap | pending_remote_map_ |
Private Types | |
typedef PmfSporadicTask< MulticastSession > | Sporadic |
Private Member Functions | |
void | remove_remote_i (const GUID_t &local, const GUID_t &remote) |
Private Attributes | |
ACE_Thread_Mutex | ack_lock_ |
RcHandle< Sporadic > | syn_watchdog_ |
TimeDuration | syn_delay_ |
const TimeDuration | initial_syn_delay_ |
String | config_name |
Definition at line 34 of file MulticastSession.h.
|
protected |
Definition at line 96 of file MulticastSession.h.
|
private |
Definition at line 125 of file MulticastSession.h.
|
virtual |
Definition at line 49 of file MulticastSession.cpp.
References syn_watchdog_.
|
protected |
Definition at line 31 of file MulticastSession.cpp.
bool OpenDDS::DCPS::MulticastSession::acked | ( | ) |
Definition at line 55 of file MulticastSession.cpp.
References ACE_GUARD_RETURN, ACE_SYNCH_MUTEX, ack_lock_, and acked_.
Referenced by OpenDDS::DCPS::ReliableSession::ready_to_deliver(), and OpenDDS::DCPS::ReliableSession::send_naks().
void OpenDDS::DCPS::MulticastSession::add_remote | ( | const GUID_t & | local | ) |
Definition at line 335 of file MulticastSession.cpp.
References OpenDDS::DCPS::GuidConverter::isWriter(), and start_syn().
Definition at line 349 of file MulticastSession.cpp.
References ACE_GUARD, ACE_SYNCH_MUTEX, ack_lock_, OpenDDS::DCPS::GuidConverter::isWriter(), pending_remote_map_, and start_syn().
|
pure virtual |
Implemented in OpenDDS::DCPS::ReliableSession, and OpenDDS::DCPS::BestEffortSession.
|
virtual |
Reimplemented in OpenDDS::DCPS::ReliableSession.
Definition at line 102 of file MulticastSession.cpp.
References OpenDDS::DCPS::MULTICAST_SYN, OpenDDS::DCPS::MULTICAST_SYNACK, syn_received(), and synack_received().
Referenced by OpenDDS::DCPS::ReliableSession::control_received().
|
inlinevirtual |
Reimplemented in OpenDDS::DCPS::ReliableSession, and OpenDDS::DCPS::BestEffortSession.
Definition at line 45 of file MulticastSession.h.
ACE_INLINE MulticastDataLink * OpenDDS::DCPS::MulticastSession::link | ( | void | ) |
Definition at line 14 of file MulticastSession.inl.
References ACE_INLINE, and link_.
Referenced by OpenDDS::DCPS::ReliableSession::nak_received(), OpenDDS::DCPS::ReliableSession::nakack_received(), OpenDDS::DCPS::ReliableSession::send_naks(), send_syn(), send_synack(), syn_received(), and synack_received().
|
protected |
|
pure virtual |
Implemented in OpenDDS::DCPS::ReliableSession, and OpenDDS::DCPS::BestEffortSession.
bool OpenDDS::DCPS::MulticastSession::reassemble | ( | ReceivedDataSample & | data, |
const TransportHeader & | header | ||
) |
Definition at line 326 of file MulticastSession.cpp.
References OpenDDS::DCPS::TransportHeader::first_fragment_, OpenDDS::DCPS::TransportReassembly::reassemble(), reassembly_, and OpenDDS::DCPS::TransportHeader::sequence_.
|
pure virtual |
Implemented in OpenDDS::DCPS::ReliableSession, and OpenDDS::DCPS::BestEffortSession.
|
inlinevirtual |
Reimplemented in OpenDDS::DCPS::ReliableSession.
Definition at line 60 of file MulticastSession.h.
ACE_INLINE MulticastPeer OpenDDS::DCPS::MulticastSession::remote_peer | ( | ) | const |
Definition at line 20 of file MulticastSession.inl.
References OPENDDS_END_VERSIONED_NAMESPACE_DECL, and remote_peer_.
Definition at line 370 of file MulticastSession.cpp.
References ACE_GUARD, ACE_SYNCH_MUTEX, ack_lock_, and remove_remote_i().
|
private |
Definition at line 378 of file MulticastSession.cpp.
References OpenDDS::DCPS::GuidConverter::isWriter(), OPENDDS_END_VERSIONED_NAMESPACE_DECL, pending_remote_map_, and syn_watchdog_.
Referenced by remove_remote(), and synack_received().
void OpenDDS::DCPS::MulticastSession::send_all_syn | ( | const MonotonicTimePoint & | now | ) |
Definition at line 192 of file MulticastSession.cpp.
References ACE_GUARD, ACE_SYNCH_MUTEX, ack_lock_, pending_remote_map_, send_syn(), syn_delay_, and syn_watchdog_.
|
protected |
Definition at line 77 of file MulticastSession.cpp.
References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DataLink::create_control(), header, link_, LM_ERROR, OpenDDS::DCPS::move(), OpenDDS::DCPS::DataLink::send_control(), and OpenDDS::DCPS::SEND_CONTROL_OK.
Referenced by OpenDDS::DCPS::ReliableSession::send_nakack(), OpenDDS::DCPS::ReliableSession::send_naks(), send_syn(), and send_synack().
|
inlinevirtual |
Reimplemented in OpenDDS::DCPS::ReliableSession.
Definition at line 54 of file MulticastSession.h.
References header.
Referenced by send_synack().
void OpenDDS::DCPS::MulticastSession::send_syn | ( | const GUID_t & | local_writer, |
const GUID_t & | remote_reader | ||
) |
Definition at line 210 of file MulticastSession.cpp.
References OpenDDS::DCPS::LogGuid::c_str(), config_name, OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), link(), LM_DEBUG, OpenDDS::DCPS::MulticastDataLink::local_peer(), OpenDDS::DCPS::move(), OpenDDS::DCPS::MULTICAST_SYN, remote_peer_, send_control(), and VDBG_LVL.
Referenced by send_all_syn().
void OpenDDS::DCPS::MulticastSession::send_synack | ( | const GUID_t & | local_reader, |
const GUID_t & | remote_writer | ||
) |
Definition at line 287 of file MulticastSession.cpp.
References active_, OpenDDS::DCPS::LogGuid::c_str(), config_name, OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), link(), LM_DEBUG, OpenDDS::DCPS::MulticastDataLink::local_peer(), OpenDDS::DCPS::move(), OpenDDS::DCPS::MULTICAST_SYNACK, remote_peer_, send_control(), send_naks(), and VDBG_LVL.
Referenced by syn_received().
void OpenDDS::DCPS::MulticastSession::set_acked | ( | ) |
Definition at line 62 of file MulticastSession.cpp.
References ACE_GUARD, ACE_SYNCH_MUTEX, ack_lock_, and acked_.
Referenced by OpenDDS::DCPS::BestEffortSession::start(), and OpenDDS::DCPS::ReliableSession::start().
|
pure virtual |
Implemented in OpenDDS::DCPS::ReliableSession, and OpenDDS::DCPS::BestEffortSession.
|
protected |
Definition at line 69 of file MulticastSession.cpp.
References initial_syn_delay_, syn_delay_, and syn_watchdog_.
Referenced by add_remote().
|
virtual |
Reimplemented in OpenDDS::DCPS::ReliableSession.
Definition at line 320 of file MulticastSession.cpp.
References syn_watchdog_.
Referenced by OpenDDS::DCPS::ReliableSession::stop().
|
inlineprotectedvirtual |
Reimplemented in OpenDDS::DCPS::ReliableSession.
Definition at line 93 of file MulticastSession.h.
Referenced by syn_received().
void OpenDDS::DCPS::MulticastSession::syn_received | ( | const Message_Block_Ptr & | control | ) |
Definition at line 122 of file MulticastSession.cpp.
References ACE_GUARD, ACE_SYNCH_MUTEX, ack_lock_, acked_, active_, OpenDDS::DCPS::LogGuid::c_str(), config_name, OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), header, link(), link_, LM_DEBUG, OpenDDS::DCPS::MulticastDataLink::local_peer(), pending_remote_map_, OpenDDS::DCPS::MulticastDataLink::receive_strategy(), OpenDDS::DCPS::TransportReceiveStrategy< TH, DSH >::received_header(), remote_peer_, send_synack(), OpenDDS::DCPS::TransportHeader::sequence_, OpenDDS::DCPS::TransportHeader::source_, OpenDDS::DCPS::TransportHeader::swap_bytes(), syn_hook(), OpenDDS::DCPS::MulticastDataLink::transport(), and VDBG_LVL.
Referenced by control_received().
void OpenDDS::DCPS::MulticastSession::synack_received | ( | const Message_Block_Ptr & | control | ) |
Definition at line 240 of file MulticastSession.cpp.
References ACE_GUARD, ACE_SYNCH_MUTEX, ack_lock_, acked_, active_, OpenDDS::DCPS::LogGuid::c_str(), config_name, OpenDDS::DCPS::unique_ptr< T, Deleter >::get(), header, OpenDDS::DCPS::DataLink::invoke_on_start_callbacks(), link(), link_, LM_DEBUG, OpenDDS::DCPS::MulticastDataLink::local_peer(), OpenDDS::DCPS::MulticastDataLink::receive_strategy(), OpenDDS::DCPS::TransportReceiveStrategy< TH, DSH >::received_header(), remote_peer_, remove_remote_i(), OpenDDS::DCPS::TransportHeader::source_, OpenDDS::DCPS::TransportHeader::swap_bytes(), and VDBG_LVL.
Referenced by control_received().
|
private |
Definition at line 123 of file MulticastSession.h.
Referenced by acked(), add_remote(), remove_remote(), send_all_syn(), set_acked(), syn_received(), and synack_received().
|
protected |
Definition at line 110 of file MulticastSession.h.
Referenced by acked(), set_acked(), syn_received(), and synack_received().
|
protected |
Definition at line 106 of file MulticastSession.h.
Referenced by OpenDDS::DCPS::ReliableSession::check_header(), OpenDDS::DCPS::ReliableSession::nak_received(), OpenDDS::DCPS::ReliableSession::nakack_received(), OpenDDS::DCPS::ReliableSession::record_header_received(), send_synack(), OpenDDS::DCPS::BestEffortSession::start(), OpenDDS::DCPS::ReliableSession::start(), syn_received(), and synack_received().
|
private |
Definition at line 129 of file MulticastSession.h.
Referenced by send_syn(), send_synack(), syn_received(), and synack_received().
|
private |
Definition at line 128 of file MulticastSession.h.
Referenced by start_syn().
|
protected |
Definition at line 80 of file MulticastSession.h.
Referenced by OpenDDS::DCPS::ReliableSession::deliver_held_data(), OpenDDS::DCPS::ReliableSession::expire_naks(), link(), OpenDDS::DCPS::ReliableSession::nak_delay(), OpenDDS::DCPS::ReliableSession::nak_received(), OpenDDS::DCPS::ReliableSession::nakack_received(), send_control(), OpenDDS::DCPS::ReliableSession::send_naks(), syn_received(), and synack_received().
|
protected |
Definition at line 116 of file MulticastSession.h.
Referenced by add_remote(), remove_remote_i(), send_all_syn(), and syn_received().
|
protected |
Definition at line 108 of file MulticastSession.h.
Referenced by OpenDDS::DCPS::BestEffortSession::check_header(), OpenDDS::DCPS::ReliableSession::expire_naks(), OpenDDS::DCPS::ReliableSession::nakack_received(), and reassemble().
|
protected |
Definition at line 82 of file MulticastSession.h.
Referenced by OpenDDS::DCPS::ReliableSession::check_header(), OpenDDS::DCPS::ReliableSession::expire_naks(), OpenDDS::DCPS::ReliableSession::nak_received(), OpenDDS::DCPS::ReliableSession::nakack_received(), OpenDDS::DCPS::BestEffortSession::record_header_received(), OpenDDS::DCPS::ReliableSession::record_header_received(), remote_peer(), OpenDDS::DCPS::ReliableSession::send_naks(), send_syn(), send_synack(), syn_received(), and synack_received().
|
protected |
Definition at line 97 of file MulticastSession.h.
Referenced by OpenDDS::DCPS::ReliableSession::start().
|
protected |
Definition at line 95 of file MulticastSession.h.
Referenced by OpenDDS::DCPS::BestEffortSession::start(), and OpenDDS::DCPS::ReliableSession::start().
|
protected |
Definition at line 98 of file MulticastSession.h.
Referenced by OpenDDS::DCPS::BestEffortSession::start(), and OpenDDS::DCPS::ReliableSession::start().
|
private |
Definition at line 127 of file MulticastSession.h.
Referenced by send_all_syn(), and start_syn().
Definition at line 126 of file MulticastSession.h.
Referenced by remove_remote_i(), send_all_syn(), start_syn(), stop(), and ~MulticastSession().