OpenDDS
Snapshot(2023/04/07-19:43)
|
Public Member Functions | |
RtpsReader (const RtpsUdpDataLink_rch &link, const GUID_t &id) | |
virtual | ~RtpsReader () |
bool | add_writer (const WriterInfo_rch &info) |
bool | has_writer (const GUID_t &id) const |
bool | remove_writer (const GUID_t &id) |
size_t | writer_count () const |
bool | should_nack_fragments (const RcHandle< RtpsUdpDataLink > &link, const WriterInfo_rch &info) |
void | pre_stop_helper () |
void | process_heartbeat_i (const RTPS::HeartBeatSubmessage &heartbeat, const GUID_t &src, bool directed, MetaSubmessageVec &meta_submessages) |
bool | process_data_i (const RTPS::DataSubmessage &data, const GUID_t &src, MetaSubmessageVec &meta_submessages) |
void | process_gap_i (const RTPS::GapSubmessage &gap, const GUID_t &src, bool directed, MetaSubmessageVec &meta_submessages) |
void | process_heartbeat_frag_i (const RTPS::HeartBeatFragSubmessage &hb_frag, const GUID_t &src, bool directed, MetaSubmessageVec &meta_submessages) |
void | deliver_held_data (const GUID_t &src) |
const GUID_t & | id () const |
void | log_remote_counts (const char *funcname) |
![]() | |
virtual | ~RcObject () |
virtual void | _add_ref () |
virtual void | _remove_ref () |
long | ref_count () const |
WeakObject * | _get_weak_object () const |
Private Member Functions | |
void | send_preassociation_acknacks (const MonotonicTimePoint &now) |
void | gather_preassociation_acknack_i (MetaSubmessageVec &meta_submessages, const WriterInfo_rch &writer) |
void | gather_ack_nacks_i (const WriterInfo_rch &writer, const RtpsUdpDataLink_rch &link, bool heartbeat_was_non_final, MetaSubmessageVec &meta_submessages, ACE_CDR::ULong &cumulative_bits_added) |
void | generate_nack_frags_i (MetaSubmessageVec &meta_submessages, const WriterInfo_rch &wi, EntityId_t reader_id, EntityId_t writer_id, ACE_CDR::ULong &cumulative_bits_added) |
Private Attributes | |
ACE_Thread_Mutex | mutex_ |
WeakRcHandle< RtpsUdpDataLink > | link_ |
const GUID_t | id_ |
WriterInfoMap | remote_writers_ |
WriterInfoSet | preassociation_writers_ |
bool | stopping_ |
CORBA::Long | nackfrag_count_ |
RcHandle< SporadicEvent > | preassociation_task_ |
TimeDuration | heartbeat_period_ |
Additional Inherited Members | |
![]() | |
RcObject () | |
Definition at line 621 of file RtpsUdpDataLink.h.
OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::RtpsReader | ( | const RtpsUdpDataLink_rch & | link, |
const GUID_t & | id | ||
) |
Definition at line 1650 of file RtpsUdpDataLink.cpp.
|
virtual |
Definition at line 1660 of file RtpsUdpDataLink.cpp.
bool OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::add_writer | ( | const WriterInfo_rch & | info | ) |
Definition at line 2149 of file RtpsUdpDataLink.cpp.
References ACE_GUARD_RETURN, gather_preassociation_acknack_i(), heartbeat_period_, link_, log_remote_counts(), mutex_, preassociation_task_, preassociation_writers_, OpenDDS::DCPS::RtpsUdpDataLink::queue_submessages(), remote_writers_, and stopping_.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::associated().
void OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::deliver_held_data | ( | const GUID_t & | src | ) |
Definition at line 4525 of file RtpsUdpDataLink.cpp.
References ACE_DEBUG, ACE_GUARD, ACE_TEXT(), OpenDDS::DCPS::LogGuid::c_str(), OpenDDS::DCPS::DataLink::data_received(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::id_, OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::link_, LM_DEBUG, OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::mutex_, OpenDDS::DCPS::RtpsUdpDataLink::OPENDDS_VECTOR(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::stopping_, and OpenDDS::DCPS::Transport_debug_level.
|
private |
Definition at line 2286 of file RtpsUdpDataLink.cpp.
References OpenDDS::RTPS::ACKNACK, OpenDDS::RTPS::Submessage::acknack_sm, OpenDDS::DCPS::DisjointSequence::bitmap_num_longs(), OpenDDS::DCPS::DisjointSequence::cumulative_ack(), OpenDDS::DCPS::DisjointSequence::disjoint(), OpenDDS::DCPS::DisjointSequence::empty(), OpenDDS::DCPS::GUID_t::entityId, OpenDDS::DCPS::DisjointSequence::fill_bitmap_range(), OpenDDS::RTPS::FLAG_E, OpenDDS::RTPS::FLAG_F, generate_nack_frags_i(), OpenDDS::DCPS::SequenceNumber::getValue(), OpenDDS::DCPS::DisjointSequence::high(), id_, OpenDDS::DCPS::DisjointSequence::last_ack(), OpenDDS::DCPS::SequenceNumber::previous(), OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy(), should_nack_fragments(), OpenDDS::DCPS::MetaSubmessage::sm_, OpenDDS::DCPS::DisjointSequence::to_bitmap(), and OpenDDS::RTPS::to_rtps_seqnum().
Referenced by process_heartbeat_frag_i(), and process_heartbeat_i().
|
private |
Definition at line 2256 of file RtpsUdpDataLink.cpp.
References OpenDDS::RTPS::ACKNACK, OpenDDS::RTPS::Submessage::acknack_sm, OpenDDS::DCPS::GUID_t::entityId, OpenDDS::RTPS::FLAG_E, id_, OPENDDS_ASSERT, and OpenDDS::DCPS::MetaSubmessage::sm_.
Referenced by add_writer(), and send_preassociation_acknacks().
|
private |
Definition at line 2881 of file RtpsUdpDataLink.cpp.
References OpenDDS::RTPS::FragmentNumberSet::bitmap, OpenDDS::RTPS::FragmentNumberSet::bitmapBase, OpenDDS::RTPS::NackFragSubmessage::count, OpenDDS::DCPS::RtpsUdpDataLink::extend_bitmap_range(), OpenDDS::RTPS::FLAG_E, OpenDDS::RTPS::NackFragSubmessage::fragmentNumberState, id_, link_, OpenDDS::RTPS::NACK_FRAG, OpenDDS::RTPS::Submessage::nack_frag_sm, nackfrag_count_, OpenDDS::RTPS::FragmentNumberSet::numBits, OpenDDS::DCPS::RtpsUdpDataLink::OPENDDS_MAP(), OpenDDS::DCPS::RtpsUdpDataLink::OPENDDS_VECTOR(), OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy(), OpenDDS::DCPS::MetaSubmessage::sm_, OpenDDS::RTPS::to_rtps_seqnum(), OpenDDS::RTPS::Count_t::value, OpenDDS::RTPS::FragmentNumber_t::value, and OpenDDS::RTPS::NackFragSubmessage::writerSN.
Referenced by gather_ack_nacks_i().
bool OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::has_writer | ( | const GUID_t & | id | ) | const |
Definition at line 2180 of file RtpsUdpDataLink.cpp.
References ACE_GUARD_RETURN, mutex_, and remote_writers_.
|
inline |
Definition at line 651 of file RtpsUdpDataLink.h.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::bundle_mapped_meta_submessages().
void OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::log_remote_counts | ( | const char * | funcname | ) |
Definition at line 4827 of file RtpsUdpDataLink.cpp.
References ACE_DEBUG, OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::id_, LM_DEBUG, OpenDDS::DCPS::TransportDebug::log_remote_counts, OPENDDS_END_VERSIONED_NAMESPACE_DECL, and OpenDDS::DCPS::transport_debug.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::add_reader(), add_writer(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_acknack(), process_heartbeat_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::remove_reader(), and remove_writer().
void OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::pre_stop_helper | ( | ) |
Definition at line 1616 of file RtpsUdpDataLink.cpp.
References ACE_GUARD, OpenDDS::DCPS::InternalDataReaderListener< NetworkInterfaceAddress >::mutex_, OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy(), ACE_Guard< ACE_LOCK >::release(), and OpenDDS::DCPS::DataLink::strategy_lock_.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::client_stop().
bool OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::process_data_i | ( | const RTPS::DataSubmessage & | data, |
const GUID_t & | src, | ||
MetaSubmessageVec & | meta_submessages | ||
) |
Definition at line 1665 of file RtpsUdpDataLink.cpp.
References ACE_DEBUG, ACE_GUARD_RETURN, ACE_TEXT(), OpenDDS::DCPS::LogGuid::c_str(), OpenDDS::DCPS::SequenceNumber::getValue(), id_, link_, LM_DEBUG, OpenDDS::DCPS::TransportDebug::log_dropped_messages, mutex_, OpenDDS::DCPS::SequenceNumber::previous(), OpenDDS::DCPS::rchandle_from(), OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy(), ACE_Guard< ACE_LOCK >::release(), remote_writers_, stopping_, OpenDDS::DCPS::DataLink::strategy_lock_, OpenDDS::DCPS::swap(), OpenDDS::RTPS::to_opendds_seqnum(), OpenDDS::DCPS::transport_debug, OpenDDS::DCPS::Transport_debug_level, and OpenDDS::RTPS::DataSubmessage::writerSN.
void OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::process_gap_i | ( | const RTPS::GapSubmessage & | gap, |
const GUID_t & | src, | ||
bool | directed, | ||
MetaSubmessageVec & | meta_submessages | ||
) |
Definition at line 1790 of file RtpsUdpDataLink.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_GUARD, OpenDDS::RTPS::SequenceNumberSet::bitmap, OpenDDS::RTPS::SequenceNumberSet::bitmapBase, OpenDDS::DCPS::DisjointSequence::contains(), OpenDDS::DCPS::DisjointSequence::empty(), OpenDDS::RTPS::GapSubmessage::gapList, OpenDDS::RTPS::GapSubmessage::gapStart, OpenDDS::DCPS::SequenceNumber::getValue(), OpenDDS::DCPS::DisjointSequence::high(), id_, OpenDDS::DCPS::DisjointSequence::insert(), link_, LM_DEBUG, LM_ERROR, OpenDDS::DCPS::TransportDebug::log_dropped_messages, OpenDDS::DCPS::DisjointSequence::low(), mutex_, OpenDDS::RTPS::SequenceNumberSet::numBits, OpenDDS::DCPS::RtpsUdpDataLink::OPENDDS_VECTOR(), OpenDDS::DCPS::SequenceNumber::previous(), OpenDDS::DCPS::rchandle_from(), OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy(), ACE_Guard< ACE_LOCK >::release(), remote_writers_, OpenDDS::DCPS::DataLink::start(), OpenDDS::DCPS::DataLink::strategy_lock_, OpenDDS::RTPS::to_opendds_seqnum(), and OpenDDS::DCPS::transport_debug.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::received().
void OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::process_heartbeat_frag_i | ( | const RTPS::HeartBeatFragSubmessage & | hb_frag, |
const GUID_t & | src, | ||
bool | directed, | ||
MetaSubmessageVec & | meta_submessages | ||
) |
Definition at line 2999 of file RtpsUdpDataLink.cpp.
References ACE_DEBUG, ACE_GUARD, OpenDDS::DCPS::RtpsUdpDataLink::config(), OpenDDS::RTPS::HeartBeatFragSubmessage::count, OpenDDS::RTPS::FLAG_F, OpenDDS::RTPS::SubmessageHeader::flags, gather_ack_nacks_i(), id_, OpenDDS::RTPS::HeartBeatFragSubmessage::lastFragmentNum, link_, LM_DEBUG, LM_WARNING, OpenDDS::DCPS::TransportDebug::log_dropped_messages, mutex_, OpenDDS::DCPS::InternalTransportStatistics::reader_nack_count, OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy(), remote_writers_, OpenDDS::RTPS::HeartBeatFragSubmessage::smHeader, OpenDDS::DCPS::DataLink::strategy_lock_, OpenDDS::RTPS::to_opendds_seqnum(), OpenDDS::DCPS::transport_debug, OpenDDS::DCPS::RtpsUdpDataLink::transport_statistics_, OpenDDS::DCPS::RtpsUdpDataLink::transport_statistics_mutex_, OpenDDS::RTPS::Count_t::value, VDBG, and OpenDDS::RTPS::HeartBeatFragSubmessage::writerSN.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::received().
void OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::process_heartbeat_i | ( | const RTPS::HeartBeatSubmessage & | heartbeat, |
const GUID_t & | src, | ||
bool | directed, | ||
MetaSubmessageVec & | meta_submessages | ||
) |
Definition at line 1903 of file RtpsUdpDataLink.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_GUARD, OpenDDS::DCPS::LogGuid::c_str(), OpenDDS::DCPS::RtpsUdpDataLink::config(), OpenDDS::RTPS::HeartBeatSubmessage::count, OpenDDS::DCPS::ENTITYID_UNKNOWN, OpenDDS::RTPS::HeartBeatSubmessage::firstSN, OpenDDS::RTPS::FLAG_F, OpenDDS::RTPS::SubmessageHeader::flags, gather_ack_nacks_i(), OpenDDS::DCPS::SequenceNumber::getValue(), OpenDDS::DCPS::GUID_UNKNOWN, id_, OpenDDS::DCPS::DataLink::invoke_on_start_callbacks(), OpenDDS::RTPS::HeartBeatSubmessage::lastSN, link_, LM_DEBUG, LM_ERROR, LM_WARNING, OpenDDS::DCPS::TransportDebug::log_dropped_messages, OpenDDS::DCPS::TransportDebug::log_nonfinal_messages, OpenDDS::DCPS::log_progress(), OpenDDS::DCPS::TransportDebug::log_progress, log_remote_counts(), mutex_, OPENDDS_ASSERT, preassociation_writers_, OpenDDS::DCPS::SequenceNumber::previous(), OpenDDS::DCPS::rchandle_from(), OpenDDS::DCPS::InternalTransportStatistics::reader_nack_count, OpenDDS::RTPS::HeartBeatSubmessage::readerId, OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy(), ACE_Guard< ACE_LOCK >::release(), remote_writers_, OpenDDS::RTPS::HeartBeatSubmessage::smHeader, OpenDDS::DCPS::DataLink::strategy_lock_, OpenDDS::RTPS::to_opendds_seqnum(), OpenDDS::DCPS::transport_debug, OpenDDS::DCPS::Transport_debug_level, OpenDDS::DCPS::RtpsUdpDataLink::transport_statistics_, OpenDDS::DCPS::RtpsUdpDataLink::transport_statistics_mutex_, OpenDDS::RTPS::Count_t::value, VDBG, and OpenDDS::DCPS::SequenceNumber::ZERO().
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::received().
bool OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::remove_writer | ( | const GUID_t & | id | ) |
Definition at line 2187 of file RtpsUdpDataLink.cpp.
References ACE_GUARD_RETURN, log_remote_counts(), mutex_, preassociation_writers_, and remote_writers_.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::release_reservations_i().
|
private |
Definition at line 2227 of file RtpsUdpDataLink.cpp.
References ACE_GUARD, gather_preassociation_acknack_i(), heartbeat_period_, link_, mutex_, preassociation_task_, preassociation_writers_, OpenDDS::DCPS::RtpsUdpDataLink::queue_submessages(), and stopping_.
bool OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::should_nack_fragments | ( | const RcHandle< RtpsUdpDataLink > & | link, |
const WriterInfo_rch & | info | ||
) |
Definition at line 2209 of file RtpsUdpDataLink.cpp.
References OpenDDS::DCPS::RtpsUdpDataLink::receive_strategy().
Referenced by gather_ack_nacks_i().
size_t OpenDDS::DCPS::RtpsUdpDataLink::RtpsReader::writer_count | ( | ) | const |
Definition at line 2202 of file RtpsUdpDataLink.cpp.
References ACE_GUARD_RETURN, mutex_, and remote_writers_.
|
private |
Definition at line 679 of file RtpsUdpDataLink.h.
Referenced by add_writer(), and send_preassociation_acknacks().
|
private |
Definition at line 673 of file RtpsUdpDataLink.h.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::add_reader(), gather_ack_nacks_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::gather_gaps_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::gather_heartbeats(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::gather_heartbeats_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::gather_nack_replies_i(), gather_preassociation_acknack_i(), generate_nack_frags_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::initialize_heartbeat(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_acknack(), process_data_i(), process_gap_i(), process_heartbeat_frag_i(), process_heartbeat_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_nackfrag(), and OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::send_heartbeats_manual_i().
|
private |
Definition at line 672 of file RtpsUdpDataLink.h.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::acked_by_all_helper_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::add_reader(), add_writer(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::gather_heartbeats(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::gather_heartbeats_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::gather_nack_replies_i(), generate_nack_frags_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::make_lagger_leader(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::make_leader_lagger(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_acknack(), process_data_i(), process_gap_i(), process_heartbeat_frag_i(), process_heartbeat_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_nackfrag(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::send_heartbeats_manual_i(), send_preassociation_acknacks(), and OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::update_remote_guids_cache_i().
|
mutableprivate |
Definition at line 671 of file RtpsUdpDataLink.h.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::add_reader(), add_writer(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::gather_heartbeats(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::has_reader(), has_writer(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_acked_by_all(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_acknack(), process_data_i(), process_gap_i(), process_heartbeat_frag_i(), process_heartbeat_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_nackfrag(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::reader_count(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::remove_reader(), remove_writer(), send_preassociation_acknacks(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::update_required_acknack_count(), and writer_count().
|
private |
Definition at line 677 of file RtpsUdpDataLink.h.
Referenced by generate_nack_frags_i().
|
private |
Definition at line 678 of file RtpsUdpDataLink.h.
Referenced by add_writer(), and send_preassociation_acknacks().
|
private |
Definition at line 675 of file RtpsUdpDataLink.h.
Referenced by add_writer(), process_heartbeat_i(), remove_writer(), and send_preassociation_acknacks().
|
private |
Definition at line 674 of file RtpsUdpDataLink.h.
Referenced by add_writer(), has_writer(), process_data_i(), process_gap_i(), process_heartbeat_frag_i(), process_heartbeat_i(), remove_writer(), and writer_count().
|
private |
Definition at line 676 of file RtpsUdpDataLink.h.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::add_reader(), add_writer(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::make_leader_lagger(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_acknack(), process_data_i(), OpenDDS::DCPS::RtpsUdpDataLink::RtpsWriter::process_nackfrag(), and send_preassociation_acknacks().