Removed class JsonParserBase

This commit is contained in:
Benoit Blanchon
2014-01-11 22:55:00 +01:00
parent 0b485e95fa
commit 98e2c82cea
4 changed files with 16 additions and 46 deletions

View File

@ -12,7 +12,9 @@ class JsonHashTable;
class JsonArray : public JsonObjectBase class JsonArray : public JsonObjectBase
{ {
friend class JsonParserBase; template <int N>
friend class JsonParser;
friend class JsonHashTable; friend class JsonHashTable;
public: public:

View File

@ -12,8 +12,10 @@ class JsonArray;
class JsonHashTable : public JsonObjectBase class JsonHashTable : public JsonObjectBase
{ {
template <int N>
friend class JsonParser;
friend class JsonArray; friend class JsonArray;
friend class JsonParserBase;
public: public:

View File

@ -1,24 +0,0 @@
/*
* malloc-free JSON parser for Arduino
* Benoit Blanchon 2014 - MIT License
*/
#include "JsonParser.h"
JsonParserBase::JsonParserBase(jsmntok_t* tokens, int maxTokenCount)
{
this->maxTokenCount = maxTokenCount;
this->tokens = tokens;
}
jsmntok_t* JsonParserBase::parse(char* jsonString)
{
jsmn_parser parser;
jsmn_init(&parser);
if (JSMN_SUCCESS != jsmn_parse(&parser, jsonString, tokens, maxTokenCount))
return 0;
return tokens;
}

View File

@ -9,7 +9,8 @@
#include "JsonHashTable.h" #include "JsonHashTable.h"
#include "JsonArray.h" #include "JsonArray.h"
class JsonParserBase template <int N>
class JsonParser
{ {
public: public:
@ -23,29 +24,18 @@ public:
return JsonHashTable(json, parse(json)); return JsonHashTable(json, parse(json));
} }
protected:
JsonParserBase(jsmntok_t* tokens, int maxTokenCount);
private: private:
jsmntok_t* parse(char* json); jsmntok_t* parse(char* jsonString)
int maxTokenCount;
jsmntok_t* tokens;
};
template <int N>
class JsonParser : public JsonParserBase
{
public:
JsonParser()
: JsonParserBase(tokens, N)
{ {
} jsmn_parser parser;
jsmn_init(&parser);
private: if (JSMN_SUCCESS != jsmn_parse(&parser, jsonString, tokens, N))
return 0;
return tokens;
}
jsmntok_t tokens[N]; jsmntok_t tokens[N];
}; };