Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
operation/ControlParser.h@98:e369fc75c000, 2015-05-07 (annotated)
- Committer:
- xinlei
- Date:
- Thu May 07 09:57:55 2015 +0000
- Revision:
- 98:e369fc75c000
- Parent:
- 95:5dfdc8568e9f
- Child:
- 100:dbcd3bc51758
prepare for v2.1rc3.
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 | 98:e369fc75c000 | 6 | #include "ConfigSync.h" |
xinlei | 93:61d44636f020 | 7 | |
xinlei | 93:61d44636f020 | 8 | enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE }; |
xinlei | 93:61d44636f020 | 9 | |
xinlei | 93:61d44636f020 | 10 | class ControlParser |
xinlei | 93:61d44636f020 | 11 | { |
xinlei | 93:61d44636f020 | 12 | public: |
xinlei | 95:5dfdc8568e9f | 13 | ControlParser(OperationPool& pool, |
xinlei | 98:e369fc75c000 | 14 | ConfigSync& configSync): opType(0), |
xinlei | 93:61d44636f020 | 15 | bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0), |
xinlei | 95:5dfdc8568e9f | 16 | opool(pool), _configSync(configSync) {} |
xinlei | 93:61d44636f020 | 17 | virtual ~ControlParser() {} |
xinlei | 93:61d44636f020 | 18 | BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; } |
xinlei | 93:61d44636f020 | 19 | int getBayeuxInterval() const { return bayeuxInterval; } |
xinlei | 93:61d44636f020 | 20 | int getBayeuxTimeout() const { return bayeuxTimeout; } |
xinlei | 98:e369fc75c000 | 21 | void parse(const char*); |
xinlei | 93:61d44636f020 | 22 | protected: |
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 | 93:61d44636f020 | 36 | void parseUnknownInt(Token& tok); |
xinlei | 93:61d44636f020 | 37 | private: |
xinlei | 98:e369fc75c000 | 38 | typedef void (ControlParser::*PtrParseFunc)(Token&); |
xinlei | 94:010b0f7a0a1a | 39 | unsigned short opType; |
xinlei | 93:61d44636f020 | 40 | Operation op; |
xinlei | 93:61d44636f020 | 41 | BayeuxAdvice bayeuxAdvice; |
xinlei | 93:61d44636f020 | 42 | int bayeuxTimeout; |
xinlei | 93:61d44636f020 | 43 | int bayeuxInterval; |
xinlei | 93:61d44636f020 | 44 | PtrParseFunc ptrPF; |
xinlei | 93:61d44636f020 | 45 | OperationPool& opool; |
xinlei | 98:e369fc75c000 | 46 | ConfigSync& _configSync; |
xinlei | 93:61d44636f020 | 47 | }; |
xinlei | 93:61d44636f020 | 48 | |
xinlei | 93:61d44636f020 | 49 | #endif /* CONTROLPARSER_H */ |