PipeWire 1.7.0
Loading...
Searching...
No Matches
JSON builder

JSON builder functions. More...

Files

file  json-builder.h
 spa/utils/json-builder.h
 

Data Structures

struct  spa_json_builder
 

Macros

#define SPA_JSON_BUILDER_FLAG_CLOSE   (1<<0)
 
#define SPA_JSON_BUILDER_FLAG_INDENT   (1<<1)
 
#define SPA_JSON_BUILDER_FLAG_SPACE   (1<<2)
 
#define SPA_JSON_BUILDER_FLAG_PRETTY   (SPA_JSON_BUILDER_FLAG_INDENT|SPA_JSON_BUILDER_FLAG_SPACE)
 
#define SPA_JSON_BUILDER_FLAG_COLOR   (1<<3)
 
#define SPA_JSON_BUILDER_FLAG_SIMPLE   (1<<4)
 
#define SPA_JSON_BUILDER_FLAG_RAW   (1<<5)
 
#define SPA_JSON_BUILDER_COLOR_NORMAL   0
 
#define SPA_JSON_BUILDER_COLOR_KEY   1
 
#define SPA_JSON_BUILDER_COLOR_LITERAL   2
 
#define SPA_JSON_BUILDER_COLOR_NUMBER   3
 
#define SPA_JSON_BUILDER_COLOR_STRING   4
 
#define SPA_JSON_BUILDER_COLOR_CONTAINER   5
 

Functions

SPA_API_JSON_BUILDER int spa_json_builder_file (struct spa_json_builder *b, FILE *f, uint32_t flags)
 
SPA_API_JSON_BUILDER int spa_json_builder_memstream (struct spa_json_builder *b, char **mem, size_t *size, uint32_t flags)
 
SPA_API_JSON_BUILDER int spa_json_builder_membuf (struct spa_json_builder *b, char *mem, size_t size, uint32_t flags)
 
SPA_API_JSON_BUILDER void spa_json_builder_close (struct spa_json_builder *b)
 
SPA_API_JSON_BUILDER int spa_json_builder_encode_string (struct spa_json_builder *b, bool raw, const char *before, const char *val, int size, const char *after)
 
SPA_API_JSON_BUILDER void spa_json_builder_add_simple (struct spa_json_builder *b, const char *key, int key_len, char type, const char *val, int val_len)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_push (struct spa_json_builder *b, const char *key, const char *val)
 
