Class RTPSMessageCreator

Class Documentation

class RTPSMessageCreator

Class RTPSMessageCreator, allows the generation of serialized CDR RTPS Messages.

CDR messages creation methods.

These methods create a CDR message for different types Depending on the function a complete message (with RTPS Header is created) or only the submessage.

param msg:

[out] Pointer to where the message is going to be created and stored.

param guidPrefix:

[in] Guid Prefix of the RTPSParticipant.

param param:

[in] Different parameters depending on the message.

return:

True if correct.

static bool addMessageData(CDRMessage_t *msg, GuidPrefix_t &guidprefix, const CacheChange_t *change, TopicKind_t topicKind, const EntityId_t &readerId, bool expectsInlineQos, InlineQosWriter *inlineQos)
static bool addSubmessageData(CDRMessage_t *msg, const CacheChange_t *change, TopicKind_t topicKind, const EntityId_t &readerId, bool expectsInlineQos, InlineQosWriter *inlineQos, bool *is_big_submessage)
static bool addMessageDataFrag(CDRMessage_t *msg, GuidPrefix_t &guidprefix, const CacheChange_t *change, uint32_t fragment_number, TopicKind_t topicKind, const EntityId_t &readerId, bool expectsInlineQos, InlineQosWriter *inlineQos)
static bool addSubmessageDataFrag(CDRMessage_t *msg, const CacheChange_t *change, uint32_t fragment_number, const SerializedPayload_t &data, TopicKind_t topicKind, const EntityId_t &readerId, bool expectsInlineQos, InlineQosWriter *inlineQos)
static bool addMessageGap(CDRMessage_t *msg, const GuidPrefix_t &guidprefix, const GuidPrefix_t &remoteGuidPrefix, const SequenceNumber_t &seqNumFirst, const SequenceNumberSet_t &seqNumList, const EntityId_t &readerId, const EntityId_t &writerId)
static bool addSubmessageGap(CDRMessage_t *msg, const SequenceNumber_t &seqNumFirst, const SequenceNumberSet_t &seqNumList, const EntityId_t &readerId, const EntityId_t &writerId)
static bool addMessageHeartbeat(CDRMessage_t *msg, const GuidPrefix_t &guidprefix, const EntityId_t &readerId, const EntityId_t &writerId, const SequenceNumber_t &firstSN, const SequenceNumber_t &lastSN, Count_t count, bool isFinal, bool livelinessFlag)
static bool addMessageHeartbeat(CDRMessage_t *msg, const GuidPrefix_t &guidprefix, const GuidPrefix_t &remoteGuidprefix, const EntityId_t &readerId, const EntityId_t &writerId, const SequenceNumber_t &firstSN, const SequenceNumber_t &lastSN, Count_t count, bool isFinal, bool livelinessFlag)
static bool addSubmessageHeartbeat(CDRMessage_t *msg, const EntityId_t &readerId, const EntityId_t &writerId, const SequenceNumber_t &firstSN, const SequenceNumber_t &lastSN, Count_t count, bool isFinal, bool livelinessFlag)
static bool addMessageHeartbeatFrag(CDRMessage_t *msg, const GuidPrefix_t &guidprefix, const EntityId_t &readerId, const EntityId_t &writerId, SequenceNumber_t &firstSN, FragmentNumber_t &lastFN, Count_t count)
static bool addSubmessageHeartbeatFrag(CDRMessage_t *msg, const EntityId_t &readerId, const EntityId_t &writerId, SequenceNumber_t &firstSN, FragmentNumber_t &lastFN, Count_t count)
static bool addMessageAcknack(CDRMessage_t *msg, const GuidPrefix_t &guidprefix, const GuidPrefix_t &remoteGuidPrefix, const EntityId_t &readerId, const EntityId_t &writerId, const SequenceNumberSet_t &SNSet, int32_t count, bool finalFlag)
static bool addSubmessageAcknack(CDRMessage_t *msg, const EntityId_t &readerId, const EntityId_t &writerId, const SequenceNumberSet_t &SNSet, int32_t count, bool finalFlag)
static bool addMessageNackFrag(CDRMessage_t *msg, const GuidPrefix_t &guidprefix, const GuidPrefix_t &remoteGuidPrefix, const EntityId_t &readerId, const EntityId_t &writerId, SequenceNumber_t &writerSN, FragmentNumberSet_t fnState, int32_t count)
static bool addSubmessageNackFrag(CDRMessage_t *msg, const EntityId_t &readerId, const EntityId_t &writerId, const SequenceNumber_t &writerSN, FragmentNumberSet_t fnState, int32_t count)
static bool addSubmessageInfoTS(CDRMessage_t *msg, const Time_t &time, bool invalidateFlag)
static bool addSubmessageInfoTS_Now(CDRMessage_t *msg, bool invalidateFlag)
static bool addSubmessageInfoSRC(CDRMessage_t *msg, const ProtocolVersion_t &version, const fastdds::rtps::VendorId_t &vendorId, const GuidPrefix_t &guidP)
static bool addSubmessageInfoDST(CDRMessage_t *msg, const GuidPrefix_t &guidP)

Public Functions

RTPSMessageCreator() = delete
~RTPSMessageCreator() = delete

Public Static Functions

static bool addHeader(CDRMessage_t *msg, const GuidPrefix_t &Prefix, const ProtocolVersion_t &version, const fastdds::rtps::VendorId_t &vendorId)

Create a Header to the serialized message.

Parameters:
  • msg – Pointer to the Message.

  • PrefixRTPSParticipant prefix of the message.

  • version – Protocol version.

  • vendorId – Vendor Id.

Returns:

True if correct.

static bool addHeader(CDRMessage_t *msg, const GuidPrefix_t &Prefix)

Create a Header to the serialized message.

Parameters:
  • msg – Pointer to the Message.

  • PrefixRTPSParticipant prefix of the message.

Returns:

True if correct.

static bool addCustomContent(CDRMessage_t *msg, const octet *content, const size_t contentSize)

Add a custom content to the serialized message.

Parameters:
  • msg – Pointer to the Message.

  • content – content to create.

  • contentSize – size of the content.

Returns:

True if correct.

static bool addSubmessageHeader(CDRMessage_t *msg, octet id, octet flags, uint16_t size)

Create SubmessageHeader.

Parameters:
  • msg – Pointer to the CDRMessage.

  • id – SubMessage Id.

  • flags – Submessage flags.

  • size – Submessage size.

Returns:

True if correct.