Safe DDS
eprosima::safedds::protocol::rtps::Processor Class Reference

Processor implementation. More...

#include <Processor.hpp>

Public Member Functions

 Processor (IProcessData *data_processor, IProcessDataFrag *datafrag_processor, IProcessHeartbeat *heartbeat_processor, IProcessAckNack *acknack_processor, IProcessNackFrag *nackfrag_processor, IProcessGap *gap_processor, IProcessUnknown *unknown_processor) noexcept
 Processor constructor. More...
 
 Processor (IProcessData *data_processor, IProcessDataFrag *datafrag_processor, IProcessHeartbeat *heartbeat_processor, IProcessAckNack *acknack_processor, IProcessNackFrag *nackfrag_processor, IProcessGap *gap_processor, IProcessUnknown *unknown_processor, ProcessorProperties processor_properties) noexcept
 Overload of processor constructor with configured properties. More...
 
 Processor (Reader &reader) noexcept
 Processor constructor with rtps::Reader. More...
 
 Processor (Writer &writer) noexcept
 Processor constructor with rtps::Writer. More...
 
virtual ~Processor () noexcept=default
 Virtual destructor. More...
 
 Processor (const Processor &) noexcept=delete
 Copy deleted. More...
 
 Processor (Processor &&) noexcept=delete
 Movement deleted. More...
 
Processoroperator= (const Processor &) noexcept=delete
 Copy operator deleted. More...
 
Processoroperator= (Processor &&) noexcept=delete
 Movement operator deleted. More...
 
ReturnCode process_message (const memory::IConstByteArrayView &message) noexcept override
 Process the wire protocol message. More...
 

Protected Member Functions

ReturnCode process_next_submessage (serialization::IDeserializer &dser, const memory::IConstByteArrayView &message, ProcessorState &processor_state) noexcept
 Process next submessage in deserializer. More...
 
ReturnCode handle_submessage (const SubmessageHeader &subheader, const memory::IConstByteArrayView &payload, const memory::IConstByteArrayView &message, ProcessorState &processor_state) noexcept
 Handle a deserialized submessage. More...
 
ReturnCode process_data_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, const ProcessorState &processor_state) noexcept
 Deserialize and process DATA submessage. More...
 
ReturnCode process_datafrag_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, const ProcessorState &processor_state) noexcept
 Deserialize and process DATAFRAG submessage. More...
 
ReturnCode process_heartbeat_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, const ProcessorState &processor_state) noexcept
 Deserialize and process HEARTBEAT submessage. More...
 
ReturnCode process_gap_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, const ProcessorState &processor_state) noexcept
 Deserialize and process GAP submessage. More...
 
ReturnCode process_acknack_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, const ProcessorState &processor_state) noexcept
 Deserialize and process ACKNACK submessage. More...
 
ReturnCode process_nackfrag_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, const ProcessorState &processor_state) noexcept
 Deserialize and process NACKFRAG submessage. More...
 
ReturnCode process_unknown_submessage (const memory::IConstByteArrayView &submessage, ProcessorState &processor_state) noexcept
 
- Protected Member Functions inherited from eprosima::safedds::protocol::IProcessor
 ~IProcessor () noexcept=default
 Protected destructor ownership defined on creation. More...
 
 IProcessor () noexcept=default
 Default creation. More...
 
 IProcessor (const IProcessor &) noexcept=delete
 Copy deleted. More...
 
 IProcessor (IProcessor &&) noexcept=delete
 Movement deleted. More...
 
IProcessoroperator= (const IProcessor &) noexcept=delete
 Copy operator deleted. More...
 
IProcessoroperator= (IProcessor &&) noexcept=delete
 Movement operator deleted. More...
 

Static Protected Member Functions

static ReturnCode process_submessage_header (serialization::IDeserializer &dser, SubmessageHeader &submessage_header) noexcept
 Deserialize and process SubmessageHeader. More...
 
static ReturnCode process_infodst_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, ProcessorState &processor_state) noexcept
 Deserialize and process INFO_DST submessage. More...
 
static ReturnCode process_infosrc_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, ProcessorState &processor_state) noexcept
 Deserialize and process INFO_SCR submessage. More...
 
