source: rtos_arduino/trunk/arduino_lib/libraries/ArduinoJson/src/Internals/List.cpp@ 209

Last change on this file since 209 was 209, checked in by ertl-honda, 8 years ago

BlueMix用のフィアルを追加

File size: 1.3 KB
Line 
1// Copyright Benoit Blanchon 2014-2016
2// MIT License
3//
4// Arduino JSON library
5// https://github.com/bblanchon/ArduinoJson
6// If you like this project, please add a star!
7
8#include "../../include/ArduinoJson/Internals/List.hpp"
9
10#include "../../include/ArduinoJson/JsonPair.hpp"
11#include "../../include/ArduinoJson/JsonVariant.hpp"
12
13using namespace ArduinoJson;
14using namespace ArduinoJson::Internals;
15
16template <typename T>
17size_t List<T>::size() const {
18 size_t nodeCount = 0;
19 for (node_type *node = _firstNode; node; node = node->next) nodeCount++;
20 return nodeCount;
21}
22
23template <typename T>
24typename List<T>::node_type *List<T>::addNewNode() {
25 node_type *newNode = new (_buffer) node_type();
26
27 if (_firstNode) {
28 node_type *lastNode = _firstNode;
29 while (lastNode->next) lastNode = lastNode->next;
30 lastNode->next = newNode;
31 } else {
32 _firstNode = newNode;
33 }
34
35 return newNode;
36}
37
38template <typename T>
39void List<T>::removeNode(node_type *nodeToRemove) {
40 if (!nodeToRemove) return;
41 if (nodeToRemove == _firstNode) {
42 _firstNode = nodeToRemove->next;
43 } else {
44 for (node_type *node = _firstNode; node; node = node->next)
45 if (node->next == nodeToRemove) node->next = nodeToRemove->next;
46 }
47}
48
49template class ArduinoJson::Internals::List<JsonPair>;
50template class ArduinoJson::Internals::List<JsonVariant>;
Note: See TracBrowser for help on using the repository browser.