GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
Data Structures | Functions
gp_json_writer.h File Reference

A JSON writer. More...

#include <utils/gp_json_common.h>

Go to the source code of this file.

Data Structures

struct  gp_json_writer
 A JSON writer. More...
 

Functions

gp_json_writergp_json_writer_vec_new (void)
 Allocates a JSON writer with a vector as a storage.
 
void gp_json_writer_vec_free (gp_json_writer *self)
 Frees a JSON writer with a vector as a storage.
 
static char * gp_json_writer_vec (gp_json_writer *self)
 Returns a pointer to a vector storage.
 
static int gp_json_writer_err (gp_json_writer *self)
 Returns true if writer error happened.
 
int gp_json_obj_start (gp_json_writer *self, const char *id)
 Starts an JSON object.
 
int gp_json_obj_finish (gp_json_writer *self)
 Finishes a JSON object.
 
int gp_json_arr_start (gp_json_writer *self, const char *id)
 Starts an json array.
 
int gp_json_arr_finish (gp_json_writer *self)
 Finishes a JSON array.
 
int gp_json_null_add (gp_json_writer *self, const char *id)
 Adds a null value.
 
int gp_json_int_add (gp_json_writer *self, const char *id, long val)
 Adds an integer value.
 
int gp_json_bool_add (gp_json_writer *self, const char *id, int val)
 Adds a bool value.
 
int gp_json_float_add (gp_json_writer *self, const char *id, double val)
 Adds a float value.
 
int gp_json_str_add (gp_json_writer *self, const char *id, const char *str)
 Adds a string value.
 
int gp_json_finish (gp_json_writer *self)
 Finalizes json writer.
 

Detailed Description

A JSON writer.

All the function that add values return 0 on success and non-zero on a failure. Once an error has happened all subsequent attempts to add more values return with non-zero exit status immediatelly. This is designed so that we can add several values without checking each return value and only check if error has happened at the end of the sequence.

Failures may occur:

Definition in file gp_json_writer.h.

Function Documentation

◆ gp_json_arr_finish()

int gp_json_arr_finish ( gp_json_writer self)

Finishes a JSON array.

Parameters
selfA JSON writer.

◆ gp_json_arr_start()

int gp_json_arr_start ( gp_json_writer self,
const char *  id 
)

Starts an json array.

Parameters
selfA JSON writer.
idAn array name.

◆ gp_json_bool_add()

int gp_json_bool_add ( gp_json_writer self,
const char *  id,
int  val 
)

Adds a bool value.

Parameters
selfA JSON writer.
idAn boolean value name.

◆ gp_json_finish()

int gp_json_finish ( gp_json_writer self)

Finalizes json writer.

Finalizes the json writer, throws possible errors through the error printing function.

Parameters
selfA JSON writer.
Returns
Overall error value.

◆ gp_json_float_add()

int gp_json_float_add ( gp_json_writer self,
const char *  id,
double  val 
)

Adds a float value.

Parameters
selfA JSON writer.
idA floating point value name.

◆ gp_json_int_add()

int gp_json_int_add ( gp_json_writer self,
const char *  id,
long  val 
)

Adds an integer value.

Parameters
selfA JSON writer.
idAn integer value name.

◆ gp_json_null_add()

int gp_json_null_add ( gp_json_writer self,
const char *  id 
)

Adds a null value.

Parameters
selfA JSON writer.
idA null value name.

◆ gp_json_obj_finish()

int gp_json_obj_finish ( gp_json_writer self)

Finishes a JSON object.

Parameters
selfA JSON writer.

◆ gp_json_obj_start()

int gp_json_obj_start ( gp_json_writer self,
const char *  id 
)

Starts an JSON object.

Parameters
selfA JSON writer.
idAn object name.

◆ gp_json_str_add()

int gp_json_str_add ( gp_json_writer self,
const char *  id,
const char *  str 
)

Adds a string value.

Parameters
selfA JSON writer.
idA string value name.

◆ gp_json_writer_err()

static int gp_json_writer_err ( gp_json_writer self)
inlinestatic

Returns true if writer error happened.

Returns
True if error has happened.

Definition at line 81 of file gp_json_writer.h.

◆ gp_json_writer_vec()

static char * gp_json_writer_vec ( gp_json_writer self)
inlinestatic

Returns a pointer to a vector storage.

Returns
A pointer to the vector storage.

Definition at line 71 of file gp_json_writer.h.

◆ gp_json_writer_vec_free()

void gp_json_writer_vec_free ( gp_json_writer self)

Frees a JSON writer with a vector as a storage.

Parameters
selfA gp_json_writer with vector as a storage.

◆ gp_json_writer_vec_new()

gp_json_writer * gp_json_writer_vec_new ( void  )

Allocates a JSON writer with a vector as a storage.

Returns
A gp_json_writer pointer or NULL in a case of allocation failure.