42#include <TargConfig.h>
65BA_API
int basprintf(
char* buf,
const char* fmt, ...);
78BA_API
int basnprintf(
char* buf,
int len,
const char* fmt, ...);
175 int vprintf(
const char* fmt, va_list argList);
198 int printf(
const char* fmt, ...);
216 int write(
const void* data,
int len);
225 int write(
const char* buf);
233 void setBuf(
char* buf,
int size);
295#define BufPrint_putcMacro(o, c) do { \
296 if((o)->cursor == (o)->bufSize) \
298 if((o)->flushCB(o, 1)) \
301 (o)->buf[(o)->cursor++] = c; \
309#define BufPrint_getUserData(o) (o)->userData
312#define BufPrint_erase(o) (o)->cursor=0
316#define BufPrint_getBuf(o) (o)->buf
321#define BufPrint_setBuf(o, b, size) (o)->buf=b,(o)->bufSize=size,(o)->cursor=0
324#define BufPrint_getBufSize(o) (o)->cursor
343#define BufPrint_destructor(o)
364#define BufPrint_write2(o, data) BufPrint_write(o, data, -1)
392 int retv; va_list varg;
BA_API int basnprintf(char *buf, int len, const char *fmt,...)
Format into a bounded caller-owned buffer.
BA_API int basprintf(char *buf, const char *fmt,...)
Format into caller-owned storage using BufPrint::printf conversions.
#define BufPrint_getUserData(o)
Definition: BufPrint.h:309
void erase()
resets the cursor, thus erasing the data in the buffer
Definition: BufPrint.h:404
#define BufPrint_write2(o, data)
Append a NUL-terminated string without copying its terminator.
Definition: BufPrint.h:364
BA_API void BufPrint_constructor2(BufPrint *o, char *buf, int size, void *userData, BufPrint_Flush flush)
Initialize a writer with borrowed storage.
U32 getBufSize()
Definition: BufPrint.h:402
void * getUserData()
Definition: BufPrint.h:381
char * getBuf()
Returns a pointer to the internal buffer.
Definition: BufPrint.h:398
BA_API int BufPrint_write(BufPrint *o, const void *data, int len)
Append bytes, flushing or expanding through the callback as needed.
#define BufPrint_getBuf(o)
Definition: BufPrint.h:316
BufPrint(void *userData=0, BufPrint_Flush flush=0)
BufPrint constructor.
Definition: BufPrint.h:384
BA_API int BufPrint_flush(BufPrint *o)
Deliver pending bytes to the callback with sizeRequired zero.
int jsonString(const char *str, size_t len)
Append a complete quoted JSON string.
Definition: BufPrint.h:421
int baputc(int c)
Append one byte (C function: BufPrint_putc).
Definition: BufPrint.h:406
int write(const void *data, int len)
Append bytes, flushing or expanding through the callback as needed.
Definition: BufPrint.h:408
int vprintf(const char *fmt, va_list argList)
Format arguments into this writer.
Definition: BufPrint.h:389
BA_API int BufPrint_jsonString(BufPrint *o, const char *str, size_t len)
Append a complete quoted JSON string.
BA_API int BufPrint_putc(BufPrint *o, int c)
Append one byte (C function: BufPrint_putc).
int flush()
Deliver pending bytes to the callback with sizeRequired zero.
Definition: BufPrint.h:412
#define BufPrint_getBufSize(o)
Definition: BufPrint.h:324
#define BufPrint_setBuf(o, b, size)
Replace borrowed storage and discard pending bytes.
Definition: BufPrint.h:321
BA_API int BufPrint_b64urlEncode(BufPrint *o, const void *source, S32 slen, BaBool padding)
Append Base64url using - and _, without a NUL terminator.
int b64urlEncode(const void *source, S32 slen, bool padding)
Append Base64url using - and _, without a NUL terminator.
Definition: BufPrint.h:418
int(* BufPrint_Flush)(struct BufPrint *o, int sizeRequired)
BufPrint flush callback function.
Definition: BufPrint.h:120
BA_API void BufPrint_constructor(BufPrint *o, void *userData, BufPrint_Flush flush)
Initialize a writer without storage; install a buffer before writing.
int printf(const char *fmt,...)
Format values using the compact BAS formatter.
Definition: BufPrint.h:391
#define BufPrint_erase(o)
Discard pending bytes without flushing or releasing storage.
Definition: BufPrint.h:312
struct BufPrint BufPrint
The BufPrint class, which implements a compact printf-style formatter, is a base class used by severa...
BA_API int BufPrint_vprintf(BufPrint *o, const char *fmt, va_list argList)
Format arguments into this writer.
BA_API int BufPrint_printf(BufPrint *o, const char *fmt,...)
Format values using the compact BAS formatter.
void setBuf(char *buf, int size)
Replace borrowed storage and reset the cursor, discarding pending data.
Definition: BufPrint.h:400
int b64Encode(const void *data, S32 slen)
Append standard Base64 with = padding, without a NUL terminator.
Definition: BufPrint.h:415
BA_API int BufPrint_b64Encode(BufPrint *o, const void *source, S32 slen)
Append padded standard Base64; see BufPrint::b64Encode.
int32_t S32
Signed 32-bit integer.
Definition: GenPrimT.h:85
uint32_t U32
Unsigned 32-bit integer.
Definition: GenPrimT.h:93
U8 BaBool
Boolean stored in an unsigned byte; FALSE is zero and TRUE is one.
Definition: GenPrimT.h:118
The BufPrint class, which implements a compact printf-style formatter, is a base class used by severa...
Definition: BufPrint.h:132