Extracting a common base class for JsonArray and JsonObject...

This commit is contained in:
Benoit Blanchon
2014-11-05 11:38:36 +01:00
parent ebb591ef28
commit 7d73e63c78
6 changed files with 29 additions and 37 deletions

23
src/Internals/List.cpp Normal file
View File

@ -0,0 +1,23 @@
// Copyright Benoit Blanchon 2014
// MIT License
//
// Arduino JSON library
// https://github.com/bblanchon/ArduinoJson
#include "../../include/ArduinoJson/Internals/List.hpp"
#include "../../include/ArduinoJson/JsonPair.hpp"
#include "../../include/ArduinoJson/JsonVariant.hpp"
using namespace ArduinoJson;
using namespace ArduinoJson::Internals;
template <typename T>
int List<T>::size() const {
int nodeCount = 0;
for (node_type *node = _firstNode; node; node = node->next) nodeCount++;
return nodeCount;
}
template class List<JsonPair>;
template class List<JsonVariant>;

View File

@ -16,12 +16,6 @@ using namespace ArduinoJson::Internals;
JsonArray JsonArray::_invalid(NULL);
int JsonArray::size() const {
int nodeCount = 0;
for (node_type *node = _firstNode; node; node = node->next) nodeCount++;
return nodeCount;
}
JsonVariant &JsonArray::at(int index) const {
node_type *node = _firstNode;
while (node && index--) node = node->next;

View File

@ -19,12 +19,6 @@ using namespace ArduinoJson::Internals;
JsonObject JsonObject::_invalid(NULL);
int JsonObject::size() const {
int nodeCount = 0;
for (node_type *node = _firstNode; node; node = node->next) nodeCount++;
return nodeCount;
}
JsonVariant &JsonObject::at(const char *key) {
node_type *node = getNodeAt(key);
return node ? node->content.value : JsonVariant::invalid();