wip - reworking hcl server/client code
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@ -106,12 +106,13 @@ endif
|
||||
|
||||
if ENABLE_HCLX
|
||||
pkglib_LTLIBRARIES += libhclx.la
|
||||
pkginclude_HEADERS += hcl-c.h hcl-s.h hcl-tmr.h hcl-xutl.h hcl-json.h
|
||||
pkginclude_HEADERS += hcl-c.h hcl-s.h hcl-x.h hcl-tmr.h hcl-xutl.h hcl-json.h
|
||||
libhclx_la_SOURCES = \
|
||||
tmr.c hcl-tmr.h \
|
||||
xutl.c xutl-sa.h hcl-xutl.h \
|
||||
json.c hcl-json.h \
|
||||
hcl-s.c hcl-s2.c hcl-s.h \
|
||||
hcl-s.c hcl-s.h \
|
||||
hcl-x.c hcl-x.h \
|
||||
hcl-c.c hcl-c.h
|
||||
libhclx_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON) $(CPPFLAGS_PFMOD)
|
||||
libhclx_la_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
||||
|
@ -97,7 +97,7 @@ host_triplet = @host@
|
||||
@ENABLE_STATIC_MODULE_TRUE@ ../mod/libhcl-str.la \
|
||||
@ENABLE_STATIC_MODULE_TRUE@ ../mod/libhcl-sys.la
|
||||
@ENABLE_HCLX_TRUE@am__append_7 = libhclx.la
|
||||
@ENABLE_HCLX_TRUE@am__append_8 = hcl-c.h hcl-s.h hcl-tmr.h hcl-xutl.h hcl-json.h
|
||||
@ENABLE_HCLX_TRUE@am__append_8 = hcl-c.h hcl-s.h hcl-x.h hcl-tmr.h hcl-xutl.h hcl-json.h
|
||||
subdir = lib
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \
|
||||
@ -171,11 +171,11 @@ libhcl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
@ENABLE_HCLX_TRUE@libhclx_la_DEPENDENCIES = libhcl.la \
|
||||
@ENABLE_HCLX_TRUE@ $(am__DEPENDENCIES_5)
|
||||
am__libhclx_la_SOURCES_DIST = tmr.c hcl-tmr.h xutl.c xutl-sa.h \
|
||||
hcl-xutl.h json.c hcl-json.h hcl-s.c hcl-s2.c hcl-s.h hcl-c.c \
|
||||
hcl-c.h
|
||||
hcl-xutl.h json.c hcl-json.h hcl-s.c hcl-s.h hcl-x.c hcl-x.h \
|
||||
hcl-c.c hcl-c.h
|
||||
@ENABLE_HCLX_TRUE@am_libhclx_la_OBJECTS = libhclx_la-tmr.lo \
|
||||
@ENABLE_HCLX_TRUE@ libhclx_la-xutl.lo libhclx_la-json.lo \
|
||||
@ENABLE_HCLX_TRUE@ libhclx_la-hcl-s.lo libhclx_la-hcl-s2.lo \
|
||||
@ENABLE_HCLX_TRUE@ libhclx_la-hcl-s.lo libhclx_la-hcl-x.lo \
|
||||
@ENABLE_HCLX_TRUE@ libhclx_la-hcl-c.lo
|
||||
libhclx_la_OBJECTS = $(am_libhclx_la_OBJECTS)
|
||||
libhclx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
@ -213,7 +213,7 @@ am__depfiles_remade = ./$(DEPDIR)/libhcl_la-bigint.Plo \
|
||||
./$(DEPDIR)/libhcl_la-utl.Plo ./$(DEPDIR)/libhcl_la-xchg.Plo \
|
||||
./$(DEPDIR)/libhcl_la-xma.Plo ./$(DEPDIR)/libhclx_la-hcl-c.Plo \
|
||||
./$(DEPDIR)/libhclx_la-hcl-s.Plo \
|
||||
./$(DEPDIR)/libhclx_la-hcl-s2.Plo \
|
||||
./$(DEPDIR)/libhclx_la-hcl-x.Plo \
|
||||
./$(DEPDIR)/libhclx_la-json.Plo ./$(DEPDIR)/libhclx_la-tmr.Plo \
|
||||
./$(DEPDIR)/libhclx_la-xutl.Plo
|
||||
am__mv = mv -f
|
||||
@ -244,7 +244,7 @@ am__can_run_installinfo = \
|
||||
esac
|
||||
am__pkginclude_HEADERS_DIST = hcl.h hcl-chr.h hcl-cmn.h hcl-fmt.h \
|
||||
hcl-opt.h hcl-pac1.h hcl-rbt.h hcl-upac.h hcl-utl.h hcl-xma.h \
|
||||
hcl-c.h hcl-s.h hcl-tmr.h hcl-xutl.h hcl-json.h
|
||||
hcl-c.h hcl-s.h hcl-x.h hcl-tmr.h hcl-xutl.h hcl-json.h
|
||||
HEADERS = $(pkginclude_HEADERS)
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
|
||||
hcl-cfg.h.in
|
||||
@ -479,7 +479,8 @@ libhcl_la_LIBADD = $(LIBADD_LIB_COMMON) $(am__append_6)
|
||||
@ENABLE_HCLX_TRUE@ tmr.c hcl-tmr.h \
|
||||
@ENABLE_HCLX_TRUE@ xutl.c xutl-sa.h hcl-xutl.h \
|
||||
@ENABLE_HCLX_TRUE@ json.c hcl-json.h \
|
||||
@ENABLE_HCLX_TRUE@ hcl-s.c hcl-s2.c hcl-s.h \
|
||||
@ENABLE_HCLX_TRUE@ hcl-s.c hcl-s.h \
|
||||
@ENABLE_HCLX_TRUE@ hcl-x.c hcl-x.h \
|
||||
@ENABLE_HCLX_TRUE@ hcl-c.c hcl-c.h
|
||||
|
||||
@ENABLE_HCLX_TRUE@libhclx_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON) $(CPPFLAGS_PFMOD)
|
||||
@ -612,7 +613,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhcl_la-xma.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhclx_la-hcl-c.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhclx_la-hcl-s.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhclx_la-hcl-s2.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhclx_la-hcl-x.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhclx_la-json.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhclx_la-tmr.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhclx_la-xutl.Plo@am__quote@ # am--include-marker
|
||||
@ -871,12 +872,12 @@ libhclx_la-hcl-s.lo: hcl-s.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhclx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libhclx_la-hcl-s.lo `test -f 'hcl-s.c' || echo '$(srcdir)/'`hcl-s.c
|
||||
|
||||
libhclx_la-hcl-s2.lo: hcl-s2.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhclx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libhclx_la-hcl-s2.lo -MD -MP -MF $(DEPDIR)/libhclx_la-hcl-s2.Tpo -c -o libhclx_la-hcl-s2.lo `test -f 'hcl-s2.c' || echo '$(srcdir)/'`hcl-s2.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhclx_la-hcl-s2.Tpo $(DEPDIR)/libhclx_la-hcl-s2.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hcl-s2.c' object='libhclx_la-hcl-s2.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
libhclx_la-hcl-x.lo: hcl-x.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhclx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libhclx_la-hcl-x.lo -MD -MP -MF $(DEPDIR)/libhclx_la-hcl-x.Tpo -c -o libhclx_la-hcl-x.lo `test -f 'hcl-x.c' || echo '$(srcdir)/'`hcl-x.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhclx_la-hcl-x.Tpo $(DEPDIR)/libhclx_la-hcl-x.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hcl-x.c' object='libhclx_la-hcl-x.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhclx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libhclx_la-hcl-s2.lo `test -f 'hcl-s2.c' || echo '$(srcdir)/'`hcl-s2.c
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhclx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libhclx_la-hcl-x.lo `test -f 'hcl-x.c' || echo '$(srcdir)/'`hcl-x.c
|
||||
|
||||
libhclx_la-hcl-c.lo: hcl-c.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhclx_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libhclx_la-hcl-c.lo -MD -MP -MF $(DEPDIR)/libhclx_la-hcl-c.Tpo -c -o libhclx_la-hcl-c.lo `test -f 'hcl-c.c' || echo '$(srcdir)/'`hcl-c.c
|
||||
@ -1069,7 +1070,7 @@ distclean: distclean-am
|
||||
-rm -f ./$(DEPDIR)/libhcl_la-xma.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-hcl-c.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-hcl-s.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-hcl-s2.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-hcl-x.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-json.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-tmr.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-xutl.Plo
|
||||
@ -1149,7 +1150,7 @@ maintainer-clean: maintainer-clean-am
|
||||
-rm -f ./$(DEPDIR)/libhcl_la-xma.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-hcl-c.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-hcl-s.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-hcl-s2.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-hcl-x.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-json.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-tmr.Plo
|
||||
-rm -f ./$(DEPDIR)/libhclx_la-xutl.Plo
|
||||
|
@ -21,6 +21,7 @@
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#if 0
|
||||
|
||||
#include "hcl-c.h"
|
||||
#include "hcl-prv.h"
|
||||
@ -1044,3 +1045,5 @@ int hcl_client_feed (hcl_client_t* client, const void* ptr, hcl_oow_t len, hcl_o
|
||||
*xlen = total;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -21,6 +21,7 @@
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#if 0
|
||||
|
||||
#ifndef _HCL_C_H_
|
||||
#define _HCL_C_H_
|
||||
@ -265,3 +266,6 @@ HCL_EXPORT void hcl_client_freemem (
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -150,7 +150,7 @@ HCL_EXPORT int hcl_is_bch_type (hcl_bch_t c, hcl_bch_prop_t type);
|
||||
# if __has_builtin(__builtin_tolower)
|
||||
# define hcl_to_bch_lower __builtin_tolower
|
||||
# endif
|
||||
#elif (__GNUC__ >= 4)
|
||||
#elif (__GNUC__ >= 4)
|
||||
# define hcl_is_bch_upper __builtin_isupper
|
||||
# define hcl_is_bch_lower __builtin_islower
|
||||
# define hcl_is_bch_alpha __builtin_isalpha
|
||||
|
11
lib/hcl-s.c
11
lib/hcl-s.c
@ -21,6 +21,7 @@
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#if 0
|
||||
|
||||
#include "hcl-s.h"
|
||||
#include "hcl-prv.h"
|
||||
@ -515,8 +516,8 @@ start_over:
|
||||
|
||||
#if defined(HCL_OOCH_IS_UCH)
|
||||
bcslen = bb->len;
|
||||
ucslen = HCL_COUNTOF(arg->buf);
|
||||
y = hcl_convbtooochars(hcl, bb->buf, &bcslen, arg->buf, &ucslen);
|
||||
ucslen = HCL_COUNTOF(arg->buf.c);
|
||||
y = hcl_convbtooochars(hcl, bb->buf, &bcslen, arg->buf.c, &ucslen);
|
||||
if (y <= -1 && ucslen <= 0)
|
||||
{
|
||||
if (y == -3 && x != 0) goto start_over; /* incomplete sequence and not EOF yet */
|
||||
@ -525,9 +526,9 @@ start_over:
|
||||
/* if ucslen is greater than 0, i see that some characters have been
|
||||
* converted properly */
|
||||
#else
|
||||
bcslen = (bb->len < HCL_COUNTOF(arg->buf))? bb->len: HCL_COUNTOF(arg->buf);
|
||||
bcslen = (bb->len < HCL_COUNTOF(arg->buf.b))? bb->len: HCL_COUNTOF(arg->buf.b);
|
||||
ucslen = bcslen;
|
||||
hcl_copy_bchars (arg->buf, bb->buf, bcslen);
|
||||
hcl_copy_bchars (arg->buf.b, bb->buf, bcslen);
|
||||
#endif
|
||||
|
||||
remlen = bb->len - bcslen;
|
||||
@ -2555,3 +2556,5 @@ void hcl_server_freemem (hcl_server_t* server, void* ptr)
|
||||
{
|
||||
HCL_MMGR_FREE (server->_mmgr, ptr);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -22,6 +22,7 @@
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
#ifndef _HCL_S_H_
|
||||
#define _HCL_S_H_
|
||||
|
||||
@ -219,3 +220,7 @@ HCL_EXPORT int hcl_server_proto_handle_request (
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
401
lib/hcl-x.h
Normal file
401
lib/hcl-x.h
Normal file
@ -0,0 +1,401 @@
|
||||
/*
|
||||
Copyright (c) 2016-2018 Chung, Hyung-Hwan. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _HCL_X_T_
|
||||
#define _HCL_X_T_
|
||||
|
||||
/*#include <hcl-cmn.h>*/
|
||||
#include <hcl.h>
|
||||
|
||||
enum hcl_xpkt_type_t
|
||||
{
|
||||
HCL_XPKT_CODEIN,
|
||||
HCL_XPKT_CODEOUT, /* return value is passed over this? */
|
||||
HCL_XPKT_STDIN,
|
||||
HCL_XPKT_STDOUT,
|
||||
|
||||
HCL_XPKT_LIST_WORKERS,
|
||||
HCL_XPKT_KILL_WORKER
|
||||
};
|
||||
typedef enum hcl_xpkt_type_t hcl_xpkt_type_t;
|
||||
|
||||
struct hcl_xpkt_hdr_t
|
||||
{
|
||||
hcl_uint8_t type;
|
||||
hcl_uint8_t id;
|
||||
hcl_uint8_t len;
|
||||
};
|
||||
typedef struct hcl_xpkt_hdr_t hcl_xpkt_hdr_t;
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
typedef struct hcl_server_proto_t hcl_server_proto_t;
|
||||
typedef struct hcl_server_worker_t hcl_server_worker_t;
|
||||
typedef struct hcl_server_t hcl_server_t;
|
||||
|
||||
enum hcl_server_option_t
|
||||
{
|
||||
HCL_SERVER_TRAIT,
|
||||
HCL_SERVER_LOG_MASK,
|
||||
HCL_SERVER_WORKER_MAX_COUNT,
|
||||
HCL_SERVER_WORKER_STACK_SIZE,
|
||||
HCL_SERVER_WORKER_IDLE_TIMEOUT,
|
||||
HCL_SERVER_ACTOR_HEAP_SIZE,
|
||||
HCL_SERVER_ACTOR_MAX_RUNTIME,
|
||||
HCL_SERVER_SCRIPT_INCLUDE_PATH,
|
||||
HCL_SERVER_MODULE_INCTX
|
||||
};
|
||||
typedef enum hcl_server_option_t hcl_server_option_t;
|
||||
|
||||
enum hcl_server_trait_t
|
||||
{
|
||||
#if defined(HCL_BUILD_DEBUG)
|
||||
HCL_SERVER_TRAIT_DEBUG_GC = (1 << 0),
|
||||
HCL_SERVER_TRAIT_DEBUG_BIGINT = (1 << 1)
|
||||
#endif
|
||||
};
|
||||
typedef enum hcl_server_trait_t hcl_server_trait_t;
|
||||
|
||||
#define HCL_SERVER_WID_INVALID ((hcl_oow_t)-1)
|
||||
#define HCL_SERVER_WID_MAX (HCL_SERVER_WID_INVALID - 1)
|
||||
|
||||
typedef void (*hcl_server_log_write_t) (
|
||||
hcl_server_t* server,
|
||||
hcl_oow_t wid,
|
||||
hcl_bitmask_t mask,
|
||||
const hcl_ooch_t* msg,
|
||||
hcl_oow_t len
|
||||
);
|
||||
|
||||
struct hcl_server_prim_t
|
||||
{
|
||||
hcl_server_log_write_t log_write;
|
||||
};
|
||||
typedef struct hcl_server_prim_t hcl_server_prim_t;
|
||||
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
|
||||
typedef struct hcl_client_t hcl_client_t;
|
||||
|
||||
enum hcl_client_option_t
|
||||
{
|
||||
HCL_CLIENT_TRAIT,
|
||||
HCL_CLIENT_LOG_MASK,
|
||||
};
|
||||
typedef enum hcl_client_option_t hcl_client_option_t;
|
||||
|
||||
enum hcl_client_trait_t
|
||||
{
|
||||
/* no trait defined at this moment. XXXX is just a placeholder */
|
||||
HCL_CLIENT_XXXX = (1 << 0)
|
||||
};
|
||||
typedef enum hcl_client_trait_t hcl_client_trait_t;
|
||||
|
||||
|
||||
typedef void (*hcl_client_log_write_t) (
|
||||
hcl_client_t* client,
|
||||
hcl_bitmask_t mask,
|
||||
const hcl_ooch_t* msg,
|
||||
hcl_oow_t len
|
||||
);
|
||||
|
||||
struct hcl_client_prim_t
|
||||
{
|
||||
hcl_client_log_write_t log_write;
|
||||
};
|
||||
typedef struct hcl_client_prim_t hcl_client_prim_t;
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
HCL_EXPORT hcl_server_t* hcl_server_open (
|
||||
hcl_mmgr_t* mmgr,
|
||||
hcl_oow_t xtnsize,
|
||||
hcl_server_prim_t* prim,
|
||||
hcl_errnum_t* errnum
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_server_close (
|
||||
hcl_server_t* server
|
||||
);
|
||||
|
||||
HCL_EXPORT int hcl_server_start (
|
||||
hcl_server_t* server,
|
||||
const hcl_bch_t* addrs
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_server_stop (
|
||||
hcl_server_t* server
|
||||
);
|
||||
|
||||
HCL_EXPORT int hcl_server_setoption (
|
||||
hcl_server_t* server,
|
||||
hcl_server_option_t id,
|
||||
const void* value
|
||||
);
|
||||
|
||||
HCL_EXPORT int hcl_server_getoption (
|
||||
hcl_server_t* server,
|
||||
hcl_server_option_t id,
|
||||
void* value
|
||||
);
|
||||
|
||||
HCL_EXPORT void* hcl_server_getxtn (
|
||||
hcl_server_t* server
|
||||
);
|
||||
|
||||
HCL_EXPORT hcl_mmgr_t* hcl_server_getmmgr (
|
||||
hcl_server_t* server
|
||||
);
|
||||
|
||||
|
||||
HCL_EXPORT hcl_cmgr_t* hcl_server_getcmgr (
|
||||
hcl_server_t* server
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_server_setcmgr (
|
||||
hcl_server_t* server,
|
||||
hcl_cmgr_t* cmgr
|
||||
);
|
||||
|
||||
HCL_EXPORT hcl_errnum_t hcl_server_geterrnum (
|
||||
hcl_server_t* server
|
||||
);
|
||||
|
||||
HCL_EXPORT const hcl_ooch_t* hcl_server_geterrstr (
|
||||
hcl_server_t* server
|
||||
);
|
||||
|
||||
HCL_EXPORT const hcl_ooch_t* hcl_server_geterrmsg (
|
||||
hcl_server_t* server
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_server_seterrnum (
|
||||
hcl_server_t* server,
|
||||
hcl_errnum_t errnum
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_server_seterrbfmt (
|
||||
hcl_server_t* server,
|
||||
hcl_errnum_t errnum,
|
||||
const hcl_bch_t* fmt,
|
||||
...
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_server_seterrufmt (
|
||||
hcl_server_t* server,
|
||||
hcl_errnum_t errnum,
|
||||
const hcl_uch_t* fmt,
|
||||
...
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_server_logbfmt (
|
||||
hcl_server_t* server,
|
||||
hcl_bitmask_t mask,
|
||||
const hcl_bch_t* fmt,
|
||||
...
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_server_logufmt (
|
||||
hcl_server_t* server,
|
||||
hcl_bitmask_t mask,
|
||||
const hcl_uch_t* fmt,
|
||||
...
|
||||
);
|
||||
|
||||
|
||||
HCL_EXPORT void* hcl_server_allocmem (
|
||||
hcl_server_t* server,
|
||||
hcl_oow_t size
|
||||
);
|
||||
|
||||
HCL_EXPORT void* hcl_server_callocmem (
|
||||
hcl_server_t* server,
|
||||
hcl_oow_t size
|
||||
);
|
||||
|
||||
HCL_EXPORT void* hcl_server_reallocmem (
|
||||
hcl_server_t* server,
|
||||
void* ptr,
|
||||
hcl_oow_t size
|
||||
);
|
||||
|
||||
|
||||
HCL_EXPORT void hcl_server_freemem (
|
||||
hcl_server_t* server,
|
||||
void* ptr
|
||||
);
|
||||
|
||||
|
||||
HCL_EXPORT int hcl_server_proto_feed_reply (
|
||||
hcl_server_proto_t* proto,
|
||||
const hcl_ooch_t* ptr,
|
||||
hcl_oow_t len,
|
||||
int escape
|
||||
);
|
||||
|
||||
HCL_EXPORT int hcl_server_proto_feed_reply_bytes (
|
||||
hcl_server_proto_t* proto,
|
||||
const hcl_bch_t* ptr,
|
||||
hcl_oow_t len
|
||||
);
|
||||
|
||||
HCL_EXPORT int hcl_server_proto_handle_incoming (
|
||||
hcl_server_proto_t* proto
|
||||
);
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
HCL_EXPORT hcl_client_t* hcl_client_open (
|
||||
hcl_mmgr_t* mmgr,
|
||||
hcl_oow_t xtnsize,
|
||||
hcl_client_prim_t* prim,
|
||||
hcl_errnum_t* errnum
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_client_close (
|
||||
hcl_client_t* client
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_client_reset (
|
||||
hcl_client_t* client
|
||||
);
|
||||
|
||||
HCL_EXPORT int hcl_client_feed (
|
||||
hcl_client_t* client,
|
||||
const void* ptr,
|
||||
hcl_oow_t len,
|
||||
hcl_oow_t* xlen
|
||||
);
|
||||
|
||||
HCL_EXPORT int hcl_client_setoption (
|
||||
hcl_client_t* client,
|
||||
hcl_client_option_t id,
|
||||
const void* value
|
||||
);
|
||||
|
||||
HCL_EXPORT int hcl_client_getoption (
|
||||
hcl_client_t* client,
|
||||
hcl_client_option_t id,
|
||||
void* value
|
||||
);
|
||||
|
||||
|
||||
HCL_EXPORT void* hcl_client_getxtn (
|
||||
hcl_client_t* client
|
||||
);
|
||||
|
||||
HCL_EXPORT hcl_mmgr_t* hcl_client_getmmgr (
|
||||
hcl_client_t* client
|
||||
);
|
||||
|
||||
HCL_EXPORT hcl_cmgr_t* hcl_client_getcmgr (
|
||||
hcl_client_t* client
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_client_setcmgr (
|
||||
hcl_client_t* client,
|
||||
hcl_cmgr_t* cmgr
|
||||
);
|
||||
|
||||
|
||||
HCL_EXPORT hcl_errnum_t hcl_client_geterrnum (
|
||||
hcl_client_t* client
|
||||
);
|
||||
|
||||
HCL_EXPORT const hcl_ooch_t* hcl_client_geterrstr (
|
||||
hcl_client_t* client
|
||||
);
|
||||
|
||||
HCL_EXPORT const hcl_ooch_t* hcl_client_geterrmsg (
|
||||
hcl_client_t* client
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_client_seterrnum (
|
||||
hcl_client_t* client,
|
||||
hcl_errnum_t errnum
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_client_seterrbfmt (
|
||||
hcl_client_t* client,
|
||||
hcl_errnum_t errnum,
|
||||
const hcl_bch_t* fmt,
|
||||
...
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_client_seterrufmt (
|
||||
hcl_client_t* client,
|
||||
hcl_errnum_t errnum,
|
||||
const hcl_uch_t* fmt,
|
||||
...
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_client_logbfmt (
|
||||
hcl_client_t* client,
|
||||
hcl_bitmask_t mask,
|
||||
const hcl_bch_t* fmt,
|
||||
...
|
||||
);
|
||||
|
||||
HCL_EXPORT void hcl_client_logufmt (
|
||||
hcl_client_t* client,
|
||||
hcl_bitmask_t mask,
|
||||
const hcl_uch_t* fmt,
|
||||
...
|
||||
);
|
||||
|
||||
HCL_EXPORT void* hcl_client_allocmem (
|
||||
hcl_client_t* client,
|
||||
hcl_oow_t size
|
||||
);
|
||||
|
||||
HCL_EXPORT void* hcl_client_callocmem (
|
||||
hcl_client_t* client,
|
||||
hcl_oow_t size
|
||||
);
|
||||
|
||||
HCL_EXPORT void* hcl_client_reallocmem (
|
||||
hcl_client_t* client,
|
||||
void* ptr,
|
||||
hcl_oow_t size
|
||||
);
|
||||
|
||||
|
||||
HCL_EXPORT void hcl_client_freemem (
|
||||
hcl_client_t* client,
|
||||
void* ptr
|
||||
);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1666,8 +1666,8 @@ struct hcl_t
|
||||
hcl_oop_process_t nil_process; /* instance of Process */
|
||||
|
||||
/* =============================================================
|
||||
* KERNEL CLASSES
|
||||
* Be sure to Keep these kernel class pointers registered in the
|
||||
* KERNEL CLASSES
|
||||
* Be sure to Keep these kernel class pointers registered in the
|
||||
* kernel_classes table in gc.c
|
||||
* ============================================================= */
|
||||
hcl_oop_class_t c_apex; /* Apex */
|
||||
|
@ -19,7 +19,7 @@
|
||||
#define POLLNVAL 0x020 /* Invalid polling request. */
|
||||
|
||||
/* Data structure describing a polling request. */
|
||||
struct pollfd
|
||||
struct pollfd
|
||||
{
|
||||
int fd; /* File descriptor to poll. */
|
||||
short int events; /* Types of events poller cares about. */
|
||||
|
@ -38,13 +38,13 @@ hcl_oow_t hcl_uc_to_utf16 (hcl_uch_t uc, hcl_bch_t* utf16, hcl_oow_t size)
|
||||
{
|
||||
hcl_uint16_t* u16 = (hcl_uint16_t*)utf16;
|
||||
|
||||
if (uc <= 0xFFFF)
|
||||
if (uc <= 0xFFFF)
|
||||
{
|
||||
u16[0] = (hcl_uint16_t)uc;
|
||||
return 2;
|
||||
}
|
||||
#if (HCL_SIZEOF_UCH_T > 2)
|
||||
else if (uc <= 0x10FFFF)
|
||||
else if (uc <= 0x10FFFF)
|
||||
{
|
||||
u16[0] = HIGH_SURROGATE_START | (((uc >> 16) & 0x1F) - 1) | (uc >> 10);
|
||||
u16[1] = LOW_SURROGATE_START | (uc & 0x3FF);
|
||||
@ -61,7 +61,7 @@ hcl_oow_t hcl_utf16_to_uc (const hcl_bch_t* utf16, hcl_oow_t size, hcl_uch_t* uc
|
||||
|
||||
if (size < 2) return 0; /* incomplete sequence */
|
||||
|
||||
if (u16[0] < HIGH_SURROGATE_START || u16[0] > LOW_SURROGATE_END)
|
||||
if (u16[0] < HIGH_SURROGATE_START || u16[0] > LOW_SURROGATE_END)
|
||||
{
|
||||
/* BMP - U+0000 - U+D7FF, U+E000 - U+FFFF */
|
||||
*uc = u16[0];
|
||||
|
@ -69,7 +69,7 @@ int hcl_marshalcode (hcl_t* hcl, const hcl_code_t* code, hcl_xchg_writer_t wrtr,
|
||||
hcl_uint8_t b;
|
||||
hcl_oow_t w;
|
||||
hcl_xchg_hdr_t h;
|
||||
|
||||
|
||||
lfbase = (hcl->option.trait & HCL_TRAIT_INTERACTIVE)? hcl->c->fnblk.info[hcl->c->fnblk.depth].lfbase: 0;
|
||||
|
||||
/* start with a header */
|
||||
@ -368,7 +368,7 @@ int hcl_unmarshalcode (hcl_t* hcl, hcl_code_t* code, hcl_xchg_reader_t rdr, void
|
||||
}
|
||||
nbytes = hcl_leoowtoh(w);
|
||||
|
||||
ns = hcl_makestring(hcl, HCL_NULL, nchars, 0);
|
||||
ns = hcl_makestring(hcl, HCL_NULL, nchars, 0);
|
||||
if (HCL_UNLIKELY(!ns)) goto oops;
|
||||
|
||||
ucspos = 0;
|
||||
|
Reference in New Issue
Block a user