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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ControlParser.h Source File

ControlParser.h

00001 #ifndef CONTROLPARSER_H
00002 #define CONTROLPARSER_H
00003 #include "Operation.h"
00004 #include "lex.h"
00005 
00006 enum BayeuxAdvice{ BA_RETRY, BA_HANDSHAKE, BA_NONE };
00007 
00008 class ControlParser
00009 {
00010 public:
00011         ControlParser(OperationPool& pool): opType(0), bayeuxAdvice(BA_RETRY),
00012         bayeuxTimeout(-1), bayeuxInterval(0), opool(pool) {}
00013         virtual ~ControlParser() {}
00014         BayeuxAdvice getBayeuxAdvice() const { return bayeuxAdvice; }
00015         int getBayeuxInterval() const { return bayeuxInterval; }
00016         int getBayeuxTimeout() const { return bayeuxTimeout; }
00017         void parse(const char*);
00018 protected:
00019         typedef void (ControlParser::*PtrParseFunc)(Token&);
00020         void parseAdviceInterval(Token& tok);
00021         void parseAdvicePolicy(Token& tok);
00022         void parseAdviceTimeout(Token& tok);
00023         void parseBayeuxAdvice(Token& tok);
00024         void parseError(Token& tok);
00025         void parseGetOp(Token& tok);
00026         void parseGetOpOrBayeuxAdvice(Token& tok);
00027         void parseOpData(Token& tok);
00028         void parseOpId(Token& tok);
00029         void parseOpState(Token& tok);
00030         void parseOpType(Token& tok);
00031         void parseRecover(Token& tok);
00032         void parseRowNumber(Token& tok);
00033 private:
00034         unsigned short opType;
00035         Operation op;
00036         BayeuxAdvice bayeuxAdvice;
00037         int bayeuxTimeout;
00038         int bayeuxInterval;
00039         PtrParseFunc ptrPF;
00040         OperationPool& opool;
00041 };
00042 
00043 #endif /* CONTROLPARSER_H */