Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of kpn_senml by
senml_base_parser.h
- Committer:
- kpniot
- Date:
- 2018-05-19
- Revision:
- 0:a9259748d982
File content as of revision 0:a9259748d982:
/* _ __ ____ _ _ * | |/ / | _ \ | \ | | * | ' / | |_) | | \| | * | . \ | __/ | |\ | * |_|\_\ |_| |_| \_| * * (c) 2018 KPN * License: MIT License. * Author: Jan Bogaerts * * base class for all parsers header */ #ifndef SENMLBASEPARSER #define SENMLBASEPARSER #include <senml_pack.h> #include <senml_record.h> /** * base class for json and cbor parsers. Provides functionality to connect to * and search in senml packs and recrods. */ class SenMLBaseParser { public: SenMLBaseParser(SenMLPack* root): root(root), curPack(root) {}; private: protected: SenMLPack* root; //the root document for which we are parsing. Used to search the up all the actuators. SenMLRecord* curRec; SenMLPack* curPack; //used while searching, to store the current pack to use. init to root pack by default. Make it protected, so child parsers can easily access it without too much fuzz String curRecName; //keeps a ref of the record name, for raising events for unknown records String curPackName; //name of hte current pack to send the actuator to. //looks up the pack object that has to contain the next field. This is in order //to support multiple packs (gateway functionality) void setCurrentPack(String& name); //check if base units match, if not, show error message void checkBaseUnit(String& name); //look up a record with the spedified name in the current pack void setCurrentRecord(String& name); }; #endif // SENMLBASEPARSER