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/ControlParser.h

Committer:
xinlei
Date:
2015-04-27
Revision:
96:5dfdc8568e9f
Parent:
95:010b0f7a0a1a
Child:
99:e369fc75c000

File content as of revision 96:5dfdc8568e9f:

#ifndef CONTROLPARSER_H
#define CONTROLPARSER_H
#include "Operation.h"
#include "lex.h"
#include "DeviceFeedback.h"
#include "ConfigurationSynchronization.h"

enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE };
class ControlParser;
typedef void (ControlParser::*PtrParseFunc)(Token&);

class ControlParser
{
public:
        ControlParser(OperationPool& pool, 
                ConfigurationSynchronization& configSync): opType(0),
                bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0),
                opool(pool), _configSync(configSync) {}
        virtual ~ControlParser() {}
        BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; }
        int getBayeuxInterval() const { return bayeuxInterval; }
        int getBayeuxTimeout() const { return bayeuxTimeout; }
        void handleControlMessage(const char*);
protected:
        void parseAdviceInterval(Token& tok);
        void parseAdvicePolicy(Token& tok);
        void parseAdviceTimeout(Token& tok);
        void parseBayeuxAdvice(Token& tok);
        void parseDeviceId(Token& tok);
        void parseError(Token& tok);
        void parseGetOp(Token& tok);
        void parseGetOpOrBayeuxAdvice(Token& tok);
        void parseOpData(Token& tok);
        void parseOpId(Token& tok);
        void parseOpState(Token& tok);
        void parseOpType(Token& tok);
        void parseRecover(Token& tok);
        void parseUnknownInt(Token& tok);
private:
        unsigned short opType;
        Operation op;
        BayeuxAdvice bayeuxAdvice;
        int bayeuxTimeout;
        int bayeuxInterval;
        PtrParseFunc ptrPF;
        OperationPool& opool;
        ConfigurationSynchronization& _configSync;
};

#endif /* CONTROLPARSER_H */