The actual type of
the buffer object is set by a macro REST_PROCESS_BUFFER when
inlining RESTProcess_base.h A buffer type must conform to the
following generic interface
struct Buffer
{
struct Array;
template <class T> SimpleBuffer& operator<<(const T&);
template <class T> const SimpleBuffer& operator>>(T&) const;
RESTProcessType::Type type() const;
const Array& array() const
};
where
struct RESTProcessType
{
enum Type {boolean, int_number, float_number, string, array, object, null};
};
and Buffer::Array must conform to
struct Buffer::Array
{
const Buffer2& operator[](size_t) const;
size_t size() const;
};
where Buffer2 is also a buffer concept, but not necessarily the
same type as Buffer.