Official reference client implementation for Cumulocity SmartREST on u-blox C027.

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Vincent Wochnik

operation/PollThread.h

Committer:
xinlei
Date:
2015-04-27
Revision:
97:ea056f6be2e8
Parent:
96:5dfdc8568e9f
Child:
99:e369fc75c000

File content as of revision 97:ea056f6be2e8:

#ifndef POLLTHREAD_H
#define POLLTHREAD_H
#include "SmartRestSocket.h"
#include "Operation.h"
#include "SmartRestConf.h"
#include "ControlParser.h"

class PollThread
{
public:
        PollThread(OperationPool& pool,
                ConfigurationSynchronization& configSync):
                sock(), parser(pool, configSync),
                thread(PollThread::threadWrapper, this) {
                strncpy(uri, "/devicecontrol/notifications", sizeof(uri));
                sock.set_blocking(true);
        }
        virtual ~PollThread() { sock.close(); }
        bool handshake();
        bool subscribe();
        bool connect();
        void setChannel(long channel) { snprintf(chn, sizeof(chn), "/%ld", channel); }
        void threadFunc();
        static void threadWrapper(const void *p) { ((PollThread*)p)->threadFunc(); }
private:
        char chn[16];
        char uri[30];
        char bayeuxId[50];
        char buf[SMARTREST_SIZE];
        char buf2[SMARRESTBODY_SIZE];
        SmartRestSocket sock;
        ControlParser parser;
        Thread thread;
};

#endif /* POLLTHREAD_H */