SPA_API_JSON_BUILDER void spa_json_builder_pop (struct spa_json_builder *b, const char *val)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_null (struct spa_json_builder *b, const char *key)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_bool (struct spa_json_builder *b, const char *key, bool val)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_int (struct spa_json_builder *b, const char *key, int64_t val)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_uint (struct spa_json_builder *b, const char *key, uint64_t val)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_double (struct spa_json_builder *b, const char *key, double val)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_string (struct spa_json_builder *b, const char *key, const char *val)
 
 SPA_API_JSON_BUILDER (3, 0) void spa_json_builder_object_stringv(struct spa_json_builder *b
 
 if (vasprintf(&val, fmt, va) > 0)
 
 SPA_API_JSON_BUILDER (3, 4) void spa_json_builder_object_stringf(struct spa_json_builder *b
 
const char const char va_start (va, fmt)
 
 spa_json_builder_object_stringv (b, key, fmt, va)
 
 va_end (va)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_value_iter (struct spa_json_builder *b, struct spa_json *it, const char *key, int key_len, const char *val, int len)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_value_full (struct spa_json_builder *b, bool recurse, const char *key, int key_len, const char *val, int val_len)
 
SPA_API_JSON_BUILDER void spa_json_builder_object_value (struct spa_json_builder *b, bool recurse, const char *key, const char *val)
 
 SPA_API_JSON_BUILDER (4, 5) void spa_json_builder_object_valuef(struct spa_json_builder *b
 
SPA_API_JSON_BUILDER void spa_json_builder_array_push (struct spa_json_builder *b, const char *val)
 
SPA_API_JSON_BUILDER void spa_json_builder_array_null (struct spa_json_builder *b)
 
SPA_API_JSON_BUILDER void spa_json_builder_array_bool (struct spa_json_builder *b, bool val)
 
SPA_API_JSON_BUILDER void spa_json_builder_array_int (struct spa_json_builder *b, int64_t val)
 
SPA_API_JSON_BUILDER void spa_json_builder_array_uint (struct spa_json_builder *b, uint64_t val)
 
SPA_API_JSON_BUILDER void spa_json_builder_array_double (struct spa_json_builder *b, double val)
 
SPA_API_JSON_BUILDER void spa_json_builder_array_string (struct spa_json_builder *b, const char *val)
 
 SPA_API_JSON_BUILDER (2, 3) void spa_json_builder_array_stringf(struct spa_json_builder *b
 
 spa_json_builder_object_stringv (b, NULL, fmt, va)
 
SPA_API_JSON_BUILDER void spa_json_builder_array_value (struct spa_json_builder *b, bool recurse, const char *val)
 
SPA_API_JSON_BUILDER char * spa_json_builder_reformat (const char *json, uint32_t flags)
 

Variables

const char * key
 
const char const char * fmt
 
const char const char va_list va
 
bool recurse
 
bool const char const char char * val
 

Detailed Description

JSON builder functions.

Macro Definition Documentation

◆ SPA_JSON_BUILDER_FLAG_CLOSE

#define SPA_JSON_BUILDER_FLAG_CLOSE   (1<<0)

◆ SPA_JSON_BUILDER_FLAG_INDENT

#define SPA_JSON_BUILDER_FLAG_INDENT   (1<<1)

◆ SPA_JSON_BUILDER_FLAG_SPACE

#define SPA_JSON_BUILDER_FLAG_SPACE   (1<<2)

◆ SPA_JSON_BUILDER_FLAG_PRETTY

#define SPA_JSON_BUILDER_FLAG_PRETTY   (SPA_JSON_BUILDER_FLAG_INDENT|SPA_JSON_BUILDER_FLAG_SPACE)

◆ SPA_JSON_BUILDER_FLAG_COLOR

#define SPA_JSON_BUILDER_FLAG_COLOR   (1<<3)

◆ SPA_JSON_BUILDER_FLAG_SIMPLE

#define SPA_JSON_BUILDER_FLAG_SIMPLE   (1<<4)

◆ SPA_JSON_BUILDER_FLAG_RAW

#define SPA_JSON_BUILDER_FLAG_RAW   (1<<5)

◆ SPA_JSON_BUILDER_COLOR_NORMAL

#define SPA_JSON_BUILDER_COLOR_NORMAL   0

◆ SPA_JSON_BUILDER_COLOR_KEY

#define SPA_JSON_BUILDER_COLOR_KEY   1

◆ SPA_JSON_BUILDER_COLOR_LITERAL

#define SPA_JSON_BUILDER_COLOR_LITERAL   2

◆ SPA_JSON_BUILDER_COLOR_NUMBER

#define SPA_JSON_BUILDER_COLOR_NUMBER   3

◆ SPA_JSON_BUILDER_COLOR_STRING

#define SPA_JSON_BUILDER_COLOR_STRING   4

◆ SPA_JSON_BUILDER_COLOR_CONTAINER

#define SPA_JSON_BUILDER_COLOR_CONTAINER   5

Function Documentation

◆ spa_json_builder_file()

SPA_API_JSON_BUILDER int spa_json_builder_file ( struct spa_json_builder * b,
FILE * f,
uint32_t flags )

◆ spa_json_builder_memstream()

SPA_API_JSON_BUILDER int spa_json_builder_memstream ( struct spa_json_builder * b,
char ** mem,
size_t * size,
uint32_t flags )

◆ spa_json_builder_membuf()

SPA_API_JSON_BUILDER int spa_json_builder_membuf ( struct spa_json_builder * b,
char * mem,
size_t size,
uint32_t flags )

◆ spa_json_builder_close()

SPA_API_JSON_BUILDER void spa_json_builder_close ( struct spa_json_builder * b)

◆ spa_json_builder_encode_string()

SPA_API_JSON_BUILDER int spa_json_builder_encode_string ( struct spa_json_builder * b,
bool raw,
const char * before,
const char * val,
int size,
const char * after )

◆ spa_json_builder_add_simple()

SPA_API_JSON_BUILDER void spa_json_builder_add_simple ( struct spa_json_builder * b,
const char * key,
int key_len,
char type,
const char * val,
int val_len )

◆ spa_json_builder_object_push()

SPA_API_JSON_BUILDER void spa_json_builder_object_push ( struct spa_json_builder * b,
const char * key,
const char * val )

◆ spa_json_builder_pop()

SPA_API_JSON_BUILDER void spa_json_builder_pop ( struct spa_json_builder * b,
const char * val )

◆ spa_json_builder_object_null()

SPA_API_JSON_BUILDER void spa_json_builder_object_null ( struct spa_json_builder * b,
const char * key )

◆ spa_json_builder_object_bool()

SPA_API_JSON_BUILDER void spa_json_builder_object_bool ( struct spa_json_builder * b,
const char * key,
bool val )

◆ spa_json_builder_object_int()

SPA_API_JSON_BUILDER void spa_json_builder_object_int ( struct spa_json_builder * b,
const char * key,
int64_t val )

◆ spa_json_builder_object_uint()

SPA_API_JSON_BUILDER void spa_json_builder_object_uint ( struct spa_json_builder * b,
const char * key,
uint64_t val )

◆ spa_json_builder_object_double()

SPA_API_JSON_BUILDER void spa_json_builder_object_double ( struct spa_json_builder * b,
const char * key,
double val )

◆ spa_json_builder_object_string()

SPA_API_JSON_BUILDER void spa_json_builder_object_string ( struct spa_json_builder * b,
const char * key,
const char * val )

◆ SPA_API_JSON_BUILDER() [1/4]

SPA_API_JSON_BUILDER ( 3 ,
0  )

◆ if()

if ( vasprintf &,, va,
0  )

◆ SPA_API_JSON_BUILDER() [2/4]

SPA_API_JSON_BUILDER ( 3 ,
4  )

◆ va_start()

va_start ( va ,
fmt  )

◆ spa_json_builder_object_stringv() [1/2]

spa_json_builder_object_stringv ( b ,
key ,
fmt ,
va  )

◆ va_end()

va_end ( va )

◆ spa_json_builder_object_value_iter()

SPA_API_JSON_BUILDER void spa_json_builder_object_value_iter ( struct spa_json_builder * b,
struct spa_json * it,
const char * key,
int key_len,
const char * val,
int len )

◆ spa_json_builder_object_value_full()

SPA_API_JSON_BUILDER void spa_json_builder_object_value_full ( struct spa_json_builder * b,
bool recurse,
const char * key,
int key_len,
const char * val,
int val_len )

◆ spa_json_builder_object_value()

SPA_API_JSON_BUILDER void spa_json_builder_object_value ( struct spa_json_builder * b,
bool recurse,
const char * key,
const char * val )

◆ SPA_API_JSON_BUILDER() [3/4]

SPA_API_JSON_BUILDER ( 4 ,
5  )

◆ spa_json_builder_array_push()

SPA_API_JSON_BUILDER void spa_json_builder_array_push ( struct spa_json_builder * b,
const char * val )

◆ spa_json_builder_array_null()

SPA_API_JSON_BUILDER void spa_json_builder_array_null ( struct spa_json_builder * b)

◆ spa_json_builder_array_bool()

SPA_API_JSON_BUILDER void spa_json_builder_array_bool ( struct spa_json_builder * b,
bool val )

◆ spa_json_builder_array_int()

SPA_API_JSON_BUILDER void spa_json_builder_array_int ( struct spa_json_builder * b,
int64_t val )

◆ spa_json_builder_array_uint()

SPA_API_JSON_BUILDER void spa_json_builder_array_uint ( struct spa_json_builder * b,
uint64_t val )

◆ spa_json_builder_array_double()

SPA_API_JSON_BUILDER void spa_json_builder_array_double ( struct spa_json_builder * b,
double val )

◆ spa_json_builder_array_string()

SPA_API_JSON_BUILDER void spa_json_builder_array_string ( struct spa_json_builder * b,
const char * val )

◆ SPA_API_JSON_BUILDER() [4/4]

SPA_API_JSON_BUILDER ( 2 ,
3  )

◆ spa_json_builder_object_stringv() [2/2]

spa_json_builder_object_stringv ( b ,
NULL ,
fmt ,
va  )

◆ spa_json_builder_array_value()

SPA_API_JSON_BUILDER void spa_json_builder_array_value ( struct spa_json_builder * b,
bool recurse,
const char * val )

◆ spa_json_builder_reformat()

SPA_API_JSON_BUILDER char * spa_json_builder_reformat ( const char * json,
uint32_t flags )

Variable Documentation

◆ key

bool const char * key

◆ fmt

bool const char * fmt

◆ va

const char const char va_list va

◆ recurse

bool recurse

◆ val

bool const char char * val