OpenDDS
Snapshot(2023/04/07-19:43)
|
Defines class that represents a transport packet header. More...
#include <TransportHeader.h>
Public Types | |
enum | { BYTE_ORDER_FLAG, FIRST_FRAGMENT_FLAG, LAST_FRAGMENT_FLAG } |
Public Member Functions | |
TransportHeader () | |
Default constructor. More... | |
TransportHeader (ACE_Message_Block &buffer) | |
Construct with values extracted from a buffer. More... | |
TransportHeader & | operator= (ACE_Message_Block &buffer) |
Assignment from an ACE_Message_Block. More... | |
void | incomplete (ACE_Message_Block &) |
bool | swap_bytes () const |
Determine if the serializer should swap bytes. More... | |
bool | valid () const |
Determine if this is a valid packet header. More... | |
bool | init (ACE_Message_Block *buffer) |
Demarshal transport packet from ACE_Message_Block. More... | |
bool | first_fragment () |
bool | last_fragment () |
void | last_fragment (bool frag) |
const SequenceNumber & | sequence () |
Static Public Member Functions | |
static size_t | get_max_serialized_size () |
Similar to IDL compiler generated methods. More... | |
static ACE_UINT32 | get_length (const char *marshaled_transport_header) |
Public Attributes | |
ACE_CDR::Octet | protocol_ [6] |
The protocol of the packet being transmitted. More... | |
bool | byte_order_ |
Flags: marshaled as a single byte (ACE_CDR::Octet) More... | |
bool | first_fragment_ |
bool | last_fragment_ |
ACE_CDR::Octet | reserved_ |
Reserved for future use (provides padding for preamble). More... | |
ACE_UINT32 | length_ |
SequenceNumber | sequence_ |
ACE_INT64 | source_ |
Static Public Attributes | |
static const ACE_CDR::Octet | DCPS_PROTOCOL [6] |
Defines class that represents a transport packet header.
The TransportHeader is the transport packet header. Each packet sent by the transport will always start with a transport packet header, followed by one or more data samples (all belonging to the same transport packet).
Definition at line 36 of file TransportHeader.h.
anonymous enum |
Constants for bit masking the marshaled flags byte. This needs to match the 'Flags' above.
Enumerator | |
---|---|
BYTE_ORDER_FLAG | |
FIRST_FRAGMENT_FLAG | |
LAST_FRAGMENT_FLAG |
Definition at line 66 of file TransportHeader.h.
ACE_INLINE OpenDDS::DCPS::TransportHeader::TransportHeader | ( | ) |
Default constructor.
Definition at line 19 of file TransportHeader.inl.
References ACE_CDR_BYTE_ORDER, ACE_INLINE, DBG_ENTRY_LVL, DCPS_PROTOCOL, and protocol_.
|
explicit |
Construct with values extracted from a buffer.
Definition at line 34 of file TransportHeader.inl.
References ACE_CDR_BYTE_ORDER, ACE_INLINE, DBG_ENTRY_LVL, and init().
|
inline |
Definition at line 90 of file TransportHeader.h.
|
static |
Definition at line 49 of file TransportHeader.cpp.
References OPENDDS_END_VERSIONED_NAMESPACE_DECL, protocol_, and reserved_.
Referenced by OpenDDS::DCPS::ShmemReceiveStrategy::receive_bytes().
|
static |
Similar to IDL compiler generated methods.
Definition at line 57 of file TransportHeader.inl.
References ACE_INLINE, length_, protocol_, reserved_, sequence_, and source_.
Referenced by OpenDDS::DCPS::UdpDataLink::open(), and OpenDDS::DCPS::TransportSendStrategy::TransportSendStrategy().
|
inline |
Definition at line 48 of file TransportHeader.h.
ACE_INLINE bool OpenDDS::DCPS::TransportHeader::init | ( | ACE_Message_Block * | buffer | ) |
Demarshal transport packet from ACE_Message_Block.
Definition at line 91 of file TransportHeader.inl.
References byte_order_, BYTE_ORDER_FLAG, DBG_ENTRY_LVL, first_fragment_, FIRST_FRAGMENT_FLAG, OpenDDS::DCPS::Encoding::KIND_UNALIGNED_CDR, last_fragment_, LAST_FRAGMENT_FLAG, length_, OPENDDS_END_VERSIONED_NAMESPACE_DECL, OpenDDS::DCPS::Serializer::read_octet_array(), reserved_, sequence_, source_, swap_bytes(), and OpenDDS::DCPS::Serializer::swap_bytes().
Referenced by operator=(), and TransportHeader().
|
inline |
Definition at line 91 of file TransportHeader.h.
|
inline |
Definition at line 92 of file TransportHeader.h.
ACE_INLINE TransportHeader & OpenDDS::DCPS::TransportHeader::operator= | ( | ACE_Message_Block & | buffer | ) |
Assignment from an ACE_Message_Block.
Definition at line 49 of file TransportHeader.inl.
References ACE_INLINE, DBG_ENTRY_LVL, and init().
|
inline |
Definition at line 93 of file TransportHeader.h.
References OpenDDS_Dcps_Export, OPENDDS_END_VERSIONED_NAMESPACE_DECL, OpenDDS::DCPS::operator<<(), and value.
ACE_INLINE bool OpenDDS::DCPS::TransportHeader::swap_bytes | ( | ) | const |
Determine if the serializer should swap bytes.
Definition at line 71 of file TransportHeader.inl.
References ACE_CDR_BYTE_ORDER, ACE_INLINE, byte_order_, and DBG_ENTRY_LVL.
Referenced by init(), OpenDDS::DCPS::ReliableSession::nak_received(), OpenDDS::DCPS::ReliableSession::nakack_received(), OpenDDS::DCPS::MulticastDataLink::sample_received(), OpenDDS::DCPS::MulticastSession::syn_received(), and OpenDDS::DCPS::MulticastSession::synack_received().
ACE_INLINE bool OpenDDS::DCPS::TransportHeader::valid | ( | void | ) | const |
Determine if this is a valid packet header.
Definition at line 80 of file TransportHeader.inl.
References ACE_INLINE, DBG_ENTRY_LVL, DCPS_PROTOCOL, and protocol_.
bool OpenDDS::DCPS::TransportHeader::byte_order_ |
Flags: marshaled as a single byte (ACE_CDR::Octet)
Definition at line 60 of file TransportHeader.h.
Referenced by init(), OpenDDS::DCPS::operator<<(), and swap_bytes().
|
static |
Definition at line 37 of file TransportHeader.h.
Referenced by OpenDDS::DCPS::ShmemSendStrategy::send_bytes_i(), TransportHeader(), and valid().
bool OpenDDS::DCPS::TransportHeader::first_fragment_ |
Definition at line 61 of file TransportHeader.h.
Referenced by OpenDDS::DCPS::TransportSendStrategy::get_packet_elems_from_queue(), init(), OpenDDS::DCPS::operator<<(), OpenDDS::DCPS::MulticastSession::reassemble(), and OpenDDS::DCPS::TransportSendStrategy::send().
bool OpenDDS::DCPS::TransportHeader::last_fragment_ |
Definition at line 62 of file TransportHeader.h.
Referenced by OpenDDS::DCPS::TransportSendStrategy::get_packet_elems_from_queue(), init(), OpenDDS::DCPS::operator<<(), and OpenDDS::DCPS::TransportSendStrategy::send().
ACE_UINT32 OpenDDS::DCPS::TransportHeader::length_ |
The size of the message following this header, not including the bytes used by this TransportHeader.
Definition at line 73 of file TransportHeader.h.
Referenced by OpenDDS::DCPS::TransportSendStrategy::adjust_packet_after_send(), OpenDDS::DCPS::TransportSendStrategy::clear(), OpenDDS::DCPS::TransportSendStrategy::current_space_available(), OpenDDS::DCPS::TransportSendStrategy::do_remove_sample(), get_max_serialized_size(), OpenDDS::DCPS::TransportSendStrategy::get_packet_elems_from_queue(), init(), OpenDDS::DCPS::UdpDataLink::open(), OpenDDS::DCPS::operator<<(), OpenDDS::DCPS::TransportSendStrategy::perform_work(), OpenDDS::DCPS::TransportSendStrategy::resume_send(), OpenDDS::DCPS::TransportSendStrategy::send(), and OpenDDS::DCPS::TransportSendStrategy::send_stop().
ACE_CDR::Octet OpenDDS::DCPS::TransportHeader::protocol_[6] |
The protocol of the packet being transmitted.
Definition at line 57 of file TransportHeader.h.
Referenced by get_length(), get_max_serialized_size(), OpenDDS::DCPS::operator<<(), TransportHeader(), and valid().
ACE_CDR::Octet OpenDDS::DCPS::TransportHeader::reserved_ |
Reserved for future use (provides padding for preamble).
Definition at line 69 of file TransportHeader.h.
Referenced by get_length(), get_max_serialized_size(), init(), and OpenDDS::DCPS::operator<<().
SequenceNumber OpenDDS::DCPS::TransportHeader::sequence_ |
The sequence number of the packet identified by this header; this value is guaranteed to be a monotonically increasing number per transport instance.
Definition at line 78 of file TransportHeader.h.
Referenced by OpenDDS::DCPS::BestEffortSession::check_header(), OpenDDS::DCPS::ReliableSession::check_header(), OpenDDS::DCPS::UdpReceiveStrategy::check_header(), get_max_serialized_size(), init(), OpenDDS::DCPS::operator<<(), OpenDDS::DCPS::TransportSendStrategy::prepare_header(), OpenDDS::DCPS::BestEffortSession::ready_to_deliver(), OpenDDS::DCPS::ReliableSession::ready_to_deliver(), OpenDDS::DCPS::MulticastSession::reassemble(), OpenDDS::DCPS::ReliableSession::record_header_received(), OpenDDS::DCPS::TransportSendStrategy::send_packet(), and OpenDDS::DCPS::MulticastSession::syn_received().
ACE_INT64 OpenDDS::DCPS::TransportHeader::source_ |
A transport-specific identification number which uniquely identifies the source of the packet.
Definition at line 82 of file TransportHeader.h.
Referenced by OpenDDS::DCPS::ReliableSession::check_header(), OpenDDS::DCPS::MulticastDataLink::check_header(), get_max_serialized_size(), init(), OpenDDS::DCPS::ReliableSession::nak_received(), OpenDDS::DCPS::ReliableSession::nakack_received(), OpenDDS::DCPS::operator<<(), OpenDDS::DCPS::MulticastDataLink::ready_to_deliver(), OpenDDS::DCPS::MulticastDataLink::reassemble(), OpenDDS::DCPS::BestEffortSession::record_header_received(), OpenDDS::DCPS::ReliableSession::record_header_received(), OpenDDS::DCPS::MulticastDataLink::sample_received(), OpenDDS::DCPS::TransportSendStrategy::set_header_source(), OpenDDS::DCPS::MulticastSession::syn_received(), and OpenDDS::DCPS::MulticastSession::synack_received().