MADARA  3.4.1
madara::transport::ReducedMessageHeader Class Reference

Defines a simple, smaller message header of 29 bytes that supports less QoS. More...

#include <ReducedMessageHeader.h>

Inheritance diagram for madara::transport::ReducedMessageHeader:
madara::transport::MessageHeader

Public Member Functions

 ReducedMessageHeader ()
 Constructor. More...
 
virtual ~ReducedMessageHeader ()
 Destructor. More...
 
virtual uint32_t encoded_size (void) const
 Returns the size of the encoded MessageHeader class, which may be different from sizeof (MessageHeader) because of compiler optimizations for word boundaries. More...
 
virtual bool equals (const MessageHeader &other)
 Compares the fields of this instance to another instance. More...
 
virtual const char * read (const char *buffer, int64_t &buffer_remaining)
 Reads a MessageHeader instance from a buffer and updates the amount of buffer room remaining. More...
 
virtual std::string to_string (void)
 Converts the relevant fields to a printable string. More...
 
virtual char * write (char *buffer, int64_t &buffer_remaining)
 Writes a MessageHeader instance to a buffer and updates the amount of buffer room remaining. More...
 

Static Public Member Functions

static uint64_t get_size (const char *buffer)
 Returns the size field of the header. More...
 
static bool message_header_test (const char *buffer)
 Tests the buffer for a normal message identifier. More...
 
static bool reduced_message_header_test (const char *buffer)
 Tests the buffer for a reduced message identifier. More...
 
static uint32_t static_encoded_size (void)
 Returns the size of the encoded MessageHeader class. More...
 

Public Attributes

uint64_t clock
 the clock of the sender when the message was generated More...
 
char domain [32]
 the domain that this message is intended for More...
 
char madara_id [8]
 the identifier of this transport (MADARA_IDENTIFIER) More...
 
char originator [64]
 the originator of the message (host:port) More...
 
uint32_t quality
 the quality of the message sender More...
 
uint64_t size
 the size of this header plus the updates More...
 
uint64_t timestamp
 the timestamp of the sender when the message was generated More...
 
