Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: MQTTClient.h
- Revision:
- 11:db15da110a37
- Parent:
- 9:01b8cc7d94cc
- Child:
- 13:fd82db992024
--- 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;