static ReturnCode process_infots_submessage (const SubmessageHeader &subheader, serialization::IDeserializer &dser, ProcessorState &processor_state) noexcept
 Deserialize and process INFO_TS submessage. More...
 
static ReturnCode process_header_extension_submessage (const SubmessageHeader &subheader, const memory::IConstByteArrayView &message, serialization::IDeserializer &submsg_dser, ProcessorState &processor_state) noexcept
 Deserialize and process HEADER_HE submessage. More...
 
static ReturnCode validate_processor_state (const ProcessorState &processor_state) noexcept
 Checks current processor state. More...
 
static ReturnCode validate_rtps_message (Submessage< HeaderExtension > &header_extension, const memory::IConstByteArrayView &message, serialization::IDeserializer &submsg_dser, ProcessorState &processor_state) noexcept
 Validate a RTPS message using a header extension submessage. More...
 

Protected Attributes

IProcessData * data_processor_
 Pointer to data processor. More...
 
IProcessDataFrag * datafrag_processor_
 Pointer to datafrag processor. More...
 
IProcessHeartbeat * heartbeat_processor_
 Pointer to heartbeat processor. More...
 
IProcessAckNack * acknack_processor_
 Pointer to acknack processor. More...
 
IProcessNackFrag * nackfrag_processor_
 Pointer to nackfrag processor. More...
 
IProcessGap * gap_processor_
 Pointer to gap processor. More...
 
IProcessUnknown * unknown_processor_
 Pointer to unknown processor. More...
 
ProcessorProperties processor_properties_
 Configured processor properties. More...
 

Detailed Description

Processor implementation.

Constructor & Destructor Documentation

◆ Processor() [1/6]

eprosima::safedds::protocol::rtps::Processor::Processor ( IProcessData *  data_processor,
IProcessDataFrag *  datafrag_processor,
IProcessHeartbeat *  heartbeat_processor,
IProcessAckNack *  acknack_processor,
IProcessNackFrag *  nackfrag_processor,
IProcessGap *  gap_processor,
IProcessUnknown *  unknown_processor 
)
noexcept

Processor constructor.

Parameters
[in,out]data_processorpointer to data processor. Ownership is not taken.
[in,out]datafrag_processorpointer to datafrag processor. Ownership is not taken.
[in,out]heartbeat_processorpointer to heartbeat processor. Ownership is not taken.
[in,out]acknack_processorpointer to acknack processor. Ownership is not taken.
[in,out]nackfrag_processorpointer to nackfrag processor. Ownership is not taken.
[in,out]gap_processorpointer to gap processor. Ownership is not taken.
[in,out]unknown_processorpointer to unknown processor. Ownership is not taken.

◆ Processor() [2/6]

eprosima::safedds::protocol::rtps::Processor::Processor ( IProcessData *  data_processor,
IProcessDataFrag *  datafrag_processor,
IProcessHeartbeat *  heartbeat_processor,
IProcessAckNack *  acknack_processor,
IProcessNackFrag *  nackfrag_processor,
IProcessGap *  gap_processor,
IProcessUnknown *  unknown_processor,
ProcessorProperties  processor_properties 
)
noexcept

Overload of processor constructor with configured properties.

Parameters
[in,out]data_processorpointer to data processor. Ownership is not taken.
[in,out]datafrag_processorpointer to datafrag processor. Ownership is not taken.
[in,out]heartbeat_processorpointer to heartbeat processor. Ownership is not taken.
[in,out]acknack_processorpointer to acknack processor. Ownership is not taken.
[in,out]nackfrag_processorpointer to nackfrag processor. Ownership is not taken.
[in,out]gap_processorpointer to gap processor. Ownership is not taken.
[in,out]unknown_processorpointer to unknown processor. Ownership is not taken.
processor_propertiesproperties.

◆ Processor() [3/6]

eprosima::safedds::protocol::rtps::Processor::Processor ( Reader reader)
explicitnoexcept

Processor constructor with rtps::Reader.

Parameters
[in,out]readerreference to Reader. Ownership is not taken.

◆ Processor() [4/6]

