#include <RtpsCustomizedElement.h>
Public Member Functions | |
RtpsCustomizedElement (TransportQueueElement *orig, Message_Block_Ptr msg) | |
SequenceNumber | sequence () const |
SequenceNumber | last_fragment () const |
Private Member Functions | |
virtual | ~RtpsCustomizedElement () |
ElementPair | fragment (size_t size) |
const ACE_Message_Block * | msg_payload () const |
The marshalled payload only (sample data). | |
Private Attributes | |
SequenceNumber | seq_ |
SequenceNumber | last_frag_ |
Definition at line 22 of file RtpsCustomizedElement.h.
ACE_INLINE OpenDDS::DCPS::RtpsCustomizedElement::RtpsCustomizedElement | ( | TransportQueueElement * | orig, | |
Message_Block_Ptr | msg | |||
) |
Definition at line 14 of file RtpsCustomizedElement.inl.
References OpenDDS::DCPS::move(), OpenDDS::DCPS::TransportCustomizedElement::set_msg(), and OpenDDS::DCPS::TransportCustomizedElement::set_requires_exclusive().
Referenced by fragment().
00016 : TransportCustomizedElement(orig, false) 00017 , seq_(SequenceNumber::SEQUENCENUMBER_UNKNOWN()) 00018 { 00019 set_requires_exclusive(); 00020 set_msg(move(msg)); 00021 }
OpenDDS::DCPS::RtpsCustomizedElement::~RtpsCustomizedElement | ( | ) | [private, virtual] |
Definition at line 20 of file RtpsCustomizedElement.cpp.
ElementPair OpenDDS::DCPS::RtpsCustomizedElement::fragment | ( | size_t | size | ) | [private, virtual] |
Create two TransportQueueElements representing the same data payload as the current TransportQueueElement, with the first one (including its DataSampleHeader) fitting in "size" bytes. This method leaves the current TransportQueueElement alone (but can't be made const because the newly-created elements will need to invoke non-const methods on it). Each element in the pair will contain its own serialized modified DataSampleHeader.
Reimplemented from OpenDDS::DCPS::TransportQueueElement.
Definition at line 24 of file RtpsCustomizedElement.cpp.
References last_frag_, OpenDDS::DCPS::move(), OpenDDS::DCPS::TransportCustomizedElement::msg(), OpenDDS::DCPS::TransportCustomizedElement::publication_id(), RtpsCustomizedElement(), seq_, sequence(), OpenDDS::DCPS::TransportCustomizedElement::set_fragment(), OpenDDS::DCPS::TransportCustomizedElement::set_publication_id(), and OpenDDS::DCPS::RtpsSampleHeader::split().
00025 { 00026 Message_Block_Ptr head; 00027 Message_Block_Ptr tail; 00028 const SequenceRange fragNumbers = 00029 RtpsSampleHeader::split(*msg(), size, head, tail); 00030 00031 RtpsCustomizedElement* frag = 00032 new RtpsCustomizedElement(0, move(head)); 00033 frag->set_publication_id(publication_id()); 00034 frag->seq_ = sequence(); 00035 frag->set_fragment(); 00036 frag->last_frag_ = fragNumbers.first; 00037 00038 RtpsCustomizedElement* rest = 00039 new RtpsCustomizedElement(this, move(tail)); 00040 rest->set_fragment(); 00041 rest->last_frag_ = fragNumbers.second; 00042 00043 return ElementPair(frag, rest); 00044 }
ACE_INLINE SequenceNumber OpenDDS::DCPS::RtpsCustomizedElement::last_fragment | ( | ) | const |
Definition at line 34 of file RtpsCustomizedElement.inl.
References last_frag_.
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::MultiSendBuffer::insert().
00035 { 00036 return last_frag_; 00037 }
const ACE_Message_Block * OpenDDS::DCPS::RtpsCustomizedElement::msg_payload | ( | ) | const [private, virtual] |
The marshalled payload only (sample data).
Reimplemented from OpenDDS::DCPS::TransportCustomizedElement.
Definition at line 47 of file RtpsCustomizedElement.cpp.
References ACE_Message_Block::cont(), and OpenDDS::DCPS::TransportCustomizedElement::msg().
ACE_INLINE SequenceNumber OpenDDS::DCPS::RtpsCustomizedElement::sequence | ( | ) | const [virtual] |
Reimplemented from OpenDDS::DCPS::TransportCustomizedElement.
Definition at line 26 of file RtpsCustomizedElement.inl.
References seq_, and OpenDDS::DCPS::SequenceNumber::SEQUENCENUMBER_UNKNOWN().
Referenced by OpenDDS::DCPS::RtpsUdpDataLink::customize_queue_element(), and fragment().
00027 { 00028 return (seq_ == SequenceNumber::SEQUENCENUMBER_UNKNOWN()) ? 00029 TransportCustomizedElement::sequence() : seq_; 00030 }
Definition at line 40 of file RtpsCustomizedElement.h.
Referenced by fragment(), and last_fragment().
Definition at line 40 of file RtpsCustomizedElement.h.
Referenced by fragment(), and sequence().