/* * Arduino JSON library * Benoit Blanchon 2014 - MIT License */ #pragma once #include "JsonPrintable.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; } }; } }