Skip to content

Commit 54b195e

Browse files
authored
Adding an additional ArduinoMqttClient constructor as well as a method setClient to allow late initialisation. (#37)
This allows for the ArduinoIoTCloud firmware to intantiate ArduinoMqttClient on the stack instead of the heap.
1 parent 6f4b6f0 commit 54b195e

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

Diff for: src/MqttClient.cpp

+7-2
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ enum {
6161
MQTT_CLIENT_RX_STATE_DISCARD_PUBLISH_PAYLOAD
6262
};
6363

64-
MqttClient::MqttClient(Client& client) :
65-
_client(&client),
64+
MqttClient::MqttClient(Client* client) :
65+
_client(client),
6666
_onMessage(NULL),
6767
_cleanSession(true),
6868
_keepAliveInterval(60 * 1000L),
@@ -82,6 +82,11 @@ MqttClient::MqttClient(Client& client) :
8282
setTimeout(0);
8383
}
8484

85+
MqttClient::MqttClient(Client& client) : MqttClient(&client)
86+
{
87+
88+
}
89+
8590
MqttClient::~MqttClient()
8691
{
8792
if (_willBuffer) {

Diff for: src/MqttClient.h

+5
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,14 @@
3434

3535
class MqttClient : public Client {
3636
public:
37+
MqttClient(Client* client);
3738
MqttClient(Client& client);
3839
virtual ~MqttClient();
3940

41+
42+
inline void setClient(Client& client) { _client = &client; }
43+
44+
4045
void onMessage(void(*)(int));
4146

4247
int parseMessage();

0 commit comments

Comments
 (0)