Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
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 */