diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 8e2684e..feef510 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -61,8 +61,8 @@ enum { MQTT_CLIENT_RX_STATE_DISCARD_PUBLISH_PAYLOAD }; -MqttClient::MqttClient(Client& client) : - _client(&client), +MqttClient::MqttClient(Client* client) : + _client(client), _onMessage(NULL), _cleanSession(true), _keepAliveInterval(60 * 1000L), @@ -82,6 +82,11 @@ MqttClient::MqttClient(Client& client) : setTimeout(0); } +MqttClient::MqttClient(Client& client) : MqttClient(&client) +{ + +} + MqttClient::~MqttClient() { if (_willBuffer) { diff --git a/src/MqttClient.h b/src/MqttClient.h index e0e9d63..de19a98 100644 --- a/src/MqttClient.h +++ b/src/MqttClient.h @@ -34,9 +34,14 @@ class MqttClient : public Client { public: + MqttClient(Client* client); MqttClient(Client& client); virtual ~MqttClient(); + + inline void setClient(Client& client) { _client = &client; } + + void onMessage(void(*)(int)); int parseMessage();