|
OpenDDS
Snapshot(2023/04/07-19:43)
|
#include <TransportSendBuffer.h>


Classes | |
| class | Proxy |
Static Public Attributes | |
| static const size_t | UNLIMITED = 0 |
Private Member Functions | |
| void | check_capacity_i (BufferVec &removed) |
| void | release_i (BufferMap::iterator buffer_iter) |
| void | remove_i (BufferMap::iterator buffer_iter, BufferVec &removed) |
| RemoveResult | retain_buffer (const GUID_t &pub_id, BufferType &buffer) |
| void | insert_buffer (BufferType &buffer, TransportSendStrategy::QueueType *queue, ACE_Message_Block *chain) |
| bool | resend_i (const SequenceRange &range, DisjointSequence *gaps=0) |
| bool | resend_i (const SequenceRange &range, DisjointSequence *gaps, const GUID_t &destination) |
| void | resend_fragments_i (SequenceNumber sequence, const DisjointSequence &fragments, size_t &cumulative_send_count) |
| typedef | OPENDDS_MAP (SequenceNumber, BufferMap) FragmentMap |
| typedef | OPENDDS_MAP (SequenceNumber, GUID_t) DestinationMap |
| typedef | OPENDDS_SET (SequenceNumber) SequenceNumberSet |
Private Attributes | |
| size_t | n_chunks_ |
| MessageBlockAllocator | retained_mb_allocator_ |
| DataBlockAllocator | retained_db_allocator_ |
| MessageBlockAllocator | replaced_mb_allocator_ |
| DataBlockAllocator | replaced_db_allocator_ |
| BufferMap | buffers_ |
| FragmentMap | fragments_ |
| DestinationMap | destinations_ |
| SequenceNumberSet | pre_seq_ |
| SequenceNumber | minimum_sn_allowed_ |
| ACE_Thread_Mutex | mutex_ |
Additional Inherited Members | |
Public Types inherited from OpenDDS::DCPS::TransportSendBuffer | |
| typedef TransportSendStrategy::LockType | LockType |
Protected Types inherited from OpenDDS::DCPS::TransportSendBuffer | |
| typedef TransportSendStrategy::QueueType | QueueType |
| typedef std::pair< QueueType *, ACE_Message_Block * > | BufferType |
Protected Member Functions inherited from OpenDDS::DCPS::TransportSendBuffer | |
| TransportSendBuffer (size_t capacity) | |
| virtual | ~TransportSendBuffer () |
| void | resend_one (const BufferType &buffer) |
Protected Member Functions inherited from OpenDDS::DCPS::RcObject | |
| RcObject () | |
Protected Attributes inherited from OpenDDS::DCPS::TransportSendBuffer | |
| TransportSendStrategy * | strategy_ |
| const size_t | capacity_ |
Implementation of TransportSendBuffer that manages data for a single domain of SequenceNumbers – for a given SingleSendBuffer object, the sequence numbers passed to insert() must be generated from the same place.
Definition at line 72 of file TransportSendBuffer.h.
| OpenDDS::DCPS::SingleSendBuffer::SingleSendBuffer | ( | size_t | capacity, |
| size_t | max_samples_per_packet | ||
| ) |
Definition at line 53 of file TransportSendBuffer.cpp.
| OpenDDS::DCPS::SingleSendBuffer::~SingleSendBuffer | ( | ) |
Definition at line 64 of file TransportSendBuffer.cpp.
References release_all().
|
private |
Definition at line 349 of file TransportSendBuffer.cpp.
References ACE_DEBUG, ACE_TEXT(), buffers_, OpenDDS::DCPS::TransportSendBuffer::capacity_, LM_DEBUG, remove_i(), and OpenDDS::DCPS::Transport_debug_level.
Referenced by insert(), and insert_fragment().
| bool OpenDDS::DCPS::SingleSendBuffer::has_frags | ( | const SequenceNumber & | seq | ) | const |
Definition at line 373 of file TransportSendBuffer.cpp.
References fragments_.
|
virtual |
Implements OpenDDS::DCPS::TransportSendBuffer.
Definition at line 245 of file TransportSendBuffer.cpp.
References ACE_DEBUG, ACE_GUARD, ACE_TEXT(), buffers_, check_capacity_i(), destinations_, OpenDDS::DCPS::SequenceNumber::getValue(), OpenDDS::DCPS::GUID_UNKNOWN, OpenDDS::DCPS::HISTORIC_SAMPLE_FLAG, insert_buffer(), LM_DEBUG, minimum_sn_allowed_, OpenDDS::DCPS::TransportQueueElement::msg(), mutex_, OpenDDS::DCPS::BasicQueue< T >::peek(), pre_seq_, OpenDDS::DCPS::BasicQueue< T >::size(), OpenDDS::DCPS::TransportQueueElement::subscription_id(), OpenDDS::DCPS::DataSampleHeader::test_flag(), and OpenDDS::DCPS::Transport_debug_level.
|
private |
Definition at line 288 of file TransportSendBuffer.cpp.
References OpenDDS::DCPS::BasicQueue< T >::accept_visitor(), ACE_NEW, ACE_Message_Block::duplicate(), retained_db_allocator_, and retained_mb_allocator_.
Referenced by insert(), and insert_fragment().
| void OpenDDS::DCPS::SingleSendBuffer::insert_fragment | ( | SequenceNumber | sequence, |
| SequenceNumber | fragment, | ||
| bool | is_last_fragment, | ||
| TransportSendStrategy::QueueType * | queue, | ||
| ACE_Message_Block * | chain | ||
| ) |
Definition at line 306 of file TransportSendBuffer.cpp.
References ACE_DEBUG, ACE_GUARD, ACE_TEXT(), buffers_, check_capacity_i(), fragments_, OpenDDS::DCPS::SequenceNumber::getValue(), insert_buffer(), LM_DEBUG, minimum_sn_allowed_, mutex_, pre_seq_, and OpenDDS::DCPS::Transport_debug_level.
| ACE_INLINE size_t OpenDDS::DCPS::SingleSendBuffer::n_chunks | ( | ) | const |
Definition at line 29 of file TransportSendBuffer.inl.
References ACE_GUARD_RETURN, and ACE_INLINE.
| typedef OpenDDS::DCPS::SingleSendBuffer::OPENDDS_MAP | ( | SequenceNumber | , |
| BufferType | |||
| ) |
|
private |
|
private |
|
private |
| typedef OpenDDS::DCPS::SingleSendBuffer::OPENDDS_VECTOR | ( | BufferType | ) |
Referenced by resend_fragments_i().
|
inline |
Definition at line 199 of file TransportSendBuffer.h.
| ACE_INLINE void OpenDDS::DCPS::SingleSendBuffer::pre_insert | ( | SequenceNumber | sequence | ) |
Definition at line 36 of file TransportSendBuffer.inl.
References ACE_GUARD, and OPENDDS_END_VERSIONED_NAMESPACE_DECL.
| void OpenDDS::DCPS::SingleSendBuffer::release_acked | ( | SequenceNumber | seq | ) |
Definition at line 80 of file TransportSendBuffer.cpp.
References ACE_GUARD, buffers_, minimum_sn_allowed_, mutex_, and release_i().
| void OpenDDS::DCPS::SingleSendBuffer::release_all | ( | ) |
Definition at line 70 of file TransportSendBuffer.cpp.
References ACE_GUARD, buffers_, mutex_, and release_i().
Referenced by ~SingleSendBuffer().
|
private |
Definition at line 100 of file TransportSendBuffer.cpp.
References ACE_DEBUG, ACE_TEXT(), buffers_, destinations_, fragments_, LM_DEBUG, and OpenDDS::DCPS::Transport_debug_level.
Referenced by release_acked(), release_all(), and retain_all().
| void OpenDDS::DCPS::SingleSendBuffer::remove_acked | ( | SequenceNumber | seq, |
| BufferVec & | removed | ||
| ) |
Definition at line 90 of file TransportSendBuffer.cpp.
References ACE_GUARD, buffers_, minimum_sn_allowed_, mutex_, and remove_i().
|
private |
Definition at line 142 of file TransportSendBuffer.cpp.
References ACE_DEBUG, ACE_TEXT(), buffers_, destinations_, fragments_, LM_DEBUG, and OpenDDS::DCPS::Transport_debug_level.
Referenced by check_capacity_i(), and remove_acked().
| bool OpenDDS::DCPS::SingleSendBuffer::resend | ( | const SequenceRange & | range, |
| DisjointSequence * | gaps = 0 |
||
| ) |
Definition at line 379 of file TransportSendBuffer.cpp.
References ACE_GUARD_RETURN, mutex_, resend_i(), and OpenDDS::DCPS::TransportSendBuffer::strategy_lock().
Referenced by OpenDDS::DCPS::ReliableSession::nak_received().
|
private |
Definition at line 442 of file TransportSendBuffer.cpp.
References OpenDDS::DCPS::DisjointSequence::empty(), fragments_, OPENDDS_END_VERSIONED_NAMESPACE_DECL, OPENDDS_VECTOR(), and OpenDDS::DCPS::TransportSendBuffer::resend_one().
|
private |
Definition at line 387 of file TransportSendBuffer.cpp.
References OpenDDS::DCPS::GUID_UNKNOWN.
Referenced by resend().
|
private |
Definition at line 393 of file TransportSendBuffer.cpp.
References ACE_DEBUG, ACE_TEXT(), buffers_, destinations_, fragments_, OpenDDS::DCPS::GUID_UNKNOWN, OpenDDS::DCPS::DisjointSequence::insert(), LM_DEBUG, OpenDDS::DCPS::TransportSendBuffer::resend_one(), and OpenDDS::DCPS::Transport_debug_level.
|
virtual |
Reimplemented from OpenDDS::DCPS::TransportSendBuffer.
Definition at line 173 of file TransportSendBuffer.cpp.
References ACE_DEBUG, ACE_ERROR, ACE_GUARD, ACE_TEXT(), buffers_, OpenDDS::DCPS::LogGuid::c_str(), fragments_, LM_DEBUG, LM_WARNING, mutex_, release_i(), OpenDDS::DCPS::REMOVE_ERROR, retain_buffer(), and OpenDDS::DCPS::Transport_debug_level.
|
private |
Definition at line 223 of file TransportSendBuffer.cpp.
References OpenDDS::DCPS::TransportQueueElement::clone_mb(), ACE_Message_Block::release(), OpenDDS::DCPS::REMOVE_ERROR, replaced_db_allocator_, replaced_mb_allocator_, retained_db_allocator_, retained_mb_allocator_, and OpenDDS::DCPS::PacketRemoveVisitor::status().
Referenced by retain_all().
|
private |
Definition at line 231 of file TransportSendBuffer.h.
Referenced by check_capacity_i(), insert(), insert_fragment(), release_acked(), release_all(), release_i(), remove_acked(), remove_i(), resend_i(), and retain_all().
|
private |
Definition at line 237 of file TransportSendBuffer.h.
Referenced by insert(), release_i(), remove_i(), and resend_i().
|
private |
Definition at line 234 of file TransportSendBuffer.h.
Referenced by has_frags(), insert_fragment(), release_i(), remove_i(), resend_fragments_i(), resend_i(), and retain_all().
|
private |
Definition at line 242 of file TransportSendBuffer.h.
Referenced by insert(), insert_fragment(), release_acked(), and remove_acked().
|
mutableprivate |
Definition at line 244 of file TransportSendBuffer.h.
Referenced by insert(), insert_fragment(), release_acked(), release_all(), remove_acked(), resend(), and retain_all().
|
private |
Definition at line 224 of file TransportSendBuffer.h.
|
private |
Definition at line 240 of file TransportSendBuffer.h.
Referenced by insert(), and insert_fragment().
|
private |
Definition at line 229 of file TransportSendBuffer.h.
Referenced by retain_buffer().
|
private |
Definition at line 228 of file TransportSendBuffer.h.
Referenced by retain_buffer().
|
private |
Definition at line 227 of file TransportSendBuffer.h.
Referenced by insert_buffer(), and retain_buffer().
|
private |
Definition at line 226 of file TransportSendBuffer.h.
Referenced by insert_buffer(), and retain_buffer().
|
static |
Definition at line 76 of file TransportSendBuffer.h.
Referenced by OpenDDS::DCPS::TransportSendBuffer::resend_one().
1.8.13