Own fork of MbedSmartRestMain

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Cumulocity Official

operation/ControlParser.h

Committer:
xinlei
Date:
2015-04-22
Revision:
94:010b0f7a0a1a
Parent:
93:61d44636f020
Child:
95:5dfdc8568e9f

File content as of revision 94:010b0f7a0a1a:

#ifndef CONTROLPARSER_H
#define CONTROLPARSER_H
#include "Operation.h"
#include "lex.h"
#include "DeviceFeedback.h"
#include "LCDDisplay.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, LCDDisplay& lcdDisplay, 
                ConfigurationSynchronization& configSync): opType(0),
                bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0),
                opool(pool), _lcdDisplay(lcdDisplay), _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;
        LCDDisplay& _lcdDisplay;
        ConfigurationSynchronization& _configSync;
};

#endif /* CONTROLPARSER_H */