2014-09-27 09:56:53 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "JsonBuffer.h"
|
2014-09-27 11:42:27 +02:00
|
|
|
#include "JsonObject.h"
|
2014-09-27 09:56:53 +02:00
|
|
|
|
|
|
|
template<int CAPACITY>
|
2014-09-27 12:16:20 +02:00
|
|
|
class StaticJsonBuffer : public JsonBuffer
|
2014-09-27 09:56:53 +02:00
|
|
|
{
|
2014-09-27 12:16:20 +02:00
|
|
|
friend JsonObject;
|
|
|
|
|
2014-09-27 09:56:53 +02:00
|
|
|
public:
|
2014-09-27 09:58:34 +02:00
|
|
|
|
|
|
|
explicit StaticJsonBuffer()
|
|
|
|
: _size(0)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2014-09-27 09:56:53 +02:00
|
|
|
virtual ~StaticJsonBuffer() {}
|
|
|
|
|
|
|
|
int capacity()
|
|
|
|
{
|
|
|
|
return CAPACITY;
|
|
|
|
}
|
|
|
|
|
|
|
|
int size()
|
|
|
|
{
|
|
|
|
return _size;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected:
|
2014-09-27 14:43:19 +02:00
|
|
|
virtual JsonNode* allocateNode()
|
2014-09-27 12:16:20 +02:00
|
|
|
{
|
2014-09-27 14:43:19 +02:00
|
|
|
if (_size >= CAPACITY) return 0;
|
|
|
|
|
|
|
|
return &_buffer[_size++];
|
2014-09-27 12:16:20 +02:00
|
|
|
}
|
2014-09-27 09:56:53 +02:00
|
|
|
|
|
|
|
private:
|
2014-09-27 14:43:19 +02:00
|
|
|
JsonNode _buffer[CAPACITY];
|
2014-09-27 09:56:53 +02:00
|
|
|
int _size;
|
|
|
|
};
|