eprosima::safedds::protocol::rtps::Processor::Processor ( Writer writer)
explicitnoexcept

Processor constructor with rtps::Writer.

Parameters
[in,out]writerreference to Writer. Ownership is not taken.

◆ ~Processor()

virtual eprosima::safedds::protocol::rtps::Processor::~Processor ( )
virtualdefaultnoexcept

Virtual destructor.

◆ Processor() [5/6]

eprosima::safedds::protocol::rtps::Processor::Processor ( const Processor )
deletenoexcept

Copy deleted.

◆ Processor() [6/6]

eprosima::safedds::protocol::rtps::Processor::Processor ( Processor &&  )
deletenoexcept

Movement deleted.

Member Function Documentation

◆ handle_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::handle_submessage ( const SubmessageHeader &  subheader,
const memory::IConstByteArrayView payload,
const memory::IConstByteArrayView message,
ProcessorState &  processor_state 
)
protectednoexcept

Handle a deserialized submessage.

Parameters
subheaderDeserializer interface
payloadPayload of the submessage
messageComplete RTPS message view
[in,out]processor_stateProcessor state
Returns
ReturnCode

◆ operator=() [1/2]

Processor& eprosima::safedds::protocol::rtps::Processor::operator= ( const Processor )
deletenoexcept

Copy operator deleted.

◆ operator=() [2/2]

Processor& eprosima::safedds::protocol::rtps::Processor::operator= ( Processor &&  )
deletenoexcept

Movement operator deleted.

◆ process_acknack_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_acknack_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
const ProcessorState &  processor_state 
)
protectednoexcept

Deserialize and process ACKNACK submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
processor_stateProcessor state
Returns
ReturnCode with processing status

◆ process_data_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_data_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
const ProcessorState &  processor_state 
)
protectednoexcept

Deserialize and process DATA submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
processor_stateProcessor state
Returns
ReturnCode with processing status

◆ process_datafrag_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_datafrag_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
const ProcessorState &  processor_state 
)
protectednoexcept

Deserialize and process DATAFRAG submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
processor_stateProcessor state
Returns
ReturnCode with processing status

◆ process_gap_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_gap_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
const ProcessorState &  processor_state 
)
protectednoexcept

Deserialize and process GAP submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
processor_stateProcessor state
Returns
ReturnCode with processing status

◆ process_header_extension_submessage()

static ReturnCode eprosima::safedds::protocol::rtps::Processor::process_header_extension_submessage ( const SubmessageHeader &  subheader,
const memory::IConstByteArrayView message,
serialization::IDeserializer submsg_dser,
ProcessorState &  processor_state 
)
staticprotectednoexcept

Deserialize and process HEADER_HE submessage.

Parameters
subheaderAlready deserialized subheader
messageComplete RTPS message view
submsg_dserDeserializer with encapsulated RTPS submessage
[in,out]processor_stateProcessor state to modify
Returns
ReturnCode with processing status

◆ process_heartbeat_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_heartbeat_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
const ProcessorState &  processor_state 
)
protectednoexcept

Deserialize and process HEARTBEAT submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
processor_stateProcessor state
Returns
ReturnCode with processing status

◆ process_infodst_submessage()

static ReturnCode eprosima::safedds::protocol::rtps::Processor::process_infodst_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
ProcessorState &  processor_state 
)
staticprotectednoexcept

Deserialize and process INFO_DST submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
[in,out]processor_stateProcessor state to modify
Returns
ReturnCode with processing status

◆ process_infosrc_submessage()

static ReturnCode eprosima::safedds::protocol::rtps::Processor::process_infosrc_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
ProcessorState &  processor_state 
)
staticprotectednoexcept

Deserialize and process INFO_SCR submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
[in,out]processor_stateProcessor state to modify
Returns
ReturnCode with processing status

◆ process_infots_submessage()

static ReturnCode eprosima::safedds::protocol::rtps::Processor::process_infots_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
ProcessorState &  processor_state 
)
staticprotectednoexcept

Deserialize and process INFO_TS submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
[in,out]processor_stateProcessor state to modify
Returns
ReturnCode with processing status

