Class MessageReceiver

Class Documentation

class MessageReceiver

Class MessageReceiver, process the received messages.

Processing methods.

These methods are designed to read a part of the message and perform the corresponding actions: -Modify the message receiver state if necessary. -Add information to the history. -Return an error if the message is malformed.

param msg:

[inout] Pointer to the message

param smh:

[in] Pointer to the submessage header

param WriterID:

[out] Writer EntityID (only for DATA messages)

param was_decoded:

[in] Whether the submessage being processed came from decoding a secured submessage

return:

True if correct, false otherwise

Variants of received data message processing functions.

param reader_id:

[in] The ID of the reader to which the changes is addressed

param change:

[in] The CacheChange with the received data to process

param was_decoded:

[in] Whether the submessage being processed came from decoding a secured submessage

Variants of received data fragment message processing functions.

param reader_id:

[in] The ID of the reader to which the changes is addressed

param change:

[in] The CacheChange with the received data to process

param sample_size:

[in] The size of the message

param fragment_starting_num:

[in] The index of the first fragment in the message

param fragments_in_submessage:

[in] The number of fragments in the message

param was_decoded:

[in] Whether the submessage being processed came from decoding a secured submessage

Public Functions

MessageReceiver(RTPSParticipantImpl *participant, uint32_t rec_buffer_size)
Parameters:
  • participant

  • rec_buffer_size

virtual ~MessageReceiver()
void processCDRMsg(const Locator_t &source_locator, const Locator_t &reception_locator, CDRMessage_t *msg)

Process a new CDR message.

Parameters:
  • source_locator[in] Locator indicating the sending address.

  • reception_locator[in] Locator indicating the listening address.

  • msg[in] Pointer to the message

void associateEndpoint(Endpoint *to_add)
void removeEndpoint(Endpoint *to_remove)