libcosmos
Linux C++ System Programming Library
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
cosmos::AncillaryMessage< level, MSG_TYPE > Class Template Reference

Base class for types that deal with (de)serializing ancillary socket messages. More...

#include <message_header.hxx>

Protected Member Functions

SendMessageHeader::ControlMessage createMsg (MSG_TYPE type, const size_t data_len) const
 
void checkMsg (const ReceiveMessageHeader::ControlMessage &msg, MSG_TYPE type) const
 
uint8_t * data (SendMessageHeader::ControlMessage &msg) const
 

Detailed Description

template<OptLevel level, typename MSG_TYPE>
class cosmos::AncillaryMessage< level, MSG_TYPE >

Base class for types that deal with (de)serializing ancillary socket messages.

This base class keeps some common logic that is shared between ancillary socket message types. More importantly this type is here to allow access to the API of SendMessageHeader::ControlMessage without adding a lot of friend declarations for each type of ancillary message.

Definition at line 459 of file message_header.hxx.

Member Function Documentation

◆ checkMsg()

template<OptLevel level, typename MSG_TYPE >
void cosmos::AncillaryMessage< level, MSG_TYPE >::checkMsg ( const ReceiveMessageHeader::ControlMessage & msg,
MSG_TYPE type ) const
inlineprotected

Definition at line 466 of file message_header.hxx.

466 {
467 if (msg.level() != level || type != MSG_TYPE(msg.type())) {
468 cosmos_throw(RuntimeError("ancillary message type mismatch"));
469 }
470 }

◆ createMsg()

template<OptLevel level, typename MSG_TYPE >
SendMessageHeader::ControlMessage cosmos::AncillaryMessage< level, MSG_TYPE >::createMsg ( MSG_TYPE type,
const size_t data_len ) const
inlineprotected

Definition at line 462 of file message_header.hxx.

462 {
463 return SendMessageHeader::ControlMessage{level, to_integral(type), data_len};
464 }

◆ data()

template<OptLevel level, typename MSG_TYPE >
uint8_t * cosmos::AncillaryMessage< level, MSG_TYPE >::data ( SendMessageHeader::ControlMessage & msg) const
inlineprotected

Definition at line 472 of file message_header.hxx.

472 {
473 return msg.data();
474 }

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