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
{
friend class JsonParserBase;
template <int N>
friend class JsonParser;
friend class JsonHashTable;
public:

View File

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