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:
Thu May 07 09:57:55 2015 +0000
Revision:
99:e369fc75c000
Parent:
96:5dfdc8568e9f
Child:
101:dbcd3bc51758
prepare for v2.1rc3.

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 99:e369fc75c000 6 #include "ConfigSync.h"
xinlei 94:61d44636f020 7
xinlei 94:61d44636f020 8 enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE };
xinlei 94:61d44636f020 9
xinlei 94:61d44636f020 10 class ControlParser
xinlei 94:61d44636f020 11 {
xinlei 94:61d44636f020 12 public:
xinlei 96:5dfdc8568e9f 13 ControlParser(OperationPool& pool,
xinlei 99:e369fc75c000 14 ConfigSync& configSync): opType(0),
xinlei 94:61d44636f020 15 bayeuxAdvice(BA_RETRY), bayeuxTimeout(-1), bayeuxInterval(0),
xinlei 96:5dfdc8568e9f 16 opool(pool), _configSync(configSync) {}
xinlei 94:61d44636f020 17 virtual ~ControlParser() {}
xinlei 94:61d44636f020 18 BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; }
xinlei 94:61d44636f020 19 int getBayeuxInterval() const { return bayeuxInterval; }
xinlei 94:61d44636f020 20 int getBayeuxTimeout() const { return bayeuxTimeout; }
xinlei 99:e369fc75c000 21 void parse(const char*);
xinlei 94:61d44636f020 22 protected:
xinlei 94:61d44636f020 23 void parseAdviceInterval(Token& tok);
xinlei 94:61d44636f020 24 void parseAdvicePolicy(Token& tok);
xinlei 94:61d44636f020 25 void parseAdviceTimeout(Token& tok);
xinlei 94:61d44636f020 26 void parseBayeuxAdvice(Token& tok);
xinlei 94:61d44636f020 27 void parseDeviceId(Token& tok);
xinlei 94:61d44636f020 28 void parseError(Token& tok);
xinlei 94:61d44636f020 29 void parseGetOp(Token& tok);
xinlei 94:61d44636f020 30 void parseGetOpOrBayeuxAdvice(Token& tok);
xinlei 94:61d44636f020 31 void parseOpData(Token& tok);
xinlei 94:61d44636f020 32 void parseOpId(Token& tok);
xinlei 94:61d44636f020 33 void parseOpState(Token& tok);
xinlei 94:61d44636f020 34 void parseOpType(Token& tok);
xinlei 94:61d44636f020 35 void parseRecover(Token& tok);
xinlei 94:61d44636f020 36 void parseUnknownInt(Token& tok);
xinlei 94:61d44636f020 37 private:
xinlei 99:e369fc75c000 38 typedef void (ControlParser::*PtrParseFunc)(Token&);
xinlei 95:010b0f7a0a1a 39 unsigned short opType;
xinlei 94:61d44636f020 40 Operation op;
xinlei 94:61d44636f020 41 BayeuxAdvice bayeuxAdvice;
xinlei 94:61d44636f020 42 int bayeuxTimeout;
xinlei 94:61d44636f020 43 int bayeuxInterval;
xinlei 94:61d44636f020 44 PtrParseFunc ptrPF;
xinlei 94:61d44636f020 45 OperationPool& opool;
xinlei 99:e369fc75c000 46 ConfigSync& _configSync;
xinlei 94:61d44636f020 47 };
xinlei 94:61d44636f020 48
xinlei 94:61d44636f020 49 #endif /* CONTROLPARSER_H */