/* * Arduino JSON library * Benoit Blanchon 2014 - MIT License */ #pragma once #include "JsonPrintable.h" #include "JsonValue.h" namespace ArduinoJson { namespace Generator { class JsonArrayBase : public JsonPrintable { public: JsonArrayBase(JsonValue* items, int capacity) : _items(items), _capacity(capacity), _count(0) { } void add(const Printable& value) { addIfPossible(value); } void add(bool value) { addIfPossible(value); } void add(int value) { addIfPossible(value); } void add(long value) { addIfPossible(value); } void add(double value) { addIfPossible(value); } void add(const char* value) { addIfPossible(value); } template void add(double value) { if (_count >= _capacity) return; JsonValue& v = _items[_count++]; v.set(value); } virtual size_t printTo(Print& p) const; using JsonPrintable::printTo; private: JsonValue* _items; int _capacity, _count; template void addIfPossible(T value) { if (_count < _capacity) _items[_count++] = value; } }; } }