Diff for /libelwix/inc/elwix/ajson.h between versions 1.1.2.2 and 1.1.2.7

version 1.1.2.2, 2017/11/24 10:29:15 version 1.1.2.7, 2017/11/28 11:14:00
Line 53  typedef enum { Line 53  typedef enum {
         J_OBJECT = 1,          J_OBJECT = 1,
         J_ARRAY = 2,          J_ARRAY = 2,
         J_STRING = 3,          J_STRING = 3,
        J_NUMBER = 4,        J_VALUE = 4
        J_BOOL = 5, 
        J_NULL = 6 
 } jtype_t;  } jtype_t;
   
 /* JSON error numbers */  /* JSON error numbers */
Line 63  typedef enum { Line 61  typedef enum {
         J_ERR_OK = 0,          J_ERR_OK = 0,
         J_ERR_NOMEM = 1,          J_ERR_NOMEM = 1,
         J_ERR_INVAL = 2,          J_ERR_INVAL = 2,
        J_ERR_PART = 3        J_ERR_PART = 3,
         J_ERR_PARAM = 4
 } jerr_t;  } jerr_t;
   
/* JSON error strings */typedef struct _tagHandler {
typedef const char jerrstr[] = {        unsigned long   h_pos;
        "No error",        unsigned long   h_next;
        "Not enough tokens were provided",        long            h_parent;
        "Invalid character",        void            *h_alloc;
        "JSON string isn't full",        int             h_strict;
        NULL 
}; 
 
typedef struct _tagParser { 
        unsigned long   pos; 
        unsigned long   next; 
        long            parent; 
 } json_t;  } json_t;
   #define json_toksnum(x)         (x)->h_next
   
 typedef struct _tagToken {  typedef struct _tagToken {
           long            tok_idx;
         jtype_t         tok_type;          jtype_t         tok_type;
         long            tok_start;          long            tok_start;
         long            tok_end;          long            tok_end;
         long            tok_size;          long            tok_size;
         long            tok_parent;          long            tok_parent;
 } jtok_t;  } jtok_t;
   #define json_toktype(x)         (x)->tok_type
   #define json_toksize(x)         (x)->tok_size
   #define json_toklen(x)          ((x)->tok_end - (x)->tok_start)
   #define json_tokstr(j, x)       ((j) + (x)->tok_start)
   #define json_tokstrcpy(d, j, x) { strncpy((d), json_tokstr((j), (x)), json_toklen(x)); \
                                           (d)[json_toklen(x)] = 0; } 
   
   
 /*  /*
  * json_init() - Initialize JSON handler   * json_init() - Initialize JSON handler
  *   *
  * @json = JSON handler, if there is NULL then dynamically will be allocated   * @json = JSON handler, if there is NULL then dynamically will be allocated
 * return: =NULL error or !=NULL ready for use JSON handler. * @jstrict = JSON strict mode, when we select strict mode every unquoted value is error
  * return: =NULL error or !=NULL ready for use JSON handler and should be free with json_free()
  */   */
json_t *json_init(json_t * __restrict json);json_t *json_init(json_t * __restrict json, int jstrict);
   
 /*  /*
  * json_free() - Free JSON handler   * json_free() - Free JSON handler
Line 104  json_t *json_init(json_t * __restrict json); Line 105  json_t *json_init(json_t * __restrict json);
  * @json = JSON handler   * @json = JSON handler
  * return: none   * return: none
  */   */
void json_free(json_t **json);void json_free(json_t * __restrict json);
   
 /*  /*
  * json_parse() - Parse JSON string   * json_parse() - Parse JSON string
Line 118  void json_free(json_t **json); Line 119  void json_free(json_t **json);
  */   */
 unsigned int json_parse(json_t * __restrict json, const char *jstr, size_t jlen,   unsigned int json_parse(json_t * __restrict json, const char *jstr, size_t jlen, 
                 jtok_t * __restrict jtoks, unsigned int toksnum);                  jtok_t * __restrict jtoks, unsigned int toksnum);
   
   /*
    * json_token2val() - Return token to AIT variable
    *
    * @jstr = JSON string
    * @tok = Token for convert
    * @return =NULL error or !=NULL variable, after use should be ait_freeVar()
    */
   ait_val_t *json_token2val(const char *jstr, jtok_t * __restrict tok);
   /*
    * json_token2str() - Return token to string
    *
    * @jstr = JSON string
    * @tok = Token for convert
    * @return =NULL error or !=NULL allocated str, after use should be e_free()
    */
   char *json_token2str(const char *jstr, jtok_t * __restrict tok);
   /*
    * json_token2num() - Return token to numeric
    *
    * @jstr = JSON string
    * @tok = Token for convert
    * @return number
    */
   long json_token2num(const char *jstr, jtok_t * __restrict tok);
   /*
    * json_token2array() - Convert token to string array
    *
    * @jstr = JSON string
    * @tok = Token for convert
    * return: =NULL error or !=NULL allocated array with string variables, 
    *              after use should be ait_freeVars()
    */
   array_t *json_token2array(const char *jstr, jtok_t * __restrict tok);
   
   /*
    * json_findbykey() - Find data by key
    *
    * @jstr = JSON string
    * @key = Search key
    * @toks = Parsed tokens
    * @toksnum = Number of parsed tokens
    * return: =NULL error or !=NULL data token found 
    */
   jtok_t *json_findbykey(const char *jstr, const char *key, 
                   jtok_t * __restrict toks, int toksnum);
   
   
 #endif  #endif

Removed from v.1.1.2.2  
changed lines
  Added in v.1.1.2.7


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>