MADARA
3.1.8
|
Defines a fragmentation header which allows for multi-part messages that are only applied once all fragments are received. More...
#include <Fragmentation.h>
Public Member Functions | |
FragmentMessageHeader () | |
Constructor. More... | |
virtual | ~FragmentMessageHeader () |
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... | |
void | operator= (MessageHeader &header) |
Assignment operator for regular message header. 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 bool | fragment_message_header_test (const char *buffer) |
Tests the buffer for a reduced message identifier. More... | |
static uint64_t | get_size (const char *buffer) |
Returns the size field of the header. More... | |
static uint32_t | get_updates (const char *buffer) |
Returns the number of updates indicated in the header. More... | |
static bool | message_header_test (const char *buffer) |
Tests the buffer for a normal message identifier. More... | |
static uint32_t | static_encoded_size (void) |
Returns the size of the encoded MessageHeader class, which may be different from sizeof (MessageHeader) because of compiler optimizations for word boundaries. 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 | update_number |
uint32_t | updates |
the number of knowledge variable updates in the message More... | |
Defines a fragmentation header which allows for multi-part messages that are only applied once all fragments are received.
Format:
[0] [64 bit unsigned size]
[8] [8 byte transport id] (prefixed with 'KFRG')
[16] [32 byte domain name]
[48] [64 byte originator (generally host:port)]
[112] [32 bit unsigned type]
2 = MULTIASSIGN (most common type)
[116] [32 bit unsigned num updates]
[120] [32 bit unsigned quality (type of priority)]
[124] [64 bit unsigned Lamport clock]
[132] [64 bit unsigned wall clock timestamp]
[140] [8 bit unsigned ttl–for rebroadcasts]
[141] [32 bit update number out of num updates]
[145] [knowledge updates start here in the buffer]
Definition at line 47 of file Fragmentation.h.
madara::transport::FragmentMessageHeader::FragmentMessageHeader | ( | ) |
Constructor.
Definition at line 9 of file Fragmentation.cpp.
|
virtual |
Destructor.
Definition at line 20 of file Fragmentation.cpp.
|
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 25 of file Fragmentation.cpp.
|
virtual |
Compares the fields of this instance to another instance.
other | the other instance to compare against |
Reimplemented from madara::transport::MessageHeader.
Definition at line 248 of file Fragmentation.cpp.
|
inlinestatic |
Tests the buffer for a reduced message identifier.
Definition at line 118 of file Fragmentation.h.
|
staticinherited |
Returns the size field of the header.
Definition at line 241 of file MessageHeader.cpp.
|
static |
Returns the number of updates indicated in the header.
Definition at line 45 of file Fragmentation.cpp.
|
inlinestaticinherited |
Tests the buffer for a normal message identifier.
Definition at line 129 of file MessageHeader.h.
void madara::transport::FragmentMessageHeader::operator= | ( | MessageHeader & | header | ) |
Assignment operator for regular message header.
Definition at line 537 of file Fragmentation.cpp.
|
virtual |
Reads a MessageHeader instance from a buffer and updates the amount of buffer room remaining.
buffer | the readable buffer where data is stored |
buffer_remaining | the count of bytes remaining in the buffer to read |
Reimplemented from madara::transport::MessageHeader.
Definition at line 52 of file Fragmentation.cpp.
|
static |
Returns the size of the encoded MessageHeader class, which may be different from sizeof (MessageHeader) because of compiler optimizations for word boundaries.
Definition at line 34 of file Fragmentation.cpp.
|
virtualinherited |
Converts the relevant fields to a printable string.
Reimplemented in madara::transport::ReducedMessageHeader.
Definition at line 222 of file MessageHeader.cpp.
|
virtual |
Writes a MessageHeader instance to a buffer and updates the amount of buffer room remaining.
buffer | the readable buffer where data is stored |
buffer_remaining | the count of bytes remaining in the buffer to read |
Reimplemented from madara::transport::MessageHeader.
Definition at line 154 of file Fragmentation.cpp.
|
inherited |
the clock of the sender when the message was generated
Definition at line 172 of file MessageHeader.h.
|
inherited |
the domain that this message is intended for
Definition at line 147 of file MessageHeader.h.
|
inherited |
the identifier of this transport (MADARA_IDENTIFIER)
Definition at line 142 of file MessageHeader.h.
|
inherited |
the originator of the message (host:port)
Definition at line 152 of file MessageHeader.h.
|
inherited |
the quality of the message sender
Definition at line 167 of file MessageHeader.h.
|
inherited |
the size of this header plus the updates
Definition at line 137 of file MessageHeader.h.
|
inherited |
the timestamp of the sender when the message was generated
Definition at line 177 of file MessageHeader.h.
|
inherited |
time to live (number of rebroadcasts to perform after original send
Definition at line 182 of file MessageHeader.h.
|
inherited |
the type of message
Definition at line 157 of file MessageHeader.h.
uint32_t madara::transport::FragmentMessageHeader::update_number |
Definition at line 123 of file Fragmentation.h.
|
inherited |
the number of knowledge variable updates in the message
Definition at line 162 of file MessageHeader.h.