SNode.C
Loading...
Searching...
No Matches
iot::mqtt::server::packets::Subscribe Class Reference

#include <Subscribe.h>

Inheritance diagram for iot::mqtt::server::packets::Subscribe:
Collaboration diagram for iot::mqtt::server::packets::Subscribe:

Public Member Functions

 Subscribe (uint32_t remainingLength, uint8_t flags)
 
- Public Member Functions inherited from iot::mqtt::packets::Subscribe
 Subscribe ()
 
 Subscribe (uint16_t packetIdentifier, const std::list< iot::mqtt::Topic > &topics)
 
uint16_t getPacketIdentifier () const
 
const std::list< iot::mqtt::Topic > & getTopics () const
 
- Public Member Functions inherited from iot::mqtt::ControlPacket
 ControlPacket (uint8_t type, const std::string &name)
 
 ControlPacket (const ControlPacket &)=default
 
 ControlPacket (ControlPacket &&)=default
 
virtual ~ControlPacket ()
 
ControlPacketoperator= (const ControlPacket &)=default
 
ControlPacketoperator= (ControlPacket &&)=default
 
std::vector< char > serialize () const
 
const std::string & getName () const
 
uint8_t getType () const
 
uint8_t getFlags () const
 
- Public Member Functions inherited from iot::mqtt::server::ControlPacketDeserializer
 ~ControlPacketDeserializer () override
 
- Public Member Functions inherited from iot::mqtt::ControlPacketDeserializer
 ControlPacketDeserializer ()=default
 
 ControlPacketDeserializer (uint32_t remainingLength, uint8_t flags, uint8_t mustFlags)
 
ControlPacketDeserializeroperator= (const ControlPacketDeserializer &)=default
 
std::size_t deserialize (iot::mqtt::MqttContext *mqttContext)
 
uint32_t getRemainingLength () const
 
bool isComplete () const
 
bool isError () const
 
std::size_t getConsumed () const
 

Private Member Functions

std::size_t deserializeVP (iot::mqtt::MqttContext *mqttContext) override
 
void deliverPacket (iot::mqtt::server::Mqtt *mqtt) override
 

Private Attributes

iot::mqtt::types::String topic
 
iot::mqtt::types::UInt8 qoS
 
int state = 0
 

Additional Inherited Members

- Protected Attributes inherited from iot::mqtt::packets::Subscribe
iot::mqtt::types::UInt16 packetIdentifier
 
std::list< iot::mqtt::Topictopics
 
- Protected Attributes inherited from iot::mqtt::ControlPacket
uint8_t flags = 0
 
- Protected Attributes inherited from iot::mqtt::ControlPacketDeserializer
bool complete = false
 
bool error = false
 
uint32_t remainingLength = 0
 
std::size_t consumed = 0
 

Detailed Description

Definition at line 34 of file Subscribe.h.

Constructor & Destructor Documentation

◆ Subscribe()

iot::mqtt::server::packets::Subscribe::Subscribe ( uint32_t remainingLength,
uint8_t flags )

Member Function Documentation

◆ deliverPacket()

void iot::mqtt::server::packets::Subscribe::deliverPacket ( iot::mqtt::server::Mqtt * mqtt)
overrideprivatevirtual

Implements iot::mqtt::server::ControlPacketDeserializer.

Definition at line 81 of file Subscribe.cpp.

81 {
82 mqtt->printVP(*this);
83 mqtt->_onSubscribe(*this);
84 }
void printVP(const iot::mqtt::ControlPacket &packet) const
Definition Mqtt.cpp:346
void _onSubscribe(const iot::mqtt::server::packets::Subscribe &subscribe)
Definition Mqtt.cpp:265

◆ deserializeVP()

std::size_t iot::mqtt::server::packets::Subscribe::deserializeVP ( iot::mqtt::MqttContext * mqttContext)
overrideprivatevirtual

Implements iot::mqtt::ControlPacketDeserializer.

Definition at line 37 of file Subscribe.cpp.

37 {
38 std::size_t consumed = 0;
39
40 switch (state) {
41 case 0: // V-Header
43
45 break;
46 }
47
48 state++;
49 [[fallthrough]];
50 case 1: // Payload
51 consumed += topic.deserialize(mqttContext);
52
53 if (!topic.isComplete()) {
54 break;
55 }
56
57 state++;
58 [[fallthrough]];
59 case 2:
60 consumed += qoS.deserialize(mqttContext);
61
62 if (!qoS.isComplete()) {
63 break;
64 }
65 topics.emplace_back(topic, qoS);
66 topic.reset();
67 qoS.reset();
68
70 state = 1;
71 }
72
74
75 break;
76 }
77
78 return consumed;
79 }
std::list< iot::mqtt::Topic > topics
Definition Subscribe.h:53
iot::mqtt::types::UInt16 packetIdentifier
Definition Subscribe.h:51
iot::mqtt::types::UInt8 qoS
Definition Subscribe.h:45
iot::mqtt::types::String topic
Definition Subscribe.h:44
std::size_t deserialize(iot::mqtt::MqttContext *mqttContext) override
Definition String.cpp:45
void reset(std::size_t size=0) override
Definition String.cpp:101
virtual std::size_t deserialize(iot::mqtt::MqttContext *mqttContext)
Definition TypeBase.hpp:37
virtual void reset(std::size_t size=sizeof(ValueType))
Definition TypeBase.hpp:71

Member Data Documentation

◆ qoS

iot::mqtt::types::UInt8 iot::mqtt::server::packets::Subscribe::qoS
private

Definition at line 45 of file Subscribe.h.

◆ state

int iot::mqtt::server::packets::Subscribe::state = 0
private

Definition at line 47 of file Subscribe.h.

◆ topic

iot::mqtt::types::String iot::mqtt::server::packets::Subscribe::topic
private

Definition at line 44 of file Subscribe.h.


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