◆ process_message()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_message ( const memory::IConstByteArrayView message)
overridevirtualnoexcept

Process the wire protocol message.

Parameters
messageview list with the message buffer, size shall be adjusted to message payload
Returns
ReturnCode

Implements eprosima::safedds::protocol::IProcessor.

◆ process_nackfrag_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_nackfrag_submessage ( const SubmessageHeader &  subheader,
serialization::IDeserializer dser,
const ProcessorState &  processor_state 
)
protectednoexcept

Deserialize and process NACKFRAG submessage.

Parameters
subheaderAlready deserialized subheader
dserDeserializer
processor_stateProcessor state
Returns
ReturnCode with processing status

◆ process_next_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_next_submessage ( serialization::IDeserializer dser,
const memory::IConstByteArrayView message,
ProcessorState &  processor_state 
)
protectednoexcept

Process next submessage in deserializer.

Parameters
dserDeserializer interface
messageComplete RTPS message view
[in,out]processor_stateProcessor state
Returns
ReturnCode with processing status

◆ process_submessage_header()

static ReturnCode eprosima::safedds::protocol::rtps::Processor::process_submessage_header ( serialization::IDeserializer dser,
SubmessageHeader &  submessage_header 
)
staticprotectednoexcept

Deserialize and process SubmessageHeader.

Parameters
dserDeserializer interface
[in,out]submessage_headerSubmessageHeader to fill
Returns
ReturnCode with processing status

◆ process_unknown_submessage()

ReturnCode eprosima::safedds::protocol::rtps::Processor::process_unknown_submessage ( const memory::IConstByteArrayView submessage,
ProcessorState &  processor_state 
)
protectednoexcept

Deserialize and process unknown RTPS submessage

Parameters
submessageComplete RTPS submessage view
[in,out]processor_stateProcessor state to modify
Returns
ReturnCode with processing status

◆ validate_processor_state()

static ReturnCode eprosima::safedds::protocol::rtps::Processor::validate_processor_state ( const ProcessorState &  processor_state)
staticprotectednoexcept

Checks current processor state.

Parameters
processor_stateCurrent processor state
Returns
ReturnCode

◆ validate_rtps_message()

static ReturnCode eprosima::safedds::protocol::rtps::Processor::validate_rtps_message ( Submessage< HeaderExtension > &  header_extension,
const memory::IConstByteArrayView message,
serialization::IDeserializer submsg_dser,
ProcessorState &  processor_state 
)
staticprotectednoexcept

Validate a RTPS message using a header extension submessage.

Parameters
header_extensionProcessed HeaderExtension sub message
messageComplete RTPS message view
submsg_dserSubmessage deserializer at start of header extension checksum
[in,out]processor_stateCurrent processor state to modify
Returns
ReturnCode

Member Data Documentation

◆ acknack_processor_

IProcessAckNack* eprosima::safedds::protocol::rtps::Processor::acknack_processor_
protected

Pointer to acknack processor.

◆ data_processor_

IProcessData* eprosima::safedds::protocol::rtps::Processor::data_processor_
protected

Pointer to data processor.

◆ datafrag_processor_

IProcessDataFrag* eprosima::safedds::protocol::rtps::Processor::datafrag_processor_
protected

Pointer to datafrag processor.

◆ gap_processor_

IProcessGap* eprosima::safedds::protocol::rtps::Processor::gap_processor_
protected

Pointer to gap processor.

◆ heartbeat_processor_

IProcessHeartbeat* eprosima::safedds::protocol::rtps::Processor::heartbeat_processor_
protected

Pointer to heartbeat processor.

◆ nackfrag_processor_

IProcessNackFrag* eprosima::safedds::protocol::rtps::Processor::nackfrag_processor_
protected

Pointer to nackfrag processor.

◆ processor_properties_

ProcessorProperties eprosima::safedds::protocol::rtps::Processor::processor_properties_
protected

Configured processor properties.

◆ unknown_processor_

IProcessUnknown* eprosima::safedds::protocol::rtps::Processor::unknown_processor_
protected

Pointer to unknown processor.


The documentation for this class was generated from the following file: