15 #ifndef RAPIDJSON_MEMORYBUFFER_H_
16 #define RAPIDJSON_MEMORYBUFFER_H_
36 template <
typename Allocator = CrtAllocator>
47 Ch*
Push(
size_t count) {
return stack_.template Push<Ch>(count); }
48 void Pop(
size_t count) {
stack_.template Pop<Ch>(count); }
51 return stack_.template Bottom<Ch>();
65 std::memset(memoryBuffer.
stack_.Push<
char>(n), c, n *
sizeof(c));
70 #endif // RAPIDJSON_MEMORYBUFFER_H_
static const size_t kDefaultCapacity
Definition: memorybuffer.h:56
void ShrinkToFit()
Definition: memorybuffer.h:46
#define RAPIDJSON_NAMESPACE_END
provide custom rapidjson namespace (closing expression)
Definition: rapidjson.h:119
Represents an in-memory output byte stream.
Definition: memorybuffer.h:37
A type-unsafe stack for storing different types of data.
Definition: stack.h:30
size_t GetSize() const
Definition: memorybuffer.h:54
GenericMemoryBuffer(Allocator *allocator=0, size_t capacity=kDefaultCapacity)
Definition: memorybuffer.h:40
char Ch
Definition: memorybuffer.h:38
#define RAPIDJSON_NAMESPACE_BEGIN
provide custom rapidjson namespace (opening expression)
Definition: rapidjson.h:116
void Pop(size_t count)
Definition: memorybuffer.h:48
Ch * Push(size_t count)
Definition: memorybuffer.h:47
const Ch * GetBuffer() const
Definition: memorybuffer.h:50
void Put(Ch c)
Definition: memorybuffer.h:42
void Flush()
Definition: memorybuffer.h:43
common definitions and configuration
internal::Stack< Allocator > stack_
Definition: memorybuffer.h:57
void PutN(MemoryBuffer &memoryBuffer, char c, size_t n)
Implement specialized version of PutN() with memset() for better performance.
Definition: memorybuffer.h:64
void Clear()
Definition: memorybuffer.h:45
GenericMemoryBuffer MemoryBuffer
Definition: memorybuffer.h:60