Przeglądaj źródła

Removed class JsonParserBase

Benoit Blanchon 12 lat temu
rodzic
commit
98e2c82cea
4 zmienionych plików z 15 dodań i 45 usunięć
  1. 3 1
      JsonArray.h
  2. 3 1
      JsonHashTable.h
  3. 0 24
      JsonParser.cpp
  4. 9 19
      JsonParser.h

+ 3 - 1
JsonArray.h

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

+ 3 - 1
JsonHashTable.h

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

+ 0 - 24
JsonParser.cpp

@@ -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;
-}

+ 9 - 19
JsonParser.h

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