2014-11-05 11:38:36 +01:00
|
|
|
// Copyright Benoit Blanchon 2014
|
|
|
|
// MIT License
|
|
|
|
//
|
|
|
|
// Arduino JSON library
|
|
|
|
// https://github.com/bblanchon/ArduinoJson
|
|
|
|
|
|
|
|
#include "../../include/ArduinoJson/Internals/List.hpp"
|
|
|
|
|
2014-11-05 11:43:59 +01:00
|
|
|
#include "../../include/ArduinoJson/Internals/PlacementNew.hpp"
|
2014-11-05 11:38:36 +01:00
|
|
|
#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;
|
|
|
|
}
|
|
|
|
|
2014-11-05 11:53:08 +01:00
|
|
|
template <typename T>
|
|
|
|
void List<T>::addNode(node_type *nodeToAdd) {
|
|
|
|
if (_firstNode) {
|
|
|
|
node_type *lastNode = _firstNode;
|
|
|
|
while (lastNode->next) lastNode = lastNode->next;
|
|
|
|
lastNode->next = nodeToAdd;
|
|
|
|
} else {
|
|
|
|
_firstNode = nodeToAdd;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
void List<T>::removeNode(node_type *nodeToRemove) {
|
|
|
|
if (!nodeToRemove) return;
|
|
|
|
if (nodeToRemove == _firstNode) {
|
|
|
|
_firstNode = nodeToRemove->next;
|
|
|
|
} else {
|
|
|
|
for (node_type *node = _firstNode; node; node = node->next)
|
|
|
|
if (node->next == nodeToRemove) node->next = nodeToRemove->next;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-11-05 11:38:36 +01:00
|
|
|
template class List<JsonPair>;
|
2014-11-06 09:28:28 +01:00
|
|
|
template class List<JsonVariant>;
|