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 Vincent Wochnik

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?

UserRevisionLine numberNew 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 */