Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
operation/ControlParser.h@94:010b0f7a0a1a, 2015-04-22 (annotated)
- Committer:
- xinlei
- Date:
- Wed Apr 22 11:22:25 2015 +0000
- Revision:
- 94:010b0f7a0a1a
- Parent:
- 93:61d44636f020
- Child:
- 95:5dfdc8568e9f
v2.1rc2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xinlei | 93:61d44636f020 | 1 | #ifndef CONTROLPARSER_H |
xinlei | 93:61d44636f020 | 2 | #define CONTROLPARSER_H |
xinlei | 93:61d44636f020 | 3 | #include "Operation.h" |
xinlei | 93:61d44636f020 | 4 | #include "lex.h" |
xinlei | 93:61d44636f020 | 5 | #include "DeviceFeedback.h" |
xinlei | 93:61d44636f020 | 6 | #include "LCDDisplay.h" |
xinlei | 93:61d44636f020 | 7 | #include "ConfigurationSynchronization.h" |
xinlei | 93:61d44636f020 | 8 | |
xinlei | 93:61d44636f020 | 9 | enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE }; |
xinlei | 93:61d44636f020 | 10 | class ControlParser; |
xinlei | 93:61d44636f020 | 11 | typedef void (ControlParser::*PtrParseFunc)(Token&); |
xinlei | 93:61d44636f020 | 12 | |
xinlei | 93:61d44636f020 | 13 | class ControlParser |
xinlei | 93:61d44636f020 | 14 | { |
xinlei | 93:61d44636f020 | 15 | public: |
xinlei | 93:61d44636f020 | 16 | ControlParser(OperationPool& pool, LCDDisplay& lcdDisplay, |
xinlei | 93:61d44636f020 | 17 | ConfigurationSynchronization& configSync): opType(0), |
xinlei | 93:61d44636f020 | 18 | bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0), |
xinlei | 93:61d44636f020 | 19 | opool(pool), _lcdDisplay(lcdDisplay), _configSync(configSync) {} |
xinlei | 93:61d44636f020 | 20 | virtual ~ControlParser() {} |
xinlei | 93:61d44636f020 | 21 | BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; } |
xinlei | 93:61d44636f020 | 22 | int getBayeuxInterval() const { return bayeuxInterval; } |
xinlei | 93:61d44636f020 | 23 | int getBayeuxTimeout() const { return bayeuxTimeout; } |
xinlei | 93:61d44636f020 | 24 | void handleControlMessage(const char*); |
xinlei | 93:61d44636f020 | 25 | protected: |
xinlei | 93:61d44636f020 | 26 | void parseAdviceInterval(Token& tok); |
xinlei | 93:61d44636f020 | 27 | void parseAdvicePolicy(Token& tok); |
xinlei | 93:61d44636f020 | 28 | void parseAdviceTimeout(Token& tok); |
xinlei | 93:61d44636f020 | 29 | void parseBayeuxAdvice(Token& tok); |
xinlei | 93:61d44636f020 | 30 | void parseDeviceId(Token& tok); |
xinlei | 93:61d44636f020 | 31 | void parseError(Token& tok); |
xinlei | 93:61d44636f020 | 32 | void parseGetOp(Token& tok); |
xinlei | 93:61d44636f020 | 33 | void parseGetOpOrBayeuxAdvice(Token& tok); |
xinlei | 93:61d44636f020 | 34 | void parseOpData(Token& tok); |
xinlei | 93:61d44636f020 | 35 | void parseOpId(Token& tok); |
xinlei | 93:61d44636f020 | 36 | void parseOpState(Token& tok); |
xinlei | 93:61d44636f020 | 37 | void parseOpType(Token& tok); |
xinlei | 93:61d44636f020 | 38 | void parseRecover(Token& tok); |
xinlei | 93:61d44636f020 | 39 | void parseUnknownInt(Token& tok); |
xinlei | 93:61d44636f020 | 40 | private: |
xinlei | 94:010b0f7a0a1a | 41 | unsigned short opType; |
xinlei | 93:61d44636f020 | 42 | Operation op; |
xinlei | 93:61d44636f020 | 43 | BayeuxAdvice bayeuxAdvice; |
xinlei | 93:61d44636f020 | 44 | int bayeuxTimeout; |
xinlei | 93:61d44636f020 | 45 | int bayeuxInterval; |
xinlei | 93:61d44636f020 | 46 | PtrParseFunc ptrPF; |
xinlei | 93:61d44636f020 | 47 | OperationPool& opool; |
xinlei | 93:61d44636f020 | 48 | LCDDisplay& _lcdDisplay; |
xinlei | 93:61d44636f020 | 49 | ConfigurationSynchronization& _configSync; |
xinlei | 93:61d44636f020 | 50 | }; |
xinlei | 93:61d44636f020 | 51 | |
xinlei | 93:61d44636f020 | 52 | #endif /* CONTROLPARSER_H */ |