unsigned char ttl
 time to live (number of rebroadcasts to perform after original send More...
 
uint32_t type
 the type of message More...
 
uint32_t updates
 the number of knowledge variable updates in the message More...
 

Detailed Description

Defines a simple, smaller message header of 29 bytes that supports less QoS.

Format:

[0] [64 bit unsigned size]
[8] [8 byte string transport id]
[16] [4 byte unsigned num updates]
[20] [64 bit unsigned clock]
[28] [8 bit unsigned ttl–for rebroadcasts]
[29] [knowledge updates start here]

Definition at line 38 of file ReducedMessageHeader.h.

Constructor & Destructor Documentation

◆ ReducedMessageHeader()

madara::transport::ReducedMessageHeader::ReducedMessageHeader ( )

Constructor.

Definition at line 10 of file ReducedMessageHeader.cpp.

◆ ~ReducedMessageHeader()

madara::transport::ReducedMessageHeader::~ReducedMessageHeader ( )
virtual

Destructor.

Definition at line 17 of file ReducedMessageHeader.cpp.

Member Function Documentation

◆ encoded_size()

uint32_t madara::transport::ReducedMessageHeader::encoded_size ( void  ) const
virtual

Returns the size of the encoded MessageHeader class, which may be different from sizeof (MessageHeader) because of compiler optimizations for word boundaries.

Reimplemented from madara::transport::MessageHeader.

Definition at line 19 of file ReducedMessageHeader.cpp.

◆ equals()

bool madara::transport::ReducedMessageHeader::equals ( const MessageHeader other)
virtual

Compares the fields of this instance to another instance.

Parameters
otherthe other instance to compare against
Returns
true if equal, false otherwise

Reimplemented from madara::transport::MessageHeader.

Definition at line 250 of file ReducedMessageHeader.cpp.

◆ get_size()

uint64_t madara::transport::MessageHeader::get_size ( const char *  buffer)
staticinherited

Returns the size field of the header.

Returns
size field of the encoded buffer

Definition at line 429 of file MessageHeader.cpp.

◆ message_header_test()

static bool madara::transport::MessageHeader::message_header_test ( const char *  buffer)
inlinestaticinherited

Tests the buffer for a normal message identifier.

Returns
true if identifier indicates reduced message header

Definition at line 129 of file MessageHeader.h.

◆ read()

const char * madara::transport::ReducedMessageHeader::read ( const char *  buffer,
int64_t &  buffer_remaining 
)
virtual

Reads a MessageHeader instance from a buffer and updates the amount of buffer room remaining.

Parameters
bufferthe readable buffer where data is stored
buffer_remainingthe count of bytes remaining in the buffer to read
Returns
current buffer position for next read
Exceptions
exceptions::MemoryExceptionnot enough buffer to encode

Reimplemented from madara::transport::MessageHeader.

Definition at line 26 of file ReducedMessageHeader.cpp.

◆ reduced_message_header_test()

static bool madara::transport::ReducedMessageHeader::reduced_message_header_test ( const char *  buffer)
inlinestatic

Tests the buffer for a reduced message identifier.

Returns
true if identifier indicates reduced message header

Definition at line 99 of file ReducedMessageHeader.h.

◆ static_encoded_size()

uint32_t madara::transport::MessageHeader::static_encoded_size ( void  )
staticinherited

Returns the size of the encoded MessageHeader class.

This function differs from encoded_size () in that encoded_size reports polymorphically, while this method may be called statically and always refers to the base class's size.

Definition at line 36 of file MessageHeader.cpp.

◆ to_string()

std::string madara::transport::ReducedMessageHeader::to_string ( void  )
virtual

Converts the relevant fields to a printable string.

Returns
the printable string of fields in the header

Reimplemented from madara::transport::MessageHeader.

Definition at line 238 of file ReducedMessageHeader.cpp.

◆ write()

char * madara::transport::ReducedMessageHeader::write ( char *  buffer,
int64_t &  buffer_remaining 
)
virtual

Writes a MessageHeader instance to a buffer and updates the amount of buffer room remaining.

Parameters
bufferthe readable buffer where data is stored
buffer_remainingthe count of bytes remaining in the buffer to read
Returns
current buffer position for next write
Exceptions
exceptions::MemoryExceptionnot enough buffer to encode

Reimplemented from madara::transport::MessageHeader.

Definition at line 134 of file ReducedMessageHeader.cpp.

Member Data Documentation

◆ clock

uint64_t madara::transport::MessageHeader::clock
inherited

the clock of the sender when the message was generated

Definition at line 188 of file MessageHeader.h.

◆ domain

char madara::transport::MessageHeader::domain[32]
inherited
Initial value:
= {
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0'
}

the domain that this message is intended for

Definition at line 149 of file MessageHeader.h.

◆ madara_id

char madara::transport::MessageHeader::madara_id[8]
inherited
Initial value:
= {
'\0','\0','\0','\0','\0','\0','\0','\0'
}

the identifier of this transport (MADARA_IDENTIFIER)

Definition at line 142 of file MessageHeader.h.

◆ originator

char madara::transport::MessageHeader::originator[64]
inherited
Initial value:
= {
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0',
'\0','\0','\0','\0','\0','\0','\0','\0'
}

the originator of the message (host:port)

Definition at line 159 of file MessageHeader.h.

◆ quality

uint32_t madara::transport::MessageHeader::quality
inherited

the quality of the message sender

Definition at line 183 of file MessageHeader.h.

◆ size

uint64_t madara::transport::MessageHeader::size
inherited

the size of this header plus the updates

Definition at line 137 of file MessageHeader.h.

◆ timestamp

uint64_t madara::transport::MessageHeader::timestamp
inherited

the timestamp of the sender when the message was generated

Definition at line 193 of file MessageHeader.h.

◆ ttl

unsigned char madara::transport::MessageHeader::ttl
inherited

time to live (number of rebroadcasts to perform after original send

Definition at line 198 of file MessageHeader.h.

◆ type

uint32_t madara::transport::MessageHeader::type
inherited

the type of message

See also
madara::transport::Messages enum

Definition at line 173 of file MessageHeader.h.

◆ updates

uint32_t madara::transport::MessageHeader::updates
inherited

the number of knowledge variable updates in the message

Definition at line 178 of file MessageHeader.h.


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