Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
operation/ControlParser.h@104:fd3571349e5d, 2015-05-08 (annotated)
- Committer:
- xinlei
- Date:
- Fri May 08 14:50:43 2015 +0000
- Revision:
- 104:fd3571349e5d
- Parent:
- 100:dbcd3bc51758
- Child:
- 106:fc5f25f0e0d5
quick fix for file renaming.
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 | 98:e369fc75c000 | 5 | #include "ConfigSync.h" |
xinlei | 93:61d44636f020 | 6 | |
xinlei | 93:61d44636f020 | 7 | enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE }; |
xinlei | 93:61d44636f020 | 8 | |
xinlei | 93:61d44636f020 | 9 | class ControlParser |
xinlei | 93:61d44636f020 | 10 | { |
xinlei | 93:61d44636f020 | 11 | public: |
xinlei | 95:5dfdc8568e9f | 12 | ControlParser(OperationPool& pool, |
xinlei | 98:e369fc75c000 | 13 | ConfigSync& configSync): opType(0), |
xinlei | 93:61d44636f020 | 14 | bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0), |
xinlei | 95:5dfdc8568e9f | 15 | opool(pool), _configSync(configSync) {} |
xinlei | 93:61d44636f020 | 16 | virtual ~ControlParser() {} |
xinlei | 93:61d44636f020 | 17 | BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; } |
xinlei | 93:61d44636f020 | 18 | int getBayeuxInterval() const { return bayeuxInterval; } |
xinlei | 93:61d44636f020 | 19 | int getBayeuxTimeout() const { return bayeuxTimeout; } |
xinlei | 98:e369fc75c000 | 20 | void parse(const char*); |
xinlei | 93:61d44636f020 | 21 | protected: |
xinlei | 100:dbcd3bc51758 | 22 | typedef void (ControlParser::*PtrParseFunc)(Token&); |
xinlei | 93:61d44636f020 | 23 | void parseAdviceInterval(Token& tok); |
xinlei | 93:61d44636f020 | 24 | void parseAdvicePolicy(Token& tok); |
xinlei | 93:61d44636f020 | 25 | void parseAdviceTimeout(Token& tok); |
xinlei | 93:61d44636f020 | 26 | void parseBayeuxAdvice(Token& tok); |
xinlei | 93:61d44636f020 | 27 | void parseDeviceId(Token& tok); |
xinlei | 93:61d44636f020 | 28 | void parseError(Token& tok); |
xinlei | 93:61d44636f020 | 29 | void parseGetOp(Token& tok); |
xinlei | 93:61d44636f020 | 30 | void parseGetOpOrBayeuxAdvice(Token& tok); |
xinlei | 93:61d44636f020 | 31 | void parseOpData(Token& tok); |
xinlei | 93:61d44636f020 | 32 | void parseOpId(Token& tok); |
xinlei | 93:61d44636f020 | 33 | void parseOpState(Token& tok); |
xinlei | 93:61d44636f020 | 34 | void parseOpType(Token& tok); |
xinlei | 93:61d44636f020 | 35 | void parseRecover(Token& tok); |
xinlei | 100:dbcd3bc51758 | 36 | void parseRowNumber(Token& tok); |
xinlei | 93:61d44636f020 | 37 | private: |
xinlei | 94:010b0f7a0a1a | 38 | unsigned short opType; |
xinlei | 93:61d44636f020 | 39 | Operation op; |
xinlei | 93:61d44636f020 | 40 | BayeuxAdvice bayeuxAdvice; |
xinlei | 93:61d44636f020 | 41 | int bayeuxTimeout; |
xinlei | 93:61d44636f020 | 42 | int bayeuxInterval; |
xinlei | 93:61d44636f020 | 43 | PtrParseFunc ptrPF; |
xinlei | 93:61d44636f020 | 44 | OperationPool& opool; |
xinlei | 98:e369fc75c000 | 45 | ConfigSync& _configSync; |
xinlei | 93:61d44636f020 | 46 | }; |
xinlei | 93:61d44636f020 | 47 | |
xinlei | 93:61d44636f020 | 48 | #endif /* CONTROLPARSER_H */ |