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