// Copyright Benoit Blanchon 2014-2016 // MIT License // // Arduino JSON library // https://github.com/bblanchon/ArduinoJson // If you like this project, please add a star! #include "../../include/ArduinoJson/Internals/List.hpp" #include "../../include/ArduinoJson/JsonPair.hpp" #include "../../include/ArduinoJson/JsonVariant.hpp" using namespace ArduinoJson; using namespace ArduinoJson::Internals; template size_t List::size() const { size_t nodeCount = 0; for (node_type *node = _firstNode; node; node = node->next) nodeCount++; return nodeCount; } template typename List::node_type *List::addNewNode() { node_type *newNode = new (_buffer) node_type(); if (_firstNode) { node_type *lastNode = _firstNode; while (lastNode->next) lastNode = lastNode->next; lastNode->next = newNode; } else { _firstNode = newNode; } return newNode; } template void List::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; } } template class ArduinoJson::Internals::List; template class ArduinoJson::Internals::List;