SNode.C
Loading...
Searching...
No Matches
iot::mqtt::FixedHeader Class Reference

#include <FixedHeader.h>

Collaboration diagram for iot::mqtt::FixedHeader:

Public Member Functions

 FixedHeader ()
 
 FixedHeader (uint8_t type, uint8_t flags, uint32_t remainingLength=0)
 
 ~FixedHeader ()
 
std::size_t deserialize (iot::mqtt::MqttContext *mqttContext)
 
std::vector< char > serialize () const
 
uint8_t getType () const
 
uint8_t getFlags () const
 
void setRemainingLength (uint32_t remainingLength)
 
uint32_t getRemainingLength () const
 
bool isComplete () const
 
bool isError () const
 
void reset ()
 

Private Attributes

types::UInt8 typeFlags
 
types::UIntV remainingLength
 
bool complete = false
 
bool error = false
 
int state = 0
 

Detailed Description

Definition at line 40 of file FixedHeader.h.

Constructor & Destructor Documentation

◆ FixedHeader() [1/2]

iot::mqtt::FixedHeader::FixedHeader ( )

Definition at line 28 of file FixedHeader.cpp.

28 {
29 }

◆ FixedHeader() [2/2]

iot::mqtt::FixedHeader::FixedHeader ( uint8_t type,
uint8_t flags,
uint32_t remainingLength = 0 )

Definition at line 31 of file FixedHeader.cpp.

31 {
32 this->typeFlags = static_cast<uint8_t>((type << 4) | (flags & 0x0F));
34 }
types::UInt8 typeFlags
Definition FixedHeader.h:62
types::UIntV remainingLength
Definition FixedHeader.h:63

◆ ~FixedHeader()

iot::mqtt::FixedHeader::~FixedHeader ( )

Definition at line 36 of file FixedHeader.cpp.

36 {
37 }

Member Function Documentation

◆ deserialize()

std::size_t iot::mqtt::FixedHeader::deserialize ( iot::mqtt::MqttContext * mqttContext)

Definition at line 39 of file FixedHeader.cpp.

39 {
40 std::size_t consumed = 0;
41
42 switch (state) {
43 case 0:
44 consumed += typeFlags.deserialize(mqttContext);
45
46 if (!typeFlags.isComplete()) {
47 break;
48 }
49 state++;
50 [[fallthrough]];
51 case 1:
52 consumed += remainingLength.deserialize(mqttContext);
53
56
57 break;
58 }
59
60 return consumed;
61 }
virtual std::size_t deserialize(iot::mqtt::MqttContext *mqttContext)
Definition TypeBase.hpp:37
std::size_t deserialize(iot::mqtt::MqttContext *mqttContext) override
Definition UIntV.cpp:40
bool isError() const
Definition UIntV.cpp:90

References state.

◆ getFlags()

uint8_t iot::mqtt::FixedHeader::getFlags ( ) const

Definition at line 67 of file FixedHeader.cpp.

67 {
68 return static_cast<uint8_t>(typeFlags & 0x0F);
69 }

◆ getRemainingLength()

uint32_t iot::mqtt::FixedHeader::getRemainingLength ( ) const

Definition at line 75 of file FixedHeader.cpp.

75 {
76 return remainingLength;
77 }

◆ getType()

uint8_t iot::mqtt::FixedHeader::getType ( ) const

Definition at line 63 of file FixedHeader.cpp.

63 {
64 return static_cast<uint8_t>(typeFlags >> 0x04);
65 }

◆ isComplete()

bool iot::mqtt::FixedHeader::isComplete ( ) const

Definition at line 79 of file FixedHeader.cpp.

79 {
80 return complete;
81 }

References complete.

◆ isError()

bool iot::mqtt::FixedHeader::isError ( ) const

Definition at line 83 of file FixedHeader.cpp.

83 {
84 return error;
85 }

References error.

◆ reset()

void iot::mqtt::FixedHeader::reset ( )

Definition at line 96 of file FixedHeader.cpp.

96 {
99
100 complete = false;
101 error = false;
102
103 state = 0;
104 }
virtual void reset(std::size_t size=sizeof(ValueType))
Definition TypeBase.hpp:71
void reset(std::size_t size=sizeof(ValueType)) override
Definition UIntV.cpp:94

References complete, error, and state.

◆ serialize()

std::vector< char > iot::mqtt::FixedHeader::serialize ( ) const

Definition at line 87 of file FixedHeader.cpp.

87 {
88 std::vector<char> packet = typeFlags.serialize();
89
90 std::vector<char> tmpVector = remainingLength.serialize();
91 packet.insert(packet.end(), tmpVector.begin(), tmpVector.end());
92
93 return packet;
94 }
virtual std::vector< char > serialize() const
Definition TypeBase.hpp:61

◆ setRemainingLength()

void iot::mqtt::FixedHeader::setRemainingLength ( uint32_t remainingLength)

Definition at line 71 of file FixedHeader.cpp.

71 {
73 }

Member Data Documentation

◆ complete

bool iot::mqtt::FixedHeader::complete = false
private

Definition at line 65 of file FixedHeader.h.

Referenced by isComplete(), and reset().

◆ error

bool iot::mqtt::FixedHeader::error = false
private

Definition at line 66 of file FixedHeader.h.

Referenced by isError(), and reset().

◆ remainingLength

types::UIntV iot::mqtt::FixedHeader::remainingLength
private

Definition at line 63 of file FixedHeader.h.

◆ state

int iot::mqtt::FixedHeader::state = 0
private

Definition at line 68 of file FixedHeader.h.

Referenced by deserialize(), and reset().

◆ typeFlags

types::UInt8 iot::mqtt::FixedHeader::typeFlags
private

Definition at line 62 of file FixedHeader.h.


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