IQRF Gateway Daemon
Public Member Functions | List of all members
MqttMessaging Class Reference

MQTT messaging. More...

#include <MqttMessaging.h>

Inheritance diagram for MqttMessaging:
IMessaging

Public Member Functions

 MqttMessaging ()=delete
 
 MqttMessaging (const std::string &name)
 
virtual ~MqttMessaging ()
 
void start () override
 IMessaging overriden methods. More...
 
void stop () override
 Stop Messaging instance. More...
 
void update (const rapidjson::Value &cfg) override
 Update configuration. More...
 
const std::string & getName () const override
 Get name of the instance. More...
 
void registerMessageHandler (MessageHandlerFunc hndl) override
 Register message handler. More...
 
void unregisterMessageHandler () override
 Unregister message handler. More...
 
void sendMessage (const ustring &msg) override
 send message More...
 
- Public Member Functions inherited from IMessaging
virtual ~IMessaging ()
 

Additional Inherited Members

- Public Types inherited from IMessaging
typedef std::basic_string< unsigned char > ustring
 
typedef std::function< void(const ustring &)> MessageHandlerFunc
 Incoming message handler functional type. More...
 

Detailed Description

MQTT messaging.

Implements IMessaging interface for MQTT communication by MQTT Paho library

Configurable via its update() method accepting JSON properties:

"Properties": {
"BrokerAddr": "tcp://127.0.0.1:1883", #broker address
"ClientId": "IqrfDpaMessaging1", #unique instance name
"Persistence": 1, #MQTT persistence value
"Qos": 1, #MQTT QoS value
"TopicRequest": "Iqrf/DpaRequest", #MQTT topic expected for incoming messages
"TopicResponse": "Iqrf/DpaResponse", #MQTT topic used for outgoing messages
"User": "", #MQTT user for authentication
"Password": "", #MQTT password for authentication
"EnabledSSL": false, #MQTT SSL
"KeepAliveInterval": 20, #Paho keep alive interval value
"ConnectTimeout": 5, #Paho connect timeout value
"MinReconnect": 1, #Paho minimal reconnect value
"MaxReconnect": 64, #Paho maximal reconnect value
"TrustStore": "server-ca.crt", #SSL parameter
"KeyStore": "client.pem", #SSL parameter
"PrivateKey": "client-privatekey.pem", #SSL parameter
"PrivateKeyPassword": "", #SSL parameter
"EnabledCipherSuites": "", #SSL parameter
"EnableServerCertAuth": true #SSL parameter
}

Constructor & Destructor Documentation

◆ MqttMessaging() [1/2]

MqttMessaging::MqttMessaging ( )
delete

◆ MqttMessaging() [2/2]

MqttMessaging::MqttMessaging ( const std::string &  name)

◆ ~MqttMessaging()

MqttMessaging::~MqttMessaging ( )
virtual

Member Function Documentation

◆ getName()

const std::string & MqttMessaging::getName ( ) const
overridevirtual

Get name of the instance.

Returns
The instance name

Returns unique name of the instance

Implements IMessaging.

◆ registerMessageHandler()

void MqttMessaging::registerMessageHandler ( MessageHandlerFunc  hndl)
overridevirtual

Register message handler.

Parameters
[in]hndlregistering handler function

Whenever a message is received it is passed to the handler function. It is possible to register just one handler

Implements IMessaging.

◆ sendMessage()

void MqttMessaging::sendMessage ( const ustring msg)
overridevirtual

send message

Parameters
[in]msgmessage to be sent

The message is send outside

Implements IMessaging.

◆ start()

void MqttMessaging::start ( )
overridevirtual

IMessaging overriden methods.

Implements IMessaging.

◆ stop()

void MqttMessaging::stop ( )
overridevirtual

Stop Messaging instance.

Messaging implementation stops its job

Implements IMessaging.

◆ unregisterMessageHandler()

void MqttMessaging::unregisterMessageHandler ( )
overridevirtual

Unregister message handler.

If the handler is not required anymore, it is possible to unregister via this method.

Implements IMessaging.

◆ update()

void MqttMessaging::update ( const rapidjson::Value &  cfg)
overridevirtual

Update configuration.

Parameters
[in]cfgconfiguration data

Configuration data are taken from passed cfg and the instance is configured accordingly

Implements IMessaging.


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