|
|
@@ -5,9 +5,45 @@
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
+template<int N>
|
|
|
class JsonArray
|
|
|
{
|
|
|
public:
|
|
|
- void writeTo(char* buffer, size_t bufferSize);
|
|
|
+ JsonArray()
|
|
|
+ {
|
|
|
+ itemCount = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ void add(const char* data)
|
|
|
+ {
|
|
|
+ if (itemCount <= N)
|
|
|
+ items[itemCount++] = data;
|
|
|
+ }
|
|
|
+
|
|
|
+ void writeTo(char* buffer, size_t bufferSize)
|
|
|
+ {
|
|
|
+ buffer[0] = 0;
|
|
|
+
|
|
|
+ append("[", buffer, bufferSize);
|
|
|
+
|
|
|
+ for (int i = 0; i < itemCount; i++)
|
|
|
+ {
|
|
|
+ append("'", buffer, bufferSize);
|
|
|
+ append(items[i], buffer, bufferSize);
|
|
|
+ append("'", buffer, bufferSize);
|
|
|
+ }
|
|
|
+
|
|
|
+ append("]", buffer, bufferSize);
|
|
|
+ }
|
|
|
+
|
|
|
+private:
|
|
|
+ const char* items[N];
|
|
|
+ int itemCount;
|
|
|
+
|
|
|
+ void append(const char* source, char* dest, size_t destSize)
|
|
|
+ {
|
|
|
+ int len = strlen(dest);
|
|
|
+ strncpy(dest + len, source, destSize - len);
|
|
|
+ }
|
|
|
};
|
|
|
|