yajl_gen.h File Reference


Detailed Description

Interface to YAJL's JSON generation facilities.

#include <yajl/yajl_common.h>

Go to the source code of this file.

Data Structures

struct  yajl_gen_config

Typedefs

typedef struct yajl_gen_t * yajl_gen

Enumerations

enum  yajl_gen_status {
  yajl_gen_status_ok = 0, yajl_gen_keys_must_be_strings, yajl_max_depth_exceeded, yajl_gen_in_error_state,
  yajl_gen_generation_complete
}

Functions

yajl_gen YAJL_API yajl_gen_alloc (const yajl_gen_config *config, const yajl_alloc_funcs *allocFuncs)
void YAJL_API yajl_gen_free (yajl_gen handle)
yajl_gen_status YAJL_API yajl_gen_integer (yajl_gen hand, long int number)
yajl_gen_status YAJL_API yajl_gen_double (yajl_gen hand, double number)
yajl_gen_status YAJL_API yajl_gen_number (yajl_gen hand, const char *num, unsigned int len)
yajl_gen_status YAJL_API yajl_gen_string (yajl_gen hand, const unsigned char *str, unsigned int len)
yajl_gen_status YAJL_API yajl_gen_null (yajl_gen hand)
yajl_gen_status YAJL_API yajl_gen_bool (yajl_gen hand, int boolean)
yajl_gen_status YAJL_API yajl_gen_map_open (yajl_gen hand)
yajl_gen_status YAJL_API yajl_gen_map_close (yajl_gen hand)
yajl_gen_status YAJL_API yajl_gen_array_open (yajl_gen hand)
yajl_gen_status YAJL_API yajl_gen_array_close (yajl_gen hand)
yajl_gen_status YAJL_API yajl_gen_get_buf (yajl_gen hand, const unsigned char **buf, unsigned int *len)
void YAJL_API yajl_gen_clear (yajl_gen hand)


Typedef Documentation

typedef struct yajl_gen_t* yajl_gen

an opaque handle to a generator


Enumeration Type Documentation

generator status codes

Enumerator:
yajl_gen_status_ok  no error
yajl_gen_keys_must_be_strings  at a point where a map key is generated, a function other than yajl_gen_string was called
yajl_max_depth_exceeded  YAJL's maximum generation depth was exceeded. see YAJL_MAX_DEPTH
yajl_gen_in_error_state  A generator function (yajl_gen_XXX) was called while in an error state
yajl_gen_generation_complete  A complete JSON document has been generated


Function Documentation

yajl_gen YAJL_API yajl_gen_alloc ( const yajl_gen_config *  config,
const yajl_alloc_funcs *  allocFuncs 
)

allocate a generator handle

Parameters:
config a pointer to a structure containing parameters which configure the behavior of the json generator
allocFuncs an optional pointer to a structure which allows the client to overide the memory allocation used by yajl. May be NULL, in which case malloc/free/realloc will be used.
Returns:
an allocated handle on success, NULL on failure (bad params)

yajl_gen_status YAJL_API yajl_gen_array_close ( yajl_gen  hand  ) 

yajl_gen_status YAJL_API yajl_gen_array_open ( yajl_gen  hand  ) 

yajl_gen_status YAJL_API yajl_gen_bool ( yajl_gen  hand,
int  boolean 
)

void YAJL_API yajl_gen_clear ( yajl_gen  hand  ) 

clear yajl's output buffer, but maintain all internal generation state. This function will not "reset" the generator state, and is intended to enable incremental JSON outputing.

yajl_gen_status YAJL_API yajl_gen_double ( yajl_gen  hand,
double  number 
)

void YAJL_API yajl_gen_free ( yajl_gen  handle  ) 

free a generator handle

yajl_gen_status YAJL_API yajl_gen_get_buf ( yajl_gen  hand,
const unsigned char **  buf,
unsigned int *  len 
)

access the null terminated generator buffer. If incrementally outputing JSON, one should call yajl_gen_clear to clear the buffer. This allows stream generation.

yajl_gen_status YAJL_API yajl_gen_integer ( yajl_gen  hand,
long int  number 
)

yajl_gen_status YAJL_API yajl_gen_map_close ( yajl_gen  hand  ) 

yajl_gen_status YAJL_API yajl_gen_map_open ( yajl_gen  hand  ) 

yajl_gen_status YAJL_API yajl_gen_null ( yajl_gen  hand  ) 

yajl_gen_status YAJL_API yajl_gen_number ( yajl_gen  hand,
const char *  num,
unsigned int  len 
)

yajl_gen_status YAJL_API yajl_gen_string ( yajl_gen  hand,
const unsigned char *  str,
unsigned int  len 
)


Generated on Wed Apr 15 15:44:23 2009 for YAJL by  doxygen 1.5.5