| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /*
- * 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<const Printable&>(value);
- }
- void add(bool value)
- {
- addIfPossible<bool>(value);
- }
- void add(int value)
- {
- addIfPossible<long>(value);
- }
- void add(long value)
- {
- addIfPossible<long>(value);
- }
- void add(double value)
- {
- addIfPossible<double>(value);
- }
- void add(const char* value)
- {
- addIfPossible<const char*>(value);
- }
- template<int DIGITS>
- void add(double value)
- {
- if (count >= capacity) return;
- JsonValue& v = items[count++];
- v.set<DIGITS>(value);
- }
- virtual size_t printTo(Print& p) const;
- using JsonPrintable::printTo;
- private:
- JsonValue* items;
- int capacity, count;
- template<typename T>
- void addIfPossible(T value)
- {
- if (count < capacity)
- items[count++] = value;
- }
- };
- }
- }
|