Go to the documentation of this file.
73 #include "mem/forward.h"
79 #define MEM_BUF_INIT_SIZE (2*1024)
80 #define MEM_BUF_MAX_SIZE (2*1000*1024*1024)
95 assert(szInit > 0 && szMax > 0);
171 assert(0 <= shiftSize && shiftSize <= cSize);
175 if (shiftSize < cSize)
176 memmove(
buf,
buf + shiftSize, cSize - shiftSize);
200 assert(0 <= tailSize && tailSize <= cSize);
220 memcpy(
space(), newContent,
sz);
269 sz = vsnprintf(
buf +
size, free_space, fmt, ap);
276 if (sz < 0 || sz >= free_space)
328 if (min_cap > 64 * 1024) {
331 while (new_cap < (
size_t) min_cap)
332 new_cap += 64 * 1024;
334 new_cap = (
size_t) min_cap;
362 mb->
appendf(
"memBufReport is not yet implemented @?@\n");
void appendf(const char *fmt,...) PRINTF_FORMAT_ARG2
Append operation with printf-style arguments.
void memBufReport(MemBuf *mb)
void consumeWhitespacePrefix()
removes all prefix whitespace, moving content left
FREE * memFreeBufFunc(size_t size)
virtual void append(const char *c, int sz)
mb_size_t contentSize() const
available data size
#define MEM_BUF_INIT_SIZE
char * space()
returns buffer after data; does not check space existence
#define CBDATA_CLASS_INIT(type)
virtual void vappendf(const char *fmt, va_list ap)
void appended(mb_size_t sz)
updates content size after external append
void * memReallocBuf(void *buf, size_t net_size, size_t *gross_size)
mb_size_t potentialSpaceSize() const
void truncate(mb_size_t sz)
mb_size_t spaceSize() const
void consume(mb_size_t sz)
removes sz bytes and "packs" by moving content left
void grow(mb_size_t min_cap)
void memFreeBuf(size_t size, void *)