renamed hcl_json_t to hcl_jsoner_t

This commit is contained in:
hyung-hwan 2018-04-21 05:36:06 +00:00
parent f87fdba5cb
commit fa726cd82b
5 changed files with 230 additions and 151 deletions

View File

@ -118,6 +118,13 @@ hclc_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
hclc_LDFLAGS = $(LDFLAGS_LIB_COMMON) hclc_LDFLAGS = $(LDFLAGS_LIB_COMMON)
hclc_LDADD = $(LIBADD_LIB_COMMON) $(PTHREAD_LIBS) -lhcl -lhclex hclc_LDADD = $(LIBADD_LIB_COMMON) $(PTHREAD_LIBS) -lhcl -lhclex
hclc_DEPENDENCIES = libhclex.la hclc_DEPENDENCIES = libhclex.la
bin_PROGRAMS += hclj
hclj_SOURCES = main-j.c
hclj_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
hclj_LDFLAGS = $(LDFLAGS_LIB_COMMON)
hclj_LDADD = $(LIBADD_LIB_COMMON) $(PTHREAD_LIBS) -lhcl -lhclex
hclj_DEPENDENCIES = libhclex.la
endif endif

View File

@ -98,7 +98,7 @@ host_triplet = @host@
bin_PROGRAMS = hcl$(EXEEXT) $(am__EXEEXT_1) bin_PROGRAMS = hcl$(EXEEXT) $(am__EXEEXT_1)
@ENABLE_HCLEX_TRUE@am__append_5 = libhclex.la @ENABLE_HCLEX_TRUE@am__append_5 = libhclex.la
@ENABLE_HCLEX_TRUE@am__append_6 = hcl-c.h hcl-s.h hcl-tmr.h hcl-xutl.h hcl-json.h @ENABLE_HCLEX_TRUE@am__append_6 = hcl-c.h hcl-s.h hcl-tmr.h hcl-xutl.h hcl-json.h
@ENABLE_HCLEX_TRUE@am__append_7 = hcls hclc @ENABLE_HCLEX_TRUE@am__append_7 = hcls hclc hclj
subdir = lib subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \
@ -176,7 +176,8 @@ libhclex_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(libhclex_la_LDFLAGS) $(LDFLAGS) -o $@ $(libhclex_la_LDFLAGS) $(LDFLAGS) -o $@
@ENABLE_HCLEX_TRUE@am_libhclex_la_rpath = -rpath $(pkglibdir) @ENABLE_HCLEX_TRUE@am_libhclex_la_rpath = -rpath $(pkglibdir)
@ENABLE_HCLEX_TRUE@am__EXEEXT_1 = hcls$(EXEEXT) hclc$(EXEEXT) @ENABLE_HCLEX_TRUE@am__EXEEXT_1 = hcls$(EXEEXT) hclc$(EXEEXT) \
@ENABLE_HCLEX_TRUE@ hclj$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS) PROGRAMS = $(bin_PROGRAMS)
am_hcl_OBJECTS = hcl-main.$(OBJEXT) am_hcl_OBJECTS = hcl-main.$(OBJEXT)
hcl_OBJECTS = $(am_hcl_OBJECTS) hcl_OBJECTS = $(am_hcl_OBJECTS)
@ -189,6 +190,12 @@ hclc_OBJECTS = $(am_hclc_OBJECTS)
hclc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ hclc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(hclc_LDFLAGS) $(LDFLAGS) -o $@ $(hclc_LDFLAGS) $(LDFLAGS) -o $@
am__hclj_SOURCES_DIST = main-j.c
@ENABLE_HCLEX_TRUE@am_hclj_OBJECTS = hclj-main-j.$(OBJEXT)
hclj_OBJECTS = $(am_hclj_OBJECTS)
hclj_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(hclj_LDFLAGS) $(LDFLAGS) -o $@
am__hcls_SOURCES_DIST = main-s.c am__hcls_SOURCES_DIST = main-s.c
@ENABLE_HCLEX_TRUE@am_hcls_OBJECTS = hcls-main-s.$(OBJEXT) @ENABLE_HCLEX_TRUE@am_hcls_OBJECTS = hcls-main-s.$(OBJEXT)
hcls_OBJECTS = $(am_hcls_OBJECTS) hcls_OBJECTS = $(am_hcls_OBJECTS)
@ -230,10 +237,10 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 = am__v_CCLD_1 =
SOURCES = $(libhcl_la_SOURCES) $(libhclex_la_SOURCES) $(hcl_SOURCES) \ SOURCES = $(libhcl_la_SOURCES) $(libhclex_la_SOURCES) $(hcl_SOURCES) \
$(hclc_SOURCES) $(hcls_SOURCES) $(hclc_SOURCES) $(hclj_SOURCES) $(hcls_SOURCES)
DIST_SOURCES = $(libhcl_la_SOURCES) $(am__libhclex_la_SOURCES_DIST) \ DIST_SOURCES = $(libhcl_la_SOURCES) $(am__libhclex_la_SOURCES_DIST) \
$(hcl_SOURCES) $(am__hclc_SOURCES_DIST) \ $(hcl_SOURCES) $(am__hclc_SOURCES_DIST) \
$(am__hcls_SOURCES_DIST) $(am__hclj_SOURCES_DIST) $(am__hcls_SOURCES_DIST)
am__can_run_installinfo = \ am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \ case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \ n|no|NO) false;; \
@ -410,6 +417,7 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@
@ -498,6 +506,11 @@ hcl_DEPENDENCIES = libhcl.la
@ENABLE_HCLEX_TRUE@hclc_LDFLAGS = $(LDFLAGS_LIB_COMMON) @ENABLE_HCLEX_TRUE@hclc_LDFLAGS = $(LDFLAGS_LIB_COMMON)
@ENABLE_HCLEX_TRUE@hclc_LDADD = $(LIBADD_LIB_COMMON) $(PTHREAD_LIBS) -lhcl -lhclex @ENABLE_HCLEX_TRUE@hclc_LDADD = $(LIBADD_LIB_COMMON) $(PTHREAD_LIBS) -lhcl -lhclex
@ENABLE_HCLEX_TRUE@hclc_DEPENDENCIES = libhclex.la @ENABLE_HCLEX_TRUE@hclc_DEPENDENCIES = libhclex.la
@ENABLE_HCLEX_TRUE@hclj_SOURCES = main-j.c
@ENABLE_HCLEX_TRUE@hclj_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
@ENABLE_HCLEX_TRUE@hclj_LDFLAGS = $(LDFLAGS_LIB_COMMON)
@ENABLE_HCLEX_TRUE@hclj_LDADD = $(LIBADD_LIB_COMMON) $(PTHREAD_LIBS) -lhcl -lhclex
@ENABLE_HCLEX_TRUE@hclj_DEPENDENCIES = libhclex.la
all: hcl-cfg.h all: hcl-cfg.h
$(MAKE) $(AM_MAKEFLAGS) all-am $(MAKE) $(AM_MAKEFLAGS) all-am
@ -646,6 +659,10 @@ hclc$(EXEEXT): $(hclc_OBJECTS) $(hclc_DEPENDENCIES) $(EXTRA_hclc_DEPENDENCIES)
@rm -f hclc$(EXEEXT) @rm -f hclc$(EXEEXT)
$(AM_V_CCLD)$(hclc_LINK) $(hclc_OBJECTS) $(hclc_LDADD) $(LIBS) $(AM_V_CCLD)$(hclc_LINK) $(hclc_OBJECTS) $(hclc_LDADD) $(LIBS)
hclj$(EXEEXT): $(hclj_OBJECTS) $(hclj_DEPENDENCIES) $(EXTRA_hclj_DEPENDENCIES)
@rm -f hclj$(EXEEXT)
$(AM_V_CCLD)$(hclj_LINK) $(hclj_OBJECTS) $(hclj_LDADD) $(LIBS)
hcls$(EXEEXT): $(hcls_OBJECTS) $(hcls_DEPENDENCIES) $(EXTRA_hcls_DEPENDENCIES) hcls$(EXEEXT): $(hcls_OBJECTS) $(hcls_DEPENDENCIES) $(EXTRA_hcls_DEPENDENCIES)
@rm -f hcls$(EXEEXT) @rm -f hcls$(EXEEXT)
$(AM_V_CCLD)$(hcls_LINK) $(hcls_OBJECTS) $(hcls_LDADD) $(LIBS) $(AM_V_CCLD)$(hcls_LINK) $(hcls_OBJECTS) $(hcls_LDADD) $(LIBS)
@ -658,6 +675,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hcl-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hcl-main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hclc-main-c.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hclc-main-c.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hclj-main-j.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hcls-main-s.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hcls-main-s.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhcl_la-bigint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhcl_la-bigint.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhcl_la-comp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhcl_la-comp.Plo@am__quote@
@ -920,6 +938,20 @@ hclc-main-c.obj: main-c.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hclc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hclc-main-c.obj `if test -f 'main-c.c'; then $(CYGPATH_W) 'main-c.c'; else $(CYGPATH_W) '$(srcdir)/main-c.c'; fi` @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hclc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hclc-main-c.obj `if test -f 'main-c.c'; then $(CYGPATH_W) 'main-c.c'; else $(CYGPATH_W) '$(srcdir)/main-c.c'; fi`
hclj-main-j.o: main-j.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hclj_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hclj-main-j.o -MD -MP -MF $(DEPDIR)/hclj-main-j.Tpo -c -o hclj-main-j.o `test -f 'main-j.c' || echo '$(srcdir)/'`main-j.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hclj-main-j.Tpo $(DEPDIR)/hclj-main-j.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main-j.c' object='hclj-main-j.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hclj_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hclj-main-j.o `test -f 'main-j.c' || echo '$(srcdir)/'`main-j.c
hclj-main-j.obj: main-j.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hclj_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hclj-main-j.obj -MD -MP -MF $(DEPDIR)/hclj-main-j.Tpo -c -o hclj-main-j.obj `if test -f 'main-j.c'; then $(CYGPATH_W) 'main-j.c'; else $(CYGPATH_W) '$(srcdir)/main-j.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hclj-main-j.Tpo $(DEPDIR)/hclj-main-j.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main-j.c' object='hclj-main-j.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hclj_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hclj-main-j.obj `if test -f 'main-j.c'; then $(CYGPATH_W) 'main-j.c'; else $(CYGPATH_W) '$(srcdir)/main-j.c'; fi`
hcls-main-s.o: main-s.c hcls-main-s.o: main-s.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hcls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hcls-main-s.o -MD -MP -MF $(DEPDIR)/hcls-main-s.Tpo -c -o hcls-main-s.o `test -f 'main-s.c' || echo '$(srcdir)/'`main-s.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hcls_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hcls-main-s.o -MD -MP -MF $(DEPDIR)/hcls-main-s.Tpo -c -o hcls-main-s.o `test -f 'main-s.c' || echo '$(srcdir)/'`main-s.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hcls-main-s.Tpo $(DEPDIR)/hcls-main-s.Po @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/hcls-main-s.Tpo $(DEPDIR)/hcls-main-s.Po

View File

@ -29,25 +29,25 @@
#include <hcl.h> #include <hcl.h>
typedef struct hcl_json_t hcl_json_t; typedef struct hcl_jsoner_t hcl_jsoner_t;
enum hcl_json_option_t enum hcl_jsoner_option_t
{ {
HCL_JSON_TRAIT, HCL_JSON_TRAIT,
HCL_JSON_LOG_MASK, HCL_JSON_LOG_MASK,
}; };
typedef enum hcl_json_option_t hcl_json_option_t; typedef enum hcl_jsoner_option_t hcl_jsoner_option_t;
enum hcl_json_trait_t enum hcl_jsoner_trait_t
{ {
/* no trait defined at this moment. XXXX is just a placeholder */ /* no trait defined at this moment. XXXX is just a placeholder */
HCL_JSON_XXXX = (1 << 0) HCL_JSON_XXXX = (1 << 0)
}; };
typedef enum hcl_json_trait_t hcl_json_trait_t; typedef enum hcl_jsoner_trait_t hcl_jsoner_trait_t;
/* ========================================================================= */ /* ========================================================================= */
enum hcl_json_state_t enum hcl_jsoner_state_t
{ {
HCL_JSON_STATE_START, HCL_JSON_STATE_START,
HCL_JSON_STATE_ARRAY_STARTED, HCL_JSON_STATE_ARRAY_STARTED,
@ -57,109 +57,109 @@ enum hcl_json_state_t
HCL_JSON_STATE_IN_NUMERIC_VALUE, HCL_JSON_STATE_IN_NUMERIC_VALUE,
HCL_JSON_STATE_IN_QUOTED_VALUE HCL_JSON_STATE_IN_QUOTED_VALUE
}; };
typedef enum hcl_json_state_t hcl_json_state_t; typedef enum hcl_jsoner_state_t hcl_jsoner_state_t;
/* ========================================================================= */ /* ========================================================================= */
#if 0 #if 0
struct hcl_json_root_t struct hcl_jsoner_root_t
{ {
int type; int type;
hcl_json_value_t* value; hcl_jsoner_value_t* value;
}; };
struct hcl_json_list_t struct hcl_jsoner_list_t
{ {
int type; /* array or table */ int type; /* array or table */
hcl_json_pair_t* cell; hcl_jsoner_pair_t* cell;
}; };
struct hcl_json_value_t struct hcl_jsoner_value_t
{ {
int type; /* atom or pair */ int type; /* atom or pair */
union union
{ {
hcl_json_value_t* value; hcl_jsoner_value_t* value;
hcl_json_pair_t* cell; hcl_jsoner_pair_t* cell;
} u; } u;
}; };
struct hcl_json_atom_t struct hcl_jsoner_atom_t
{ {
int type; /* string, word, number */ int type; /* string, word, number */
}; };
struct hcl_json_pair_t struct hcl_jsoner_pair_t
{ {
hcl_json_atom_t* key; hcl_jsoner_atom_t* key;
hcl_json_value_t* value; hcl_jsoner_value_t* value;
hcl_json_pair_t* next; hcl_jsoner_pair_t* next;
}; };
#endif #endif
/* ========================================================================= */ /* ========================================================================= */
enum hcl_json_reply_type_t enum hcl_jsoner_reply_type_t
{ {
HCL_JSON_REPLY_TYPE_OK = 0, HCL_JSON_REPLY_TYPE_OK = 0,
HCL_JSON_REPLY_TYPE_ERROR = 1 HCL_JSON_REPLY_TYPE_ERROR = 1
}; };
typedef enum hcl_json_reply_type_t hcl_json_reply_type_t; typedef enum hcl_jsoner_reply_type_t hcl_jsoner_reply_type_t;
typedef void (*hcl_json_log_write_t) ( typedef void (*hcl_jsoner_log_write_t) (
hcl_json_t* json, hcl_jsoner_t* json,
unsigned int mask, unsigned int mask,
const hcl_ooch_t* msg, const hcl_ooch_t* msg,
hcl_oow_t len hcl_oow_t len
); );
typedef int (*hcl_json_start_reply_t) ( typedef int (*hcl_jsoner_start_reply_t) (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_json_reply_type_t type, hcl_jsoner_reply_type_t type,
const hcl_ooch_t* dptr, const hcl_ooch_t* dptr,
hcl_oow_t dlen hcl_oow_t dlen
); );
typedef int (*hcl_json_feed_attr_t) ( typedef int (*hcl_jsoner_feed_attr_t) (
hcl_json_t* json, hcl_jsoner_t* json,
const hcl_oocs_t* key, const hcl_oocs_t* key,
const hcl_oocs_t* val const hcl_oocs_t* val
); );
typedef int (*hcl_json_start_data_t) ( typedef int (*hcl_jsoner_start_data_t) (
hcl_json_t* json hcl_jsoner_t* json
); );
typedef int (*hcl_json_feed_data_t) ( typedef int (*hcl_jsoner_feed_data_t) (
hcl_json_t* json, hcl_jsoner_t* json,
const void* ptr, const void* ptr,
hcl_oow_t len hcl_oow_t len
); );
typedef int (*hcl_json_end_data_t) ( typedef int (*hcl_jsoner_end_data_t) (
hcl_json_t* json hcl_jsoner_t* json
); );
enum hcl_json_end_reply_state_t enum hcl_jsoner_end_reply_state_t
{ {
HCL_JSON_END_REPLY_STATE_OK, HCL_JSON_END_REPLY_STATE_OK,
HCL_JSON_END_REPLY_STATE_REVOKED HCL_JSON_END_REPLY_STATE_REVOKED
}; };
typedef enum hcl_json_end_reply_state_t hcl_json_end_reply_state_t; typedef enum hcl_jsoner_end_reply_state_t hcl_jsoner_end_reply_state_t;
typedef int (*hcl_json_end_reply_t) ( typedef int (*hcl_jsoner_end_reply_t) (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_json_end_reply_state_t state hcl_jsoner_end_reply_state_t state
); );
struct hcl_json_prim_t struct hcl_jsoner_prim_t
{ {
hcl_json_log_write_t log_write; hcl_jsoner_log_write_t log_write;
hcl_json_start_reply_t start_reply; /* mandatory */ hcl_jsoner_start_reply_t start_reply; /* mandatory */
hcl_json_feed_attr_t feed_attr; /* optional */ hcl_jsoner_feed_attr_t feed_attr; /* optional */
hcl_json_feed_data_t feed_data; /* optional */ hcl_jsoner_feed_data_t feed_data; /* optional */
hcl_json_end_reply_t end_reply; /* mandatory */ hcl_jsoner_end_reply_t end_reply; /* mandatory */
}; };
typedef struct hcl_json_prim_t hcl_json_prim_t; typedef struct hcl_jsoner_prim_t hcl_jsoner_prim_t;
/* ========================================================================= */ /* ========================================================================= */
@ -167,127 +167,127 @@ typedef struct hcl_json_prim_t hcl_json_prim_t;
extern "C" { extern "C" {
#endif #endif
HCL_EXPORT hcl_json_t* hcl_json_open ( HCL_EXPORT hcl_jsoner_t* hcl_jsoner_open (
hcl_mmgr_t* mmgr, hcl_mmgr_t* mmgr,
hcl_oow_t xtnsize, hcl_oow_t xtnsize,
hcl_json_prim_t* prim, hcl_jsoner_prim_t* prim,
hcl_errnum_t* errnum hcl_errnum_t* errnum
); );
HCL_EXPORT void hcl_json_close ( HCL_EXPORT void hcl_jsoner_close (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT void hcl_json_reset ( HCL_EXPORT void hcl_jsoner_reset (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT int hcl_json_feed ( HCL_EXPORT int hcl_jsoner_feed (
hcl_json_t* json, hcl_jsoner_t* json,
const void* ptr, const void* ptr,
hcl_oow_t len, hcl_oow_t len,
hcl_oow_t* xlen hcl_oow_t* xlen
); );
HCL_EXPORT hcl_json_state_t hcl_json_getstate ( HCL_EXPORT hcl_jsoner_state_t hcl_jsoner_getstate (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT int hcl_json_setoption ( HCL_EXPORT int hcl_jsoner_setoption (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_json_option_t id, hcl_jsoner_option_t id,
const void* value const void* value
); );
HCL_EXPORT int hcl_json_getoption ( HCL_EXPORT int hcl_jsoner_getoption (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_json_option_t id, hcl_jsoner_option_t id,
void* value void* value
); );
HCL_EXPORT void* hcl_json_getxtn ( HCL_EXPORT void* hcl_jsoner_getxtn (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT hcl_mmgr_t* hcl_json_getmmgr ( HCL_EXPORT hcl_mmgr_t* hcl_jsoner_getmmgr (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT hcl_cmgr_t* hcl_json_getcmgr ( HCL_EXPORT hcl_cmgr_t* hcl_jsoner_getcmgr (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT void hcl_json_setcmgr ( HCL_EXPORT void hcl_jsoner_setcmgr (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_cmgr_t* cmgr hcl_cmgr_t* cmgr
); );
HCL_EXPORT hcl_errnum_t hcl_json_geterrnum ( HCL_EXPORT hcl_errnum_t hcl_jsoner_geterrnum (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT const hcl_ooch_t* hcl_json_geterrstr ( HCL_EXPORT const hcl_ooch_t* hcl_jsoner_geterrstr (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT const hcl_ooch_t* hcl_json_geterrmsg ( HCL_EXPORT const hcl_ooch_t* hcl_jsoner_geterrmsg (
hcl_json_t* json hcl_jsoner_t* json
); );
HCL_EXPORT void hcl_json_seterrnum ( HCL_EXPORT void hcl_jsoner_seterrnum (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_errnum_t errnum hcl_errnum_t errnum
); );
HCL_EXPORT void hcl_json_seterrbfmt ( HCL_EXPORT void hcl_jsoner_seterrbfmt (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_errnum_t errnum, hcl_errnum_t errnum,
const hcl_bch_t* fmt, const hcl_bch_t* fmt,
... ...
); );
HCL_EXPORT void hcl_json_seterrufmt ( HCL_EXPORT void hcl_jsoner_seterrufmt (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_errnum_t errnum, hcl_errnum_t errnum,
const hcl_uch_t* fmt, const hcl_uch_t* fmt,
... ...
); );
HCL_EXPORT void hcl_json_logbfmt ( HCL_EXPORT void hcl_jsoner_logbfmt (
hcl_json_t* json, hcl_jsoner_t* json,
unsigned int mask, unsigned int mask,
const hcl_bch_t* fmt, const hcl_bch_t* fmt,
... ...
); );
HCL_EXPORT void hcl_json_logufmt ( HCL_EXPORT void hcl_jsoner_logufmt (
hcl_json_t* json, hcl_jsoner_t* json,
unsigned int mask, unsigned int mask,
const hcl_uch_t* fmt, const hcl_uch_t* fmt,
... ...
); );
HCL_EXPORT void* hcl_json_allocmem ( HCL_EXPORT void* hcl_jsoner_allocmem (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_oow_t size hcl_oow_t size
); );
HCL_EXPORT void* hcl_json_callocmem ( HCL_EXPORT void* hcl_jsoner_callocmem (
hcl_json_t* json, hcl_jsoner_t* json,
hcl_oow_t size hcl_oow_t size
); );
HCL_EXPORT void* hcl_json_reallocmem ( HCL_EXPORT void* hcl_jsoner_reallocmem (
hcl_json_t* json, hcl_jsoner_t* json,
void* ptr, void* ptr,
hcl_oow_t size hcl_oow_t size
); );
HCL_EXPORT void hcl_json_freemem ( HCL_EXPORT void hcl_jsoner_freemem (
hcl_json_t* json, hcl_jsoner_t* json,
void* ptr void* ptr
); );

View File

@ -34,22 +34,22 @@
struct dummy_hcl_xtn_t struct dummy_hcl_xtn_t
{ {
hcl_json_t* json; hcl_jsoner_t* json;
}; };
typedef struct dummy_hcl_xtn_t dummy_hcl_xtn_t; typedef struct dummy_hcl_xtn_t dummy_hcl_xtn_t;
enum hcl_json_reply_attr_type_t enum hcl_jsoner_reply_attr_type_t
{ {
HCL_JSON_REPLY_ATTR_TYPE_UNKNOWN, HCL_JSON_REPLY_ATTR_TYPE_UNKNOWN,
HCL_JSON_REPLY_ATTR_TYPE_DATA HCL_JSON_REPLY_ATTR_TYPE_DATA
}; };
typedef enum hcl_json_reply_attr_type_t hcl_json_reply_attr_type_t; typedef enum hcl_jsoner_reply_attr_type_t hcl_jsoner_reply_attr_type_t;
struct hcl_json_t struct hcl_jsoner_t
{ {
hcl_mmgr_t* mmgr; hcl_mmgr_t* mmgr;
hcl_cmgr_t* cmgr; hcl_cmgr_t* cmgr;
hcl_json_prim_t prim; hcl_jsoner_prim_t prim;
hcl_t* dummy_hcl; hcl_t* dummy_hcl;
hcl_errnum_t errnum; hcl_errnum_t errnum;
@ -72,7 +72,7 @@ struct hcl_json_t
hcl_oow_t capa; hcl_oow_t capa;
} req; } req;
hcl_json_state_t state; hcl_jsoner_state_t state;
struct struct
{ {
struct struct
@ -82,8 +82,8 @@ struct hcl_json_t
hcl_oow_t capa; hcl_oow_t capa;
} tok; } tok;
hcl_json_reply_type_t type; hcl_jsoner_reply_type_t type;
hcl_json_reply_attr_type_t last_attr_type; hcl_jsoner_reply_attr_type_t last_attr_type;
struct struct
{ {
hcl_ooch_t* ptr; hcl_ooch_t* ptr;
@ -138,7 +138,7 @@ struct hcl_json_t
static void log_write_for_dummy (hcl_t* hcl, unsigned int mask, const hcl_ooch_t* msg, hcl_oow_t len) static void log_write_for_dummy (hcl_t* hcl, unsigned int mask, const hcl_ooch_t* msg, hcl_oow_t len)
{ {
dummy_hcl_xtn_t* xtn = (dummy_hcl_xtn_t*)hcl_getxtn(hcl); dummy_hcl_xtn_t* xtn = (dummy_hcl_xtn_t*)hcl_getxtn(hcl);
hcl_json_t* json; hcl_jsoner_t* json;
json = xtn->json; json = xtn->json;
json->prim.log_write (json, mask, msg, len); json->prim.log_write (json, mask, msg, len);
@ -185,12 +185,12 @@ static HCL_INLINE int is_digitchar (hcl_ooci_t c)
return (c >= '0' && c <= '9'); return (c >= '0' && c <= '9');
} }
static void clear_reply_token (hcl_json_t* json) static void clear_reply_token (hcl_jsoner_t* json)
{ {
json->rep.tok.len = 0; json->rep.tok.len = 0;
} }
static int add_to_reply_token (hcl_json_t* json, hcl_ooch_t ch) static int add_to_reply_token (hcl_jsoner_t* json, hcl_ooch_t ch)
{ {
if (json->rep.tok.len >= json->rep.tok.capa) if (json->rep.tok.len >= json->rep.tok.capa)
{ {
@ -198,7 +198,7 @@ static int add_to_reply_token (hcl_json_t* json, hcl_ooch_t ch)
hcl_oow_t newcapa; hcl_oow_t newcapa;
newcapa = HCL_ALIGN_POW2(json->rep.tok.len + 1, HCL_JSON_TOKEN_NAME_ALIGN); newcapa = HCL_ALIGN_POW2(json->rep.tok.len + 1, HCL_JSON_TOKEN_NAME_ALIGN);
tmp = hcl_json_reallocmem(json, json->rep.tok.ptr, newcapa * HCL_SIZEOF(*tmp)); tmp = hcl_jsoner_reallocmem(json, json->rep.tok.ptr, newcapa * HCL_SIZEOF(*tmp));
if (!tmp) return -1; if (!tmp) return -1;
json->rep.tok.capa = newcapa; json->rep.tok.capa = newcapa;
@ -209,12 +209,12 @@ static int add_to_reply_token (hcl_json_t* json, hcl_ooch_t ch)
return 0; return 0;
} }
static HCL_INLINE int is_token (hcl_json_t* json, const hcl_bch_t* str) static HCL_INLINE int is_token (hcl_jsoner_t* json, const hcl_bch_t* str)
{ {
return hcl_comp_oochars_bcstr(json->rep.tok.ptr, json->rep.tok.len, str) == 0; return hcl_comp_oochars_bcstr(json->rep.tok.ptr, json->rep.tok.len, str) == 0;
} }
static HCL_INLINE int is_token_integer (hcl_json_t* json, hcl_oow_t* value) static HCL_INLINE int is_token_integer (hcl_jsoner_t* json, hcl_oow_t* value)
{ {
hcl_oow_t i; hcl_oow_t i;
hcl_oow_t v = 0; hcl_oow_t v = 0;
@ -250,14 +250,14 @@ static HCL_INLINE hcl_ooch_t unescape (hcl_ooch_t c)
#endif #endif
} }
static int handle_char (hcl_json_t* json, hcl_ooci_t c, hcl_oow_t nbytes) static int handle_char (hcl_jsoner_t* json, hcl_ooci_t c, hcl_oow_t nbytes)
{ {
switch (json->state) switch (json->state)
{ {
case HCL_JSON_STATE_START: case HCL_JSON_STATE_START:
if (c == HCL_OOCI_EOF) if (c == HCL_OOCI_EOF)
{ {
hcl_json_seterrbfmt (json, HCL_EFINIS, "unexpected end before reply name"); hcl_jsoner_seterrbfmt (json, HCL_EFINIS, "unexpected end before reply name");
goto oops; goto oops;
} }
else if (c == '[') else if (c == '[')
@ -277,7 +277,7 @@ static int handle_char (hcl_json_t* json, hcl_ooci_t c, hcl_oow_t nbytes)
} }
else else
{ {
hcl_json_seterrbfmt (json, HCL_EINVAL, "not starting with [ or { - %jc", (hcl_ooch_t)c); hcl_jsoner_seterrbfmt (json, HCL_EINVAL, "not starting with [ or { - %jc", (hcl_ooch_t)c);
goto oops; goto oops;
} }
break; break;
@ -306,7 +306,7 @@ static int handle_char (hcl_json_t* json, hcl_ooci_t c, hcl_oow_t nbytes)
} }
else else
{ {
hcl_json_seterrbfmt (json, HCL_EINVAL, "not starting with [ or { - %jc", (hcl_ooch_t)c); hcl_jsoner_seterrbfmt (json, HCL_EINVAL, "not starting with [ or { - %jc", (hcl_ooch_t)c);
goto oops; goto oops;
} }
break; break;
@ -334,7 +334,7 @@ static int handle_char (hcl_json_t* json, hcl_ooci_t c, hcl_oow_t nbytes)
} }
else else
{ {
hcl_json_seterrbfmt (json, HCL_EINVAL, "not starting with [ or { - %jc", (hcl_ooch_t)c); hcl_jsoner_seterrbfmt (json, HCL_EINVAL, "not starting with [ or { - %jc", (hcl_ooch_t)c);
goto oops; goto oops;
} }
break; break;
@ -358,7 +358,7 @@ static int handle_char (hcl_json_t* json, hcl_ooci_t c, hcl_oow_t nbytes)
break; break;
default: default:
hcl_json_seterrbfmt (json, HCL_EINTERN, "internal error - must not be called for state %d", (int)json->state); hcl_jsoner_seterrbfmt (json, HCL_EINTERN, "internal error - must not be called for state %d", (int)json->state);
goto oops; goto oops;
} }
@ -368,7 +368,7 @@ oops:
return -1; return -1;
} }
static int feed_json_data (hcl_json_t* json, const hcl_bch_t* data, hcl_oow_t len, hcl_oow_t* xlen) static int feed_json_data (hcl_jsoner_t* json, const hcl_bch_t* data, hcl_oow_t len, hcl_oow_t* xlen)
{ {
const hcl_bch_t* ptr; const hcl_bch_t* ptr;
const hcl_bch_t* end; const hcl_bch_t* end;
@ -422,14 +422,14 @@ oops:
/* ========================================================================= */ /* ========================================================================= */
hcl_json_t* hcl_json_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_json_prim_t* prim, hcl_errnum_t* errnum) hcl_jsoner_t* hcl_jsoner_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_jsoner_prim_t* prim, hcl_errnum_t* errnum)
{ {
hcl_json_t* json; hcl_jsoner_t* json;
hcl_t* hcl; hcl_t* hcl;
hcl_vmprim_t vmprim; hcl_vmprim_t vmprim;
dummy_hcl_xtn_t* xtn; dummy_hcl_xtn_t* xtn;
json = (hcl_json_t*)HCL_MMGR_ALLOC(mmgr, HCL_SIZEOF(*json) + xtnsize); json = (hcl_jsoner_t*)HCL_MMGR_ALLOC(mmgr, HCL_SIZEOF(*json) + xtnsize);
if (!json) if (!json)
{ {
if (errnum) *errnum = HCL_ESYSMEM; if (errnum) *errnum = HCL_ESYSMEM;
@ -467,15 +467,15 @@ hcl_json_t* hcl_json_open (hcl_mmgr_t* mmgr, hcl_oow_t xtnsize, hcl_json_prim_t*
return json; return json;
} }
void hcl_json_close (hcl_json_t* json) void hcl_jsoner_close (hcl_jsoner_t* json)
{ {
if (json->rep.tok.ptr) hcl_json_freemem (json, json->rep.tok.ptr); if (json->rep.tok.ptr) hcl_jsoner_freemem (json, json->rep.tok.ptr);
if (json->rep.last_attr_key.ptr) hcl_json_freemem (json, json->rep.last_attr_key.ptr); if (json->rep.last_attr_key.ptr) hcl_jsoner_freemem (json, json->rep.last_attr_key.ptr);
hcl_close (json->dummy_hcl); hcl_close (json->dummy_hcl);
HCL_MMGR_FREE (json->mmgr, json); HCL_MMGR_FREE (json->mmgr, json);
} }
int hcl_json_setoption (hcl_json_t* json, hcl_json_option_t id, const void* value) int hcl_jsoner_setoption (hcl_jsoner_t* json, hcl_jsoner_option_t id, const void* value)
{ {
switch (id) switch (id)
{ {
@ -496,11 +496,11 @@ int hcl_json_setoption (hcl_json_t* json, hcl_json_option_t id, const void* valu
return 0; return 0;
} }
hcl_json_seterrnum (json, HCL_EINVAL); hcl_jsoner_seterrnum (json, HCL_EINVAL);
return -1; return -1;
} }
int hcl_json_getoption (hcl_json_t* json, hcl_json_option_t id, void* value) int hcl_jsoner_getoption (hcl_jsoner_t* json, hcl_jsoner_option_t id, void* value)
{ {
switch (id) switch (id)
{ {
@ -513,55 +513,55 @@ int hcl_json_getoption (hcl_json_t* json, hcl_json_option_t id, void* value)
return 0; return 0;
}; };
hcl_json_seterrnum (json, HCL_EINVAL); hcl_jsoner_seterrnum (json, HCL_EINVAL);
return -1; return -1;
} }
void* hcl_json_getxtn (hcl_json_t* json) void* hcl_jsoner_getxtn (hcl_jsoner_t* json)
{ {
return (void*)(json + 1); return (void*)(json + 1);
} }
hcl_mmgr_t* hcl_json_getmmgr (hcl_json_t* json) hcl_mmgr_t* hcl_jsoner_getmmgr (hcl_jsoner_t* json)
{ {
return json->mmgr; return json->mmgr;
} }
hcl_cmgr_t* hcl_json_getcmgr (hcl_json_t* json) hcl_cmgr_t* hcl_jsoner_getcmgr (hcl_jsoner_t* json)
{ {
return json->cmgr; return json->cmgr;
} }
void hcl_json_setcmgr (hcl_json_t* json, hcl_cmgr_t* cmgr) void hcl_jsoner_setcmgr (hcl_jsoner_t* json, hcl_cmgr_t* cmgr)
{ {
json->cmgr = cmgr; json->cmgr = cmgr;
} }
hcl_errnum_t hcl_json_geterrnum (hcl_json_t* json) hcl_errnum_t hcl_jsoner_geterrnum (hcl_jsoner_t* json)
{ {
return json->errnum; return json->errnum;
} }
const hcl_ooch_t* hcl_json_geterrstr (hcl_json_t* json) const hcl_ooch_t* hcl_jsoner_geterrstr (hcl_jsoner_t* json)
{ {
return hcl_errnum_to_errstr(json->errnum); return hcl_errnum_to_errstr(json->errnum);
} }
const hcl_ooch_t* hcl_json_geterrmsg (hcl_json_t* json) const hcl_ooch_t* hcl_jsoner_geterrmsg (hcl_jsoner_t* json)
{ {
if (json->errmsg.len <= 0) return hcl_errnum_to_errstr(json->errnum); if (json->errmsg.len <= 0) return hcl_errnum_to_errstr(json->errnum);
return json->errmsg.buf; return json->errmsg.buf;
} }
void hcl_json_seterrnum (hcl_json_t* json, hcl_errnum_t errnum) void hcl_jsoner_seterrnum (hcl_jsoner_t* json, hcl_errnum_t errnum)
{ {
/*if (json->shuterr) return; */ /*if (json->shuterr) return; */
json->errnum = errnum; json->errnum = errnum;
json->errmsg.len = 0; json->errmsg.len = 0;
} }
void hcl_json_seterrbfmt (hcl_json_t* json, hcl_errnum_t errnum, const hcl_bch_t* fmt, ...) void hcl_jsoner_seterrbfmt (hcl_jsoner_t* json, hcl_errnum_t errnum, const hcl_bch_t* fmt, ...)
{ {
va_list ap; va_list ap;
@ -575,7 +575,7 @@ void hcl_json_seterrbfmt (hcl_json_t* json, hcl_errnum_t errnum, const hcl_bch_t
json->errmsg.len = json->dummy_hcl->errmsg.len; json->errmsg.len = json->dummy_hcl->errmsg.len;
} }
void hcl_json_seterrufmt (hcl_json_t* json, hcl_errnum_t errnum, const hcl_uch_t* fmt, ...) void hcl_jsoner_seterrufmt (hcl_jsoner_t* json, hcl_errnum_t errnum, const hcl_uch_t* fmt, ...)
{ {
va_list ap; va_list ap;
@ -591,7 +591,7 @@ void hcl_json_seterrufmt (hcl_json_t* json, hcl_errnum_t errnum, const hcl_uch_t
/* ========================================================================= */ /* ========================================================================= */
void hcl_json_logbfmt (hcl_json_t* json, unsigned int mask, const hcl_bch_t* fmt, ...) void hcl_jsoner_logbfmt (hcl_jsoner_t* json, unsigned int mask, const hcl_bch_t* fmt, ...)
{ {
va_list ap; va_list ap;
va_start (ap, fmt); va_start (ap, fmt);
@ -599,7 +599,7 @@ void hcl_json_logbfmt (hcl_json_t* json, unsigned int mask, const hcl_bch_t* fmt
va_end (ap); va_end (ap);
} }
void hcl_json_logufmt (hcl_json_t* json, unsigned int mask, const hcl_uch_t* fmt, ...) void hcl_jsoner_logufmt (hcl_jsoner_t* json, unsigned int mask, const hcl_uch_t* fmt, ...)
{ {
va_list ap; va_list ap;
va_start (ap, fmt); va_start (ap, fmt);
@ -609,51 +609,51 @@ void hcl_json_logufmt (hcl_json_t* json, unsigned int mask, const hcl_uch_t* fmt
/* ========================================================================= */ /* ========================================================================= */
void* hcl_json_allocmem (hcl_json_t* json, hcl_oow_t size) void* hcl_jsoner_allocmem (hcl_jsoner_t* json, hcl_oow_t size)
{ {
void* ptr; void* ptr;
ptr = HCL_MMGR_ALLOC(json->mmgr, size); ptr = HCL_MMGR_ALLOC(json->mmgr, size);
if (!ptr) hcl_json_seterrnum (json, HCL_ESYSMEM); if (!ptr) hcl_jsoner_seterrnum (json, HCL_ESYSMEM);
return ptr; return ptr;
} }
void* hcl_json_callocmem (hcl_json_t* json, hcl_oow_t size) void* hcl_jsoner_callocmem (hcl_jsoner_t* json, hcl_oow_t size)
{ {
void* ptr; void* ptr;
ptr = HCL_MMGR_ALLOC(json->mmgr, size); ptr = HCL_MMGR_ALLOC(json->mmgr, size);
if (!ptr) hcl_json_seterrnum (json, HCL_ESYSMEM); if (!ptr) hcl_jsoner_seterrnum (json, HCL_ESYSMEM);
else HCL_MEMSET (ptr, 0, size); else HCL_MEMSET (ptr, 0, size);
return ptr; return ptr;
} }
void* hcl_json_reallocmem (hcl_json_t* json, void* ptr, hcl_oow_t size) void* hcl_jsoner_reallocmem (hcl_jsoner_t* json, void* ptr, hcl_oow_t size)
{ {
ptr = HCL_MMGR_REALLOC(json->mmgr, ptr, size); ptr = HCL_MMGR_REALLOC(json->mmgr, ptr, size);
if (!ptr) hcl_json_seterrnum (json, HCL_ESYSMEM); if (!ptr) hcl_jsoner_seterrnum (json, HCL_ESYSMEM);
return ptr; return ptr;
} }
void hcl_json_freemem (hcl_json_t* json, void* ptr) void hcl_jsoner_freemem (hcl_jsoner_t* json, void* ptr)
{ {
HCL_MMGR_FREE (json->mmgr, ptr); HCL_MMGR_FREE (json->mmgr, ptr);
} }
/* ========================================================================= */ /* ========================================================================= */
hcl_json_state_t hcl_json_getstate (hcl_json_t* json) hcl_jsoner_state_t hcl_jsoner_getstate (hcl_jsoner_t* json)
{ {
return json->state; return json->state;
} }
void hcl_json_reset (hcl_json_t* json) void hcl_jsoner_reset (hcl_jsoner_t* json)
{ {
/* TODO: reset XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx */ /* TODO: reset XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx */
json->state = HCL_JSON_STATE_START; json->state = HCL_JSON_STATE_START;
} }
int hcl_json_feed (hcl_json_t* json, const void* ptr, hcl_oow_t len, hcl_oow_t* xlen) int hcl_jsoner_feed (hcl_jsoner_t* json, const void* ptr, hcl_oow_t len, hcl_oow_t* xlen)
{ {
int x; int x;
hcl_oow_t total, ylen; hcl_oow_t total, ylen;

40
lib/main-j.c Normal file
View File

@ -0,0 +1,40 @@
#include <hcl-json.h>
#include <stdio.h>
#include <stdlib.h>
static void* sys_alloc (hcl_mmgr_t* mmgr, hcl_oow_t size)
{
return malloc(size);
}
static void* sys_realloc (hcl_mmgr_t* mmgr, void* ptr, hcl_oow_t size)
{
return realloc(ptr, size);
}
static void sys_free (hcl_mmgr_t* mmgr, void* ptr)
{
free (ptr);
}
static hcl_mmgr_t sys_mmgr =
{
sys_alloc,
sys_realloc,
sys_free,
HCL_NULL
};
int main (int argc, char* argv[])
{
hcl_jsoner_t* jsoner;
jsoner = hcl_jsoner_open (&mmgr, 0, NULL, NULL);
hcl_jsoner_close (jsoner);
return 0;
}