OpenDDS::DCPS::RtpsCustomizedElement Class Reference

#include <RtpsCustomizedElement.h>

Inheritance diagram for OpenDDS::DCPS::RtpsCustomizedElement:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::RtpsCustomizedElement:
Collaboration graph
[legend]

List of all members.

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_Blockmsg_payload () const
 The marshalled payload only (sample data).

Private Attributes

SequenceNumber seq_
SequenceNumber last_frag_

Detailed Description

Definition at line 22 of file RtpsCustomizedElement.h.


Constructor & Destructor Documentation

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

OpenDDS::DCPS::RtpsCustomizedElement::~RtpsCustomizedElement (  )  [private, virtual]

Definition at line 20 of file RtpsCustomizedElement.cpp.

00021 {}


Member Function Documentation

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 }

Here is the call graph for this function:

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 }

Here is the caller graph for this function:

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().

00048 {
00049   return msg() ? msg()->cont() : 0;
00050 }

Here is the call graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

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().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1