8 #ifndef OPENDDS_DCPS_RTPS_MESSAGEUTILS_H 9 #define OPENDDS_DCPS_RTPS_MESSAGEUTILS_H 11 #include "RtpsCoreTypeSupportImpl.h" 23 #include <dds/DdsDcpsInfoUtilsC.h> 24 #include <dds/DdsDcpsInfoUtilsTypeSupportImpl.h> 39 using DCPS::EntityId_t;
40 using DCPS::GUID_tKeyLessThan;
43 using DCPS::SequenceNumber;
44 using DCPS::TimeDuration;
59 static const size_t hash_limit = 16;
60 std::memset(hash.
value, 0, hash_limit);
64 Traits::key_only_serialized_size_bound(encoding);
66 if (bound && bound.
get() <= hash_limit) {
90 bool* requires_inline_qos = 0,
91 unsigned int* pBytesRead = 0);
100 template <
typename T>
104 std::memcpy (out.get_buffer(), mb_locator.
rd_ptr(), mb_locator.
length());
107 #ifndef OPENDDS_SAFETY_PROFILE 136 return opendds_seqnum;
143 rtps_seqnum.
low = opendds_seqnum.
getLow();
175 #ifdef OPENDDS_SECURITY 229 handleOctets.length(handleOctets.maximum());
230 unsigned char* rawHandleOctets = handleOctets.get_buffer();
231 unsigned int handleTmp = handle;
232 for (
unsigned int j =
sizeof handle; j > 0; --j) {
233 rawHandleOctets[j - 1] = handleTmp & 0xff;
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_PROTECTED
const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_PROTECTED
const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_PROTECTED
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_PAYLOAD_PROTECTED
size_t length(void) const
int hash(const std::vector< const DDS::OctetSeq *> &src, DDS::OctetSeq &dst)
void MD5Hash(MD5Result &result, const void *input, size_t size)
InfoDestinationSubmessage info_dst_sm
TopicSecurityAttributes base
sequence< Locator_t > LocatorSeq
TimePoint_T< SystemClock > SystemTimePoint
boolean is_liveliness_protected
void serialized_size(const Encoding &encoding, size_t &size, const SequenceNumber &)
boolean is_discovery_protected
char * rd_ptr(void) const
const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_VALID
bool bitmapNonEmpty(const SequenceNumberSet &snSet)
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_PROTECTED
DCPS::TimeDuration rtps_duration_to_time_duration(const Duration_t &rtps_duration, const ProtocolVersion_t &version, const VendorId_t &vendor)
Class to serialize and deserialize data for DDS.
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_WRITE_PROTECTED
boolean is_discovery_protected
#define OpenDDS_Rtps_Export
bool operator==(const Duration_t &x, const Duration_t &y)
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_PROTECTED
ACE_UINT32 getLow() const
void message_block_to_sequence(const ACE_Message_Block &mb_locator, T &out)
unsigned long EndpointSecurityAttributesMask
TimePoint_T< MonotonicClock > MonotonicTimePoint
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_VALID
boolean is_liveliness_protected
OpenDDS_Rtps_Export DCPS::LocatorSeq transport_locator_to_locator_seq(const DCPS::TransportLocator &info)
sequence< octet > OctetSeq
DDS::OctetSeq handle_to_octets(DDS::Security::NativeCryptoHandle handle)
boolean is_submessage_protected
void append_submessage(RTPS::Message &message, const RTPS::InfoDestinationSubmessage &submessage)
void push_back(Seq &seq, const typename Seq::value_type &val)
std::vector-style push_back() for CORBA Sequences
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
unsigned long ParticipantSecurityAttributesMask
void marshal_key_hash(const T &msg, KeyHash_t &hash)
Sequence number abstraction. Only allows positive 64 bit values.
const DCPS::Encoding & get_locators_encoding()
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
boolean is_write_protected
void assign(EntityId_t &dest, const EntityId_t &src)
InfoTimestampSubmessage info_ts_sm
boolean is_rtps_protected
DDS::ReturnCode_t blob_to_locators(const DCPS::TransportBLOB &blob, DCPS::LocatorSeq &locators, bool *requires_inline_qos, unsigned int *pBytesRead)
RTPS::SequenceNumber_t to_rtps_seqnum(const DCPS::SequenceNumber &opendds_seqnum)
boolean is_payload_protected
void setValue(Value value)
DataFragSubmessage data_frag_sm
const DCPS::Encoding encoding(DCPS::Encoding::KIND_UNALIGNED_CDR, DCPS::ENDIAN_BIG)
DDS::OctetSeq TransportBLOB
ACE_INT32 getHigh() const
The Internal API and Implementation of OpenDDS.
boolean is_read_protected
void locators_to_blob(const DCPS::LocatorSeq &locators, DCPS::TransportBLOB &blob)
const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_PROTECTED
DCPS::SequenceNumber to_opendds_seqnum(const RTPS::SequenceNumber_t &rtps_seqnum)
SubmessageSeq submessages
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_READ_PROTECTED
DDS::Security::ParticipantSecurityAttributesMask security_attributes_to_bitmask(const DDS::Security::ParticipantSecurityAttributes &sec_attr)
bool operator<(const ProtocolVersion_t &v1, const ProtocolVersion_t &v2)
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_KEY_PROTECTED