Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
Diff: operation/ControlParser.h
- Revision:
- 93:61d44636f020
- Child:
- 94:010b0f7a0a1a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/operation/ControlParser.h Mon Apr 20 15:04:23 2015 +0000 @@ -0,0 +1,52 @@ +#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: + uint8_t opType; + Operation op; + BayeuxAdvice bayeuxAdvice; + int bayeuxTimeout; + int bayeuxInterval; + PtrParseFunc ptrPF; + OperationPool& opool; + LCDDisplay& _lcdDisplay; + ConfigurationSynchronization& _configSync; +}; + +#endif /* CONTROLPARSER_H */