SPSP
Simple publish-subscribe protocol. Connects low power IoT clients to MQTT.
All Classes Files Functions Variables Typedefs Enumerations
mqtt_types.hpp
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include <chrono>
13 #include <cstdint>
14 
15 #include "spsp/exception.hpp"
16 
17 namespace SPSP::FarLayers::MQTT
18 {
19  static constexpr const char* MQTT_CLIENT_ID_PREFIX = "spsp_";
20 
27  {
29  };
30 
35  struct Config
36  {
37  struct Connection
38  {
39  std::string uri;
40 
48  std::string verifyCrt;
49 
50  uint32_t keepalive = 120;
51  int qos = 0;
52  bool retain = false;
53 
54  std::chrono::milliseconds timeout = std::chrono::seconds(10);
55  };
56 
57  struct Auth
58  {
59  std::string username;
60  std::string password;
61 
70  std::string clientId;
71 
80  std::string crt;
81 
88  std::string crtKey;
89  };
90 
91  struct LastWill
92  {
93  std::string topic;
94  std::string msg;
95  int qos = 0;
96  bool retain = false;
97  };
98 
106  std::string pubTopicPrefix = "spsp";
107 
108  Connection connection;
109  Auth auth;
110  LastWill lastWill;
111  };
112 } // namespace SPSP::FarLayers::MQTT
SPSP::FarLayers::MQTT::Config::Connection::qos
int qos
QoS for sent messages and subscriptions.
Definition: mqtt_types.hpp:51
SPSP::FarLayers::MQTT::Config::Auth::username
std::string username
Username for connection (can also be set by URI)
Definition: mqtt_types.hpp:59
SPSP::FarLayers::MQTT::Config::Auth::crt
std::string crt
Definition: mqtt_types.hpp:80
SPSP::FarLayers::MQTT::Config::Connection::keepalive
uint32_t keepalive
Keepalive interval in seconds (set to 0 to disable keepalive)
Definition: mqtt_types.hpp:50
SPSP::FarLayers::MQTT::Config::Auth::password
std::string password
Password for connection (can also be set by URI)
Definition: mqtt_types.hpp:60
SPSP::FarLayers::MQTT::Config::Connection::verifyCrt
std::string verifyCrt
Definition: mqtt_types.hpp:48
SPSP::FarLayers::MQTT::Config::LastWill::msg
std::string msg
LWT message.
Definition: mqtt_types.hpp:94
SPSP::FarLayers::MQTT::Config::pubTopicPrefix
std::string pubTopicPrefix
Definition: mqtt_types.hpp:106
SPSP::FarLayers::MQTT::Config::Auth::crtKey
std::string crtKey
Definition: mqtt_types.hpp:88
SPSP::FarLayers::MQTT::Config::LastWill::topic
std::string topic
LWT topic.
Definition: mqtt_types.hpp:93
SPSP::FarLayers::MQTT::Config
MQTT client configuration.
Definition: mqtt_types.hpp:35
SPSP::FarLayers::MQTT::Config::Connection::retain
bool retain
Retain flag for sent messages.
Definition: mqtt_types.hpp:52
SPSP::FarLayers::MQTT::ConnectionError
MQTT connection error.
Definition: mqtt_types.hpp:26
SPSP::FarLayers::MQTT::Config::Connection::uri
std::string uri
Definition: mqtt_types.hpp:39
SPSP::FarLayers::MQTT::Config::LastWill::qos
int qos
LWT QoS.
Definition: mqtt_types.hpp:95
SPSP::FarLayers::MQTT::Config::Connection::timeout
std::chrono::milliseconds timeout
Connection timeout.
Definition: mqtt_types.hpp:54
SPSP::FarLayers::MQTT::Config::Auth::clientId
std::string clientId
Definition: mqtt_types.hpp:70
SPSP::Exception::Exception
Exception(const std::string &msg)
Constructs a new exception.
Definition: exception.hpp:31
SPSP::FarLayers::MQTT::Config::LastWill::retain
bool retain
LWT retain flag.
Definition: mqtt_types.hpp:96
SPSP::FarLayers::MQTT::Config::LastWill
Definition: mqtt_types.hpp:91
SPSP::FarLayers::MQTT::Config::Auth
Definition: mqtt_types.hpp:57
exception.hpp
Base of all SPSP exceptions.
SPSP::FarLayers::MQTT::Config::Connection
Definition: mqtt_types.hpp:37
SPSP::Exception
Base SPSP exception.
Definition: exception.hpp:21