fork of wolfSSL/MQTTS library with increased message buffer & increased number of subscribed topics
Fork of MQTTS by
Revision 11:db15da110a37, committed 2014-04-10
- Comitter:
- icraggs
- Date:
- Thu Apr 10 22:47:17 2014 +0000
- Parent:
- 10:68a4ada53367
- Child:
- 13:fd82db992024
- Child:
- 14:079ddee80e3d
- Commit message:
- Change thread function definitions to allow it to work
Changed in this revision
MQTTClient.cpp | Show annotated file Show diff for this revision Revisions of this file |
MQTTClient.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/MQTTClient.cpp Thu Apr 10 15:19:08 2014 +0000 +++ b/MQTTClient.cpp Thu Apr 10 22:47:17 2014 +0000 @@ -17,13 +17,6 @@ #include "MQTTClient.h" #include "MQTTPacket.h" - -void MQTT::threadfn(void* arg) -{ - ((Client<Network, Timer, Thread>*) arg)->run(NULL); -} - - MQTT::PacketId::PacketId() { next = 0;
--- a/MQTTClient.h Thu Apr 10 15:19:08 2014 +0000 +++ b/MQTTClient.h Thu Apr 10 22:47:17 2014 +0000 @@ -114,12 +114,19 @@ typedef FP<void, Message*> messageHandlerFP; messageHandlerFP messageHandlers[MAX_MESSAGE_HANDLERS]; // Linked list, or constructor parameter to limit array size? + static void threadfn(void* arg); + }; -void threadfn(void* arg); } +template<class Network, class Timer, class Thread> void MQTT::Client<Network, Timer, Thread>::threadfn(void* arg) +{ + ((Client<Network, Timer, Thread>*) arg)->run(NULL); +} + + template<class Network, class Timer, class Thread> MQTT::Client<Network, Timer, Thread>::Client(Network* network, Timer* timer, const int buffer_size, const int command_timeout) : packetid() { @@ -241,6 +248,10 @@ template<class Network, class Timer, class Thread> void MQTT::Client<Network, Timer, Thread>::run(void const *argument) { + while (true) + { + cycle(); + } } @@ -280,8 +291,7 @@ connectHandler.attach(resultHandler); // start background thread - - this->thread = new Thread((void (*)(void const *argument))&MQTT::threadfn, (void*)this); + this->thread = new Thread((void (*)(void const *argument))&MQTT::Client<Network, Timer, Thread>::threadfn, (void*)this); } return rc;