List.cpp 968 B

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright Benoit Blanchon 2014-2015
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. #include "../../include/ArduinoJson/Internals/List.hpp"
  7. #include "../../include/ArduinoJson/JsonPair.hpp"
  8. #include "../../include/ArduinoJson/JsonVariant.hpp"
  9. using namespace ArduinoJson;
  10. using namespace ArduinoJson::Internals;
  11. template <typename T>
  12. int List<T>::size() const {
  13. int nodeCount = 0;
  14. for (node_type *node = _firstNode; node; node = node->next) nodeCount++;
  15. return nodeCount;
  16. }
  17. template <typename T>
  18. void List<T>::removeNode(node_type *nodeToRemove) {
  19. if (!nodeToRemove) return;
  20. if (nodeToRemove == _firstNode) {
  21. _firstNode = nodeToRemove->next;
  22. } else {
  23. for (node_type *node = _firstNode; node; node = node->next)
  24. if (node->next == nodeToRemove) node->next = nodeToRemove->next;
  25. }
  26. }
  27. template class ArduinoJson::Internals::List<JsonPair>;
  28. template class ArduinoJson::Internals::List<JsonVariant>;