SNode.C
Loading...
Searching...
No Matches
Connack.h
Go to the documentation of this file.
1/*
2 * SNode.C - a slim toolkit for network communication
3 * Copyright (C) Volker Christian <me@vchrist.at>
4 * 2020, 2021, 2022, 2023, 2024, 2025
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published
8 * by the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef IOT_MQTTFAST_PACKETS_CONNACK_H
21#define IOT_MQTTFAST_PACKETS_CONNACK_H
22
23#include "iot/mqtt-fast/ControlPacket.h"
24
25namespace iot::mqtt_fast {
27}
28
29#ifndef DOXYGEN_SHOULD_SKIP_THIS
30
31#include <cstdint>
32
33#endif // DOXYGEN_SHOULD_SKIP_THIS
34
35#define MQTT_CONNACK 0x02
36
37#define MQTT_CONNACK_ACCEPT 0
38#define MQTT_CONNACK_UNACEPTABLEVERSION 1
39#define MQTT_CONNACK_IDENTIFIERREJECTED 2
40#define MQTT_CONNACK_SERVERUNAVAILABLE 3
41#define MQTT_CONNACK_BADUSERNAMEORPASSWORD 4
42#define MQTT_CONNACK_NOTAUTHORIZED 5
43
44#define MQTT_SESSION_NEW 0x00
45#define MQTT_SESSION_PRESENT 0x01
46
47namespace iot::mqtt_fast::packets {
48
49 class Connack : public iot::mqtt_fast::ControlPacket {
50 public:
51 explicit Connack(uint8_t reason, uint8_t flags);
52 explicit Connack(mqtt_fast::ControlPacketFactory& controlPacketFactory);
53
54 uint8_t getFlags() const;
55
56 uint8_t getReason() const;
57
58 private:
59 uint8_t flags = 0;
60 uint8_t reason = 0;
61 };
62
63} // namespace iot::mqtt_fast::packets
64
65#endif // IOT_MQTTFAST_PACKETS_CONNACK_H
ControlPacket(iot::mqtt_fast::ControlPacketFactory &controlPacketFactory)
ControlPacket(uint8_t type, uint8_t reserved=0)
Connack(uint8_t reason, uint8_t flags)
Definition Connack.cpp:28
Connack(mqtt_fast::ControlPacketFactory &controlPacketFactory)
Definition Connack.cpp:39
#define MQTT_CONNACK
Definition Connack.h:35