working on IO classes and modules
This commit is contained in:
parent
9ea7019190
commit
d73427cbae
41
moo/kernel/IO.moo
Normal file
41
moo/kernel/IO.moo
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
class(#limited) InputOutputStud(Object) from "io"
|
||||||
|
{
|
||||||
|
var(#get) handle. // you must keep handle as the first field for consitency with the 'io' module.
|
||||||
|
|
||||||
|
method(#primitive,#lenient) _close.
|
||||||
|
method(#primitive) _readBytesInto: buffer startingAt: offset for: count.
|
||||||
|
method(#primitive) _writeBytesFrom: buffer startingAt: offset for: count.
|
||||||
|
}
|
||||||
|
|
||||||
|
class FileAccessor(InputOutputStud) from "io.file"
|
||||||
|
{
|
||||||
|
method(#primitive,#lenient) _open: path flags: flags.
|
||||||
|
|
||||||
|
method(#class) on: path for: flags
|
||||||
|
{
|
||||||
|
| fa |
|
||||||
|
fa := self new _open: path flags: flags.
|
||||||
|
if (fa isError) { self error: "unable to open file" }.
|
||||||
|
self addToBeFinalized.
|
||||||
|
^fa.
|
||||||
|
}
|
||||||
|
|
||||||
|
method close
|
||||||
|
{
|
||||||
|
"CLOSING HANDLLE>..................." dump.
|
||||||
|
self _close.
|
||||||
|
self removeToBeFinalized.
|
||||||
|
}
|
||||||
|
|
||||||
|
method finalize
|
||||||
|
{
|
||||||
|
self close.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
class UnixFileAccessor(FileAccessor) from "io.file.unix"
|
||||||
|
{
|
||||||
|
method(#primitive) _open: path flags: flags mode: mode.
|
||||||
|
}
|
||||||
|
*/
|
@ -7,6 +7,7 @@
|
|||||||
#include 'Collect.moo'.
|
#include 'Collect.moo'.
|
||||||
#include 'System.moo'.
|
#include 'System.moo'.
|
||||||
#include 'Process.moo'.
|
#include 'Process.moo'.
|
||||||
|
#include 'IO.moo'.
|
||||||
#include 'Stream.moo'.
|
#include 'Stream.moo'.
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
@ -87,23 +87,31 @@ libmoo_la_SOURCES = \
|
|||||||
libmoo_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
|
libmoo_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
|
||||||
libmoo_la_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
libmoo_la_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
||||||
libmoo_la_LIBADD = $(LIBADD_LIB_COMMON)
|
libmoo_la_LIBADD = $(LIBADD_LIB_COMMON)
|
||||||
|
libmoo_la_DEPENDENCIES =
|
||||||
|
|
||||||
if ENABLE_STATIC_MODULE
|
if ENABLE_STATIC_MODULE
|
||||||
libmoo_la_LIBADD += -lmoo-stdio
|
|
||||||
libmoo_la_DEPENDENCIES = ../mod/libmoo-stdio.la
|
|
||||||
|
|
||||||
if ENABLE_MOD_CON
|
if ENABLE_MOD_CON
|
||||||
libmoo_la_LIBADD += -lmoo-con
|
libmoo_la_LIBADD += -lmoo-con
|
||||||
libmoo_la_DEPENDENCIES += ../mod/libmoo-con.la
|
libmoo_la_DEPENDENCIES += ../mod/libmoo-con.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ENABLE_MOD_FFI
|
if ENABLE_MOD_FFI
|
||||||
libmoo_la_LIBADD += -lmoo-ffi
|
libmoo_la_LIBADD += -lmoo-ffi
|
||||||
libmoo_la_DEPENDENCIES += ../mod/libmoo-ffi.la
|
libmoo_la_DEPENDENCIES += ../mod/libmoo-ffi.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
libmoo_la_LIBADD += -lmoo-io
|
||||||
|
libmoo_la_DEPENDENCIES += ../mod/libmoo-io.la
|
||||||
|
|
||||||
if ENABLE_MOD_SCK
|
if ENABLE_MOD_SCK
|
||||||
libmoo_la_LIBADD += -lmoo-sck
|
libmoo_la_LIBADD += -lmoo-sck
|
||||||
libmoo_la_DEPENDENCIES += ../mod/libmoo-sck.la
|
libmoo_la_DEPENDENCIES += ../mod/libmoo-sck.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
libmoo_la_LIBADD += -lmoo-stdio
|
||||||
|
libmoo_la_DEPENDENCIES += ../mod/libmoo-stdio.la
|
||||||
|
|
||||||
if ENABLE_MOD_X11
|
if ENABLE_MOD_X11
|
||||||
libmoo_la_LIBADD += -lmoo-x11
|
libmoo_la_LIBADD += -lmoo-x11
|
||||||
libmoo_la_DEPENDENCIES += ../mod/libmoo-x11.la
|
libmoo_la_DEPENDENCIES += ../mod/libmoo-x11.la
|
||||||
|
@ -89,27 +89,23 @@ build_triplet = @build@
|
|||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
@MACOSX_TRUE@@WIN32_FALSE@am__append_1 = -DMOO_DEFAULT_PFMODPOSTFIX=\".dylib\"
|
@MACOSX_TRUE@@WIN32_FALSE@am__append_1 = -DMOO_DEFAULT_PFMODPOSTFIX=\".dylib\"
|
||||||
@MACOSX_FALSE@@WIN32_FALSE@am__append_2 = -DMOO_DEFAULT_PFMODPOSTFIX=\".so\"
|
@MACOSX_FALSE@@WIN32_FALSE@am__append_2 = -DMOO_DEFAULT_PFMODPOSTFIX=\".so\"
|
||||||
@ENABLE_STATIC_MODULE_TRUE@am__append_3 = -lmoo-stdio
|
@ENABLE_MOD_CON_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_3 = -lmoo-con
|
||||||
@ENABLE_STATIC_MODULE_FALSE@libmoo_la_DEPENDENCIES = \
|
@ENABLE_MOD_CON_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_4 = ../mod/libmoo-con.la
|
||||||
@ENABLE_STATIC_MODULE_FALSE@ $(am__DEPENDENCIES_1) \
|
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_5 = -lmoo-ffi
|
||||||
@ENABLE_STATIC_MODULE_FALSE@ $(am__DEPENDENCIES_1) \
|
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_6 = ../mod/libmoo-ffi.la
|
||||||
@ENABLE_STATIC_MODULE_FALSE@ $(am__DEPENDENCIES_1) \
|
@ENABLE_STATIC_MODULE_TRUE@am__append_7 = -lmoo-io
|
||||||
@ENABLE_STATIC_MODULE_FALSE@ $(am__DEPENDENCIES_1) \
|
@ENABLE_STATIC_MODULE_TRUE@am__append_8 = ../mod/libmoo-io.la
|
||||||
@ENABLE_STATIC_MODULE_FALSE@ $(am__DEPENDENCIES_1) \
|
@ENABLE_MOD_SCK_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_9 = -lmoo-sck
|
||||||
@ENABLE_STATIC_MODULE_FALSE@ $(am__DEPENDENCIES_1)
|
@ENABLE_MOD_SCK_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_10 = ../mod/libmoo-sck.la
|
||||||
@ENABLE_MOD_CON_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_4 = -lmoo-con
|
@ENABLE_STATIC_MODULE_TRUE@am__append_11 = -lmoo-stdio
|
||||||
@ENABLE_MOD_CON_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_5 = ../mod/libmoo-con.la
|
@ENABLE_STATIC_MODULE_TRUE@am__append_12 = ../mod/libmoo-stdio.la
|
||||||
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_6 = -lmoo-ffi
|
@ENABLE_MOD_X11_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_13 = -lmoo-x11
|
||||||
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_7 = ../mod/libmoo-ffi.la
|
@ENABLE_MOD_X11_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_14 = ../mod/libmoo-x11.la
|
||||||
@ENABLE_MOD_SCK_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_8 = -lmoo-sck
|
@WIN32_TRUE@am__append_15 = poll-msw.c poll-msw.h
|
||||||
@ENABLE_MOD_SCK_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_9 = ../mod/libmoo-sck.la
|
@ENABLE_LIBLTDL_TRUE@am__append_16 = $(LTDL_LIBS)
|
||||||
@ENABLE_MOD_X11_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_10 = -lmoo-x11
|
@ENABLE_LIBLTDL_FALSE@am__append_17 = $(DL_LIBS)
|
||||||
@ENABLE_MOD_X11_TRUE@@ENABLE_STATIC_MODULE_TRUE@am__append_11 = ../mod/libmoo-x11.la
|
@ENABLE_LIBUNWIND_TRUE@am__append_18 = $(UNWIND_LIBS)
|
||||||
@WIN32_TRUE@am__append_12 = poll-msw.c poll-msw.h
|
@WIN32_TRUE@am__append_19 = -lpsapi $(SOCKET_LIBS)
|
||||||
@ENABLE_LIBLTDL_TRUE@am__append_13 = $(LTDL_LIBS)
|
|
||||||
@ENABLE_LIBLTDL_FALSE@am__append_14 = $(DL_LIBS)
|
|
||||||
@ENABLE_LIBUNWIND_TRUE@am__append_15 = $(UNWIND_LIBS)
|
|
||||||
@WIN32_TRUE@am__append_16 = -lpsapi $(SOCKET_LIBS)
|
|
||||||
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 \
|
||||||
@ -501,23 +497,22 @@ libmoo_la_SOURCES = \
|
|||||||
libmoo_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
|
libmoo_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
|
||||||
libmoo_la_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
libmoo_la_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
||||||
libmoo_la_LIBADD = $(LIBADD_LIB_COMMON) $(am__append_3) \
|
libmoo_la_LIBADD = $(LIBADD_LIB_COMMON) $(am__append_3) \
|
||||||
$(am__append_4) $(am__append_6) $(am__append_8) \
|
$(am__append_5) $(am__append_7) $(am__append_9) \
|
||||||
$(am__append_10)
|
$(am__append_11) $(am__append_13)
|
||||||
@ENABLE_STATIC_MODULE_TRUE@libmoo_la_DEPENDENCIES = \
|
libmoo_la_DEPENDENCIES = $(am__append_4) $(am__append_6) \
|
||||||
@ENABLE_STATIC_MODULE_TRUE@ ../mod/libmoo-stdio.la \
|
$(am__append_8) $(am__append_10) $(am__append_12) \
|
||||||
@ENABLE_STATIC_MODULE_TRUE@ $(am__append_5) $(am__append_7) \
|
$(am__append_14)
|
||||||
@ENABLE_STATIC_MODULE_TRUE@ $(am__append_9) $(am__append_11)
|
|
||||||
|
|
||||||
##############################################################
|
##############################################################
|
||||||
# libmoox
|
# libmoox
|
||||||
##############################################################
|
##############################################################
|
||||||
libmoox_la_SOURCES = moo-opt.h moo-std.h opt-impl.h opt.c std.c \
|
libmoox_la_SOURCES = moo-opt.h moo-std.h opt-impl.h opt.c std.c \
|
||||||
$(am__append_12)
|
$(am__append_15)
|
||||||
libmoox_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON) $(CPPFLAGS_PFMOD)
|
libmoox_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON) $(CPPFLAGS_PFMOD)
|
||||||
libmoox_la_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
libmoox_la_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
||||||
libmoox_la_LIBADD = $(LIBADD_LIB_COMMON) -lmoo $(LIBM) $(PTHREAD_LIBS) \
|
libmoox_la_LIBADD = $(LIBADD_LIB_COMMON) -lmoo $(LIBM) $(PTHREAD_LIBS) \
|
||||||
$(am__append_13) $(am__append_14) $(am__append_15) \
|
$(am__append_16) $(am__append_17) $(am__append_18) \
|
||||||
$(am__append_16)
|
$(am__append_19)
|
||||||
libmoox_la_DEPENDENCIES = libmoo.la
|
libmoox_la_DEPENDENCIES = libmoo.la
|
||||||
all: moo-cfg.h
|
all: moo-cfg.h
|
||||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||||
|
@ -466,13 +466,19 @@ void moo_freemem (moo_t* moo, void* ptr)
|
|||||||
#if defined(MOO_ENABLE_MOD_CON)
|
#if defined(MOO_ENABLE_MOD_CON)
|
||||||
# include "../mod/_con.h"
|
# include "../mod/_con.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(MOO_ENABLE_MOD_FFI)
|
#if defined(MOO_ENABLE_MOD_FFI)
|
||||||
# include "../mod/_ffi.h"
|
# include "../mod/_ffi.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "../mod/_io.h"
|
||||||
|
|
||||||
#if defined(MOO_ENABLE_MOD_SCK)
|
#if defined(MOO_ENABLE_MOD_SCK)
|
||||||
# include "../mod/_sck.h"
|
# include "../mod/_sck.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "../mod/_stdio.h"
|
#include "../mod/_stdio.h"
|
||||||
|
|
||||||
#if defined(MOO_ENABLE_MOD_X11)
|
#if defined(MOO_ENABLE_MOD_X11)
|
||||||
# include "../mod/_x11.h"
|
# include "../mod/_x11.h"
|
||||||
#endif
|
#endif
|
||||||
@ -490,6 +496,8 @@ static_modtab[] =
|
|||||||
#if defined(MOO_ENABLE_MOD_FFI)
|
#if defined(MOO_ENABLE_MOD_FFI)
|
||||||
{ "ffi", moo_mod_ffi },
|
{ "ffi", moo_mod_ffi },
|
||||||
#endif
|
#endif
|
||||||
|
{ "io", moo_mod_io },
|
||||||
|
{ "io.file", moo_mod_io_file },
|
||||||
#if defined(MOO_ENABLE_MOD_SCK)
|
#if defined(MOO_ENABLE_MOD_SCK)
|
||||||
{ "sck", moo_mod_sck },
|
{ "sck", moo_mod_sck },
|
||||||
{ "sck.addr", moo_mod_sck_addr },
|
{ "sck.addr", moo_mod_sck_addr },
|
||||||
@ -500,7 +508,7 @@ static_modtab[] =
|
|||||||
/*{ "x11.win", moo_mod_x11_win },*/
|
/*{ "x11.win", moo_mod_x11_win },*/
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
#endif
|
#endif /* MOO_ENABLE_STATIC_MODULE */
|
||||||
|
|
||||||
moo_mod_data_t* moo_openmod (moo_t* moo, const moo_ooch_t* name, moo_oow_t namelen, int hints)
|
moo_mod_data_t* moo_openmod (moo_t* moo, const moo_ooch_t* name, moo_oow_t namelen, int hints)
|
||||||
{
|
{
|
||||||
|
@ -27,6 +27,8 @@ if ENABLE_MOD_FFI
|
|||||||
noinst_LTLIBRARIES += libmoo-ffi.la
|
noinst_LTLIBRARIES += libmoo-ffi.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES += libmoo-io.la
|
||||||
|
|
||||||
if ENABLE_MOD_SCK
|
if ENABLE_MOD_SCK
|
||||||
noinst_LTLIBRARIES += libmoo-sck.la
|
noinst_LTLIBRARIES += libmoo-sck.la
|
||||||
endif
|
endif
|
||||||
@ -56,6 +58,8 @@ if ENABLE_MOD_FFI
|
|||||||
pkgmodexec_LTLIBRARIES += libmoo-ffi.la
|
pkgmodexec_LTLIBRARIES += libmoo-ffi.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
pkgmodexec_LTLIBRARIES += libmoo-io.la
|
||||||
|
|
||||||
if ENABLE_MOD_SCK
|
if ENABLE_MOD_SCK
|
||||||
pkgmodexec_LTLIBRARIES += libmoo-sck.la
|
pkgmodexec_LTLIBRARIES += libmoo-sck.la
|
||||||
endif
|
endif
|
||||||
@ -82,6 +86,11 @@ libmoo_ffi_la_LDFLAGS = $(LDFLAGS_COMMON)
|
|||||||
libmoo_ffi_la_LIBADD = $(LIBADD_COMMON) $(DYNCALL_LIBS) $(FFI_LIBS)
|
libmoo_ffi_la_LIBADD = $(LIBADD_COMMON) $(DYNCALL_LIBS) $(FFI_LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
libmoo_io_la_SOURCES = io.c io-file.c _io.h
|
||||||
|
libmoo_io_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
|
libmoo_io_la_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
|
libmoo_io_la_LIBADD = $(LIBADD_COMMON)
|
||||||
|
|
||||||
if ENABLE_MOD_SCK
|
if ENABLE_MOD_SCK
|
||||||
libmoo_sck_la_SOURCES = sck.c sck-addr.c _sck.h
|
libmoo_sck_la_SOURCES = sck.c sck-addr.c _sck.h
|
||||||
libmoo_sck_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
libmoo_sck_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
|
@ -172,6 +172,15 @@ libmoo_ffi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
|||||||
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_FALSE@ -rpath \
|
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_FALSE@ -rpath \
|
||||||
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_FALSE@ $(pkgmodexecdir)
|
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_FALSE@ $(pkgmodexecdir)
|
||||||
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_TRUE@am_libmoo_ffi_la_rpath =
|
@ENABLE_MOD_FFI_TRUE@@ENABLE_STATIC_MODULE_TRUE@am_libmoo_ffi_la_rpath =
|
||||||
|
libmoo_io_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||||
|
am_libmoo_io_la_OBJECTS = libmoo_io_la-io.lo libmoo_io_la-io-file.lo
|
||||||
|
libmoo_io_la_OBJECTS = $(am_libmoo_io_la_OBJECTS)
|
||||||
|
libmoo_io_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||||
|
$(libmoo_io_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
@ENABLE_STATIC_MODULE_FALSE@am_libmoo_io_la_rpath = -rpath \
|
||||||
|
@ENABLE_STATIC_MODULE_FALSE@ $(pkgmodexecdir)
|
||||||
|
@ENABLE_STATIC_MODULE_TRUE@am_libmoo_io_la_rpath =
|
||||||
@ENABLE_MOD_SCK_TRUE@libmoo_sck_la_DEPENDENCIES = \
|
@ENABLE_MOD_SCK_TRUE@libmoo_sck_la_DEPENDENCIES = \
|
||||||
@ENABLE_MOD_SCK_TRUE@ $(am__DEPENDENCIES_1) \
|
@ENABLE_MOD_SCK_TRUE@ $(am__DEPENDENCIES_1) \
|
||||||
@ENABLE_MOD_SCK_TRUE@ $(am__DEPENDENCIES_1)
|
@ENABLE_MOD_SCK_TRUE@ $(am__DEPENDENCIES_1)
|
||||||
@ -225,6 +234,8 @@ depcomp = $(SHELL) $(top_srcdir)/ac/depcomp
|
|||||||
am__maybe_remake_depfiles = depfiles
|
am__maybe_remake_depfiles = depfiles
|
||||||
am__depfiles_remade = ./$(DEPDIR)/libmoo_con_la-_con.Plo \
|
am__depfiles_remade = ./$(DEPDIR)/libmoo_con_la-_con.Plo \
|
||||||
./$(DEPDIR)/libmoo_ffi_la-ffi.Plo \
|
./$(DEPDIR)/libmoo_ffi_la-ffi.Plo \
|
||||||
|
./$(DEPDIR)/libmoo_io_la-io-file.Plo \
|
||||||
|
./$(DEPDIR)/libmoo_io_la-io.Plo \
|
||||||
./$(DEPDIR)/libmoo_sck_la-sck-addr.Plo \
|
./$(DEPDIR)/libmoo_sck_la-sck-addr.Plo \
|
||||||
./$(DEPDIR)/libmoo_sck_la-sck.Plo \
|
./$(DEPDIR)/libmoo_sck_la-sck.Plo \
|
||||||
./$(DEPDIR)/libmoo_stdio_la-stdio.Plo \
|
./$(DEPDIR)/libmoo_stdio_la-stdio.Plo \
|
||||||
@ -249,10 +260,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 = $(libmoo_con_la_SOURCES) $(libmoo_ffi_la_SOURCES) \
|
SOURCES = $(libmoo_con_la_SOURCES) $(libmoo_ffi_la_SOURCES) \
|
||||||
$(libmoo_sck_la_SOURCES) $(libmoo_stdio_la_SOURCES) \
|
$(libmoo_io_la_SOURCES) $(libmoo_sck_la_SOURCES) \
|
||||||
$(libmoo_x11_la_SOURCES)
|
$(libmoo_stdio_la_SOURCES) $(libmoo_x11_la_SOURCES)
|
||||||
DIST_SOURCES = $(am__libmoo_con_la_SOURCES_DIST) \
|
DIST_SOURCES = $(am__libmoo_con_la_SOURCES_DIST) \
|
||||||
$(am__libmoo_ffi_la_SOURCES_DIST) \
|
$(am__libmoo_ffi_la_SOURCES_DIST) $(libmoo_io_la_SOURCES) \
|
||||||
$(am__libmoo_sck_la_SOURCES_DIST) $(libmoo_stdio_la_SOURCES) \
|
$(am__libmoo_sck_la_SOURCES_DIST) $(libmoo_stdio_la_SOURCES) \
|
||||||
$(am__libmoo_x11_la_SOURCES_DIST)
|
$(am__libmoo_x11_la_SOURCES_DIST)
|
||||||
am__can_run_installinfo = \
|
am__can_run_installinfo = \
|
||||||
@ -456,12 +467,14 @@ CPPFLAGS_COMMON = \
|
|||||||
@ENABLE_STATIC_MODULE_FALSE@LIBADD_COMMON = -lmoo
|
@ENABLE_STATIC_MODULE_FALSE@LIBADD_COMMON = -lmoo
|
||||||
@ENABLE_STATIC_MODULE_TRUE@LIBADD_COMMON =
|
@ENABLE_STATIC_MODULE_TRUE@LIBADD_COMMON =
|
||||||
@ENABLE_STATIC_MODULE_TRUE@noinst_LTLIBRARIES = $(am__append_1) \
|
@ENABLE_STATIC_MODULE_TRUE@noinst_LTLIBRARIES = $(am__append_1) \
|
||||||
@ENABLE_STATIC_MODULE_TRUE@ $(am__append_2) $(am__append_3) \
|
@ENABLE_STATIC_MODULE_TRUE@ $(am__append_2) libmoo-io.la \
|
||||||
@ENABLE_STATIC_MODULE_TRUE@ libmoo-stdio.la $(am__append_4)
|
@ENABLE_STATIC_MODULE_TRUE@ $(am__append_3) libmoo-stdio.la \
|
||||||
|
@ENABLE_STATIC_MODULE_TRUE@ $(am__append_4)
|
||||||
@ENABLE_STATIC_MODULE_FALSE@pkgmodexecdir = $(libdir)
|
@ENABLE_STATIC_MODULE_FALSE@pkgmodexecdir = $(libdir)
|
||||||
@ENABLE_STATIC_MODULE_FALSE@pkgmodexec_LTLIBRARIES = $(am__append_5) \
|
@ENABLE_STATIC_MODULE_FALSE@pkgmodexec_LTLIBRARIES = $(am__append_5) \
|
||||||
@ENABLE_STATIC_MODULE_FALSE@ $(am__append_6) $(am__append_7) \
|
@ENABLE_STATIC_MODULE_FALSE@ $(am__append_6) libmoo-io.la \
|
||||||
@ENABLE_STATIC_MODULE_FALSE@ libmoo-stdio.la $(am__append_8)
|
@ENABLE_STATIC_MODULE_FALSE@ $(am__append_7) libmoo-stdio.la \
|
||||||
|
@ENABLE_STATIC_MODULE_FALSE@ $(am__append_8)
|
||||||
@ENABLE_MOD_CON_TRUE@libmoo_con_la_SOURCES = _con.c _con.h
|
@ENABLE_MOD_CON_TRUE@libmoo_con_la_SOURCES = _con.c _con.h
|
||||||
@ENABLE_MOD_CON_TRUE@libmoo_con_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
@ENABLE_MOD_CON_TRUE@libmoo_con_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
@ENABLE_MOD_CON_TRUE@libmoo_con_la_LDFLAGS = $(LDFLAGS_COMMON)
|
@ENABLE_MOD_CON_TRUE@libmoo_con_la_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
@ -470,6 +483,10 @@ CPPFLAGS_COMMON = \
|
|||||||
@ENABLE_MOD_FFI_TRUE@libmoo_ffi_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
@ENABLE_MOD_FFI_TRUE@libmoo_ffi_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
@ENABLE_MOD_FFI_TRUE@libmoo_ffi_la_LDFLAGS = $(LDFLAGS_COMMON)
|
@ENABLE_MOD_FFI_TRUE@libmoo_ffi_la_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
@ENABLE_MOD_FFI_TRUE@libmoo_ffi_la_LIBADD = $(LIBADD_COMMON) $(DYNCALL_LIBS) $(FFI_LIBS)
|
@ENABLE_MOD_FFI_TRUE@libmoo_ffi_la_LIBADD = $(LIBADD_COMMON) $(DYNCALL_LIBS) $(FFI_LIBS)
|
||||||
|
libmoo_io_la_SOURCES = io.c io-file.c _io.h
|
||||||
|
libmoo_io_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
|
libmoo_io_la_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
|
libmoo_io_la_LIBADD = $(LIBADD_COMMON)
|
||||||
@ENABLE_MOD_SCK_TRUE@libmoo_sck_la_SOURCES = sck.c sck-addr.c _sck.h
|
@ENABLE_MOD_SCK_TRUE@libmoo_sck_la_SOURCES = sck.c sck-addr.c _sck.h
|
||||||
@ENABLE_MOD_SCK_TRUE@libmoo_sck_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
@ENABLE_MOD_SCK_TRUE@libmoo_sck_la_CPPFLAGS = $(CPPFLAGS_COMMON)
|
||||||
@ENABLE_MOD_SCK_TRUE@libmoo_sck_la_LDFLAGS = $(LDFLAGS_COMMON)
|
@ENABLE_MOD_SCK_TRUE@libmoo_sck_la_LDFLAGS = $(LDFLAGS_COMMON)
|
||||||
@ -568,6 +585,9 @@ libmoo-con.la: $(libmoo_con_la_OBJECTS) $(libmoo_con_la_DEPENDENCIES) $(EXTRA_li
|
|||||||
libmoo-ffi.la: $(libmoo_ffi_la_OBJECTS) $(libmoo_ffi_la_DEPENDENCIES) $(EXTRA_libmoo_ffi_la_DEPENDENCIES)
|
libmoo-ffi.la: $(libmoo_ffi_la_OBJECTS) $(libmoo_ffi_la_DEPENDENCIES) $(EXTRA_libmoo_ffi_la_DEPENDENCIES)
|
||||||
$(AM_V_CCLD)$(libmoo_ffi_la_LINK) $(am_libmoo_ffi_la_rpath) $(libmoo_ffi_la_OBJECTS) $(libmoo_ffi_la_LIBADD) $(LIBS)
|
$(AM_V_CCLD)$(libmoo_ffi_la_LINK) $(am_libmoo_ffi_la_rpath) $(libmoo_ffi_la_OBJECTS) $(libmoo_ffi_la_LIBADD) $(LIBS)
|
||||||
|
|
||||||
|
libmoo-io.la: $(libmoo_io_la_OBJECTS) $(libmoo_io_la_DEPENDENCIES) $(EXTRA_libmoo_io_la_DEPENDENCIES)
|
||||||
|
$(AM_V_CCLD)$(libmoo_io_la_LINK) $(am_libmoo_io_la_rpath) $(libmoo_io_la_OBJECTS) $(libmoo_io_la_LIBADD) $(LIBS)
|
||||||
|
|
||||||
libmoo-sck.la: $(libmoo_sck_la_OBJECTS) $(libmoo_sck_la_DEPENDENCIES) $(EXTRA_libmoo_sck_la_DEPENDENCIES)
|
libmoo-sck.la: $(libmoo_sck_la_OBJECTS) $(libmoo_sck_la_DEPENDENCIES) $(EXTRA_libmoo_sck_la_DEPENDENCIES)
|
||||||
$(AM_V_CCLD)$(libmoo_sck_la_LINK) $(am_libmoo_sck_la_rpath) $(libmoo_sck_la_OBJECTS) $(libmoo_sck_la_LIBADD) $(LIBS)
|
$(AM_V_CCLD)$(libmoo_sck_la_LINK) $(am_libmoo_sck_la_rpath) $(libmoo_sck_la_OBJECTS) $(libmoo_sck_la_LIBADD) $(LIBS)
|
||||||
|
|
||||||
@ -585,6 +605,8 @@ distclean-compile:
|
|||||||
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_con_la-_con.Plo@am__quote@ # am--include-marker
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_con_la-_con.Plo@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_ffi_la-ffi.Plo@am__quote@ # am--include-marker
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_ffi_la-ffi.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_io_la-io-file.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_io_la-io.Plo@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_sck_la-sck-addr.Plo@am__quote@ # am--include-marker
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_sck_la-sck-addr.Plo@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_sck_la-sck.Plo@am__quote@ # am--include-marker
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_sck_la-sck.Plo@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_stdio_la-stdio.Plo@am__quote@ # am--include-marker
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmoo_stdio_la-stdio.Plo@am__quote@ # am--include-marker
|
||||||
@ -634,6 +656,20 @@ libmoo_ffi_la-ffi.lo: ffi.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@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmoo_ffi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmoo_ffi_la-ffi.lo `test -f 'ffi.c' || echo '$(srcdir)/'`ffi.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) $(libmoo_ffi_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmoo_ffi_la-ffi.lo `test -f 'ffi.c' || echo '$(srcdir)/'`ffi.c
|
||||||
|
|
||||||
|
libmoo_io_la-io.lo: io.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmoo_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmoo_io_la-io.lo -MD -MP -MF $(DEPDIR)/libmoo_io_la-io.Tpo -c -o libmoo_io_la-io.lo `test -f 'io.c' || echo '$(srcdir)/'`io.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmoo_io_la-io.Tpo $(DEPDIR)/libmoo_io_la-io.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io.c' object='libmoo_io_la-io.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) $(libmoo_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmoo_io_la-io.lo `test -f 'io.c' || echo '$(srcdir)/'`io.c
|
||||||
|
|
||||||
|
libmoo_io_la-io-file.lo: io-file.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmoo_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmoo_io_la-io-file.lo -MD -MP -MF $(DEPDIR)/libmoo_io_la-io-file.Tpo -c -o libmoo_io_la-io-file.lo `test -f 'io-file.c' || echo '$(srcdir)/'`io-file.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmoo_io_la-io-file.Tpo $(DEPDIR)/libmoo_io_la-io-file.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='io-file.c' object='libmoo_io_la-io-file.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) $(libmoo_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libmoo_io_la-io-file.lo `test -f 'io-file.c' || echo '$(srcdir)/'`io-file.c
|
||||||
|
|
||||||
libmoo_sck_la-sck.lo: sck.c
|
libmoo_sck_la-sck.lo: sck.c
|
||||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmoo_sck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmoo_sck_la-sck.lo -MD -MP -MF $(DEPDIR)/libmoo_sck_la-sck.Tpo -c -o libmoo_sck_la-sck.lo `test -f 'sck.c' || echo '$(srcdir)/'`sck.c
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmoo_sck_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libmoo_sck_la-sck.lo -MD -MP -MF $(DEPDIR)/libmoo_sck_la-sck.Tpo -c -o libmoo_sck_la-sck.lo `test -f 'sck.c' || echo '$(srcdir)/'`sck.c
|
||||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmoo_sck_la-sck.Tpo $(DEPDIR)/libmoo_sck_la-sck.Plo
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libmoo_sck_la-sck.Tpo $(DEPDIR)/libmoo_sck_la-sck.Plo
|
||||||
@ -798,6 +834,8 @@ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
|
|||||||
distclean: distclean-am
|
distclean: distclean-am
|
||||||
-rm -f ./$(DEPDIR)/libmoo_con_la-_con.Plo
|
-rm -f ./$(DEPDIR)/libmoo_con_la-_con.Plo
|
||||||
-rm -f ./$(DEPDIR)/libmoo_ffi_la-ffi.Plo
|
-rm -f ./$(DEPDIR)/libmoo_ffi_la-ffi.Plo
|
||||||
|
-rm -f ./$(DEPDIR)/libmoo_io_la-io-file.Plo
|
||||||
|
-rm -f ./$(DEPDIR)/libmoo_io_la-io.Plo
|
||||||
-rm -f ./$(DEPDIR)/libmoo_sck_la-sck-addr.Plo
|
-rm -f ./$(DEPDIR)/libmoo_sck_la-sck-addr.Plo
|
||||||
-rm -f ./$(DEPDIR)/libmoo_sck_la-sck.Plo
|
-rm -f ./$(DEPDIR)/libmoo_sck_la-sck.Plo
|
||||||
-rm -f ./$(DEPDIR)/libmoo_stdio_la-stdio.Plo
|
-rm -f ./$(DEPDIR)/libmoo_stdio_la-stdio.Plo
|
||||||
@ -849,6 +887,8 @@ installcheck-am:
|
|||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
-rm -f ./$(DEPDIR)/libmoo_con_la-_con.Plo
|
-rm -f ./$(DEPDIR)/libmoo_con_la-_con.Plo
|
||||||
-rm -f ./$(DEPDIR)/libmoo_ffi_la-ffi.Plo
|
-rm -f ./$(DEPDIR)/libmoo_ffi_la-ffi.Plo
|
||||||
|
-rm -f ./$(DEPDIR)/libmoo_io_la-io-file.Plo
|
||||||
|
-rm -f ./$(DEPDIR)/libmoo_io_la-io.Plo
|
||||||
-rm -f ./$(DEPDIR)/libmoo_sck_la-sck-addr.Plo
|
-rm -f ./$(DEPDIR)/libmoo_sck_la-sck-addr.Plo
|
||||||
-rm -f ./$(DEPDIR)/libmoo_sck_la-sck.Plo
|
-rm -f ./$(DEPDIR)/libmoo_sck_la-sck.Plo
|
||||||
-rm -f ./$(DEPDIR)/libmoo_stdio_la-stdio.Plo
|
-rm -f ./$(DEPDIR)/libmoo_stdio_la-stdio.Plo
|
||||||
|
@ -33,7 +33,7 @@ typedef struct io_t* oop_io_t;
|
|||||||
struct io_t
|
struct io_t
|
||||||
{
|
{
|
||||||
MOO_OBJ_HEADER;
|
MOO_OBJ_HEADER;
|
||||||
moo_oop_t handle; /* SmallInteger */
|
moo_oop_t handle; /* SmallInteger or SmallPointer/LargePointer depending on operating systems */
|
||||||
/* there are more fields in the actual object */
|
/* there are more fields in the actual object */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -42,8 +42,7 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
MOO_EXPORT int moo_mod_io (moo_t* moo, moo_mod_t* mod);
|
MOO_EXPORT int moo_mod_io (moo_t* moo, moo_mod_t* mod);
|
||||||
/*MOO_EXPORT int moo_mod_io_file (moo_t* moo, moo_mod_t* mod);*/
|
MOO_EXPORT int moo_mod_io_file (moo_t* moo, moo_mod_t* mod);
|
||||||
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
|
@ -1191,15 +1191,6 @@ softfail:
|
|||||||
|
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
typedef struct fnctab_t fnctab_t;
|
|
||||||
struct fnctab_t
|
|
||||||
{
|
|
||||||
moo_method_type_t type;
|
|
||||||
moo_ooch_t mthname[15];
|
|
||||||
int variadic;
|
|
||||||
moo_pfimpl_t handler;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define C MOO_METHOD_CLASS
|
#define C MOO_METHOD_CLASS
|
||||||
#define I MOO_METHOD_INSTANCE
|
#define I MOO_METHOD_INSTANCE
|
||||||
|
|
||||||
|
150
moo/mod/io-file.c
Normal file
150
moo/mod/io-file.c
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
Copyright (c) 2014-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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "_io.h"
|
||||||
|
#include "../lib/moo-prv.h"
|
||||||
|
#include "../lib/moo-utl.h"
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
static moo_pfrc_t pf_open_file (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
||||||
|
{
|
||||||
|
oop_io_t io;
|
||||||
|
moo_oop_t path, flags, mode;
|
||||||
|
int fd = -1, fl;
|
||||||
|
moo_bch_t* tmp;
|
||||||
|
|
||||||
|
io = (oop_io_t)MOO_STACK_GETRCV(moo, nargs);
|
||||||
|
MOO_PF_CHECK_RCV (moo,
|
||||||
|
MOO_OOP_IS_POINTER(io) &&
|
||||||
|
MOO_OBJ_BYTESOF(io) >= (MOO_SIZEOF(*io) - MOO_SIZEOF(moo_obj_t))
|
||||||
|
);
|
||||||
|
|
||||||
|
if (nargs == 1)
|
||||||
|
{
|
||||||
|
/* special form of opening. the socket handle is given */
|
||||||
|
io->handle = MOO_STACK_GETARG(moo, nargs, 0);
|
||||||
|
MOO_STACK_SETRETTORCV (moo, nargs);
|
||||||
|
return MOO_PF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
path = MOO_STACK_GETARG(moo, nargs, 0);
|
||||||
|
flags = MOO_STACK_GETARG(moo, nargs, 1);
|
||||||
|
mode = (nargs < 3)? MOO_SMOOI_TO_OOP(0644): MOO_STACK_GETARG(moo, nargs, 2);
|
||||||
|
|
||||||
|
MOO_PF_CHECK_ARGS (moo, nargs, MOO_OBJ_IS_CHAR_POINTER(path) && MOO_OOP_IS_SMOOI(flags) && MOO_OOP_IS_SMOOI(mode));
|
||||||
|
MOO_PF_CHECK_ARGS (moo, nargs, moo_count_oocstr(MOO_OBJ_GET_CHAR_SLOT(path)) == MOO_OBJ_GET_SIZE(path));
|
||||||
|
|
||||||
|
#if defined(MOO_OOCH_IS_UCH)
|
||||||
|
tmp = moo_dupootobcstr(moo, MOO_OBJ_GET_CHAR_SLOT(path), MOO_NULL);
|
||||||
|
if (!tmp) goto oops;
|
||||||
|
fd = open(tmp, MOO_OOP_TO_SMOOI(flags), MOO_OOP_TO_SMOOI(mode));
|
||||||
|
moo_freemem (moo, tmp);
|
||||||
|
#else
|
||||||
|
fd = open(MOO_OBJ_GET_CHAR_SLOT(path), MOO_OOP_TO_SMOOI(flags), MOO_OOP_TO_SMOOI(mode));
|
||||||
|
#endif
|
||||||
|
if (fd == -1)
|
||||||
|
{
|
||||||
|
moo_seterrwithsyserr (moo, 0, errno);
|
||||||
|
goto oops;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!MOO_IN_SMOOI_RANGE(fd))
|
||||||
|
{
|
||||||
|
/* the io descriptor is too big to be represented as a small integer */
|
||||||
|
moo_seterrbfmt (moo, MOO_ERANGE, "IO handle %d not in the permitted range", fd);
|
||||||
|
goto oops;
|
||||||
|
}
|
||||||
|
|
||||||
|
fl = fcntl(fd, F_GETFL, 0);
|
||||||
|
if (fl == -1)
|
||||||
|
{
|
||||||
|
fcntl_failure:
|
||||||
|
moo_seterrwithsyserr (moo, 0, errno);
|
||||||
|
goto oops;
|
||||||
|
}
|
||||||
|
|
||||||
|
fl |= O_NONBLOCK;
|
||||||
|
#if defined(O_CLOEXEC)
|
||||||
|
fl |= O_CLOEXEC;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fcntl(fd, F_SETFL, fl) == -1) goto fcntl_failure;
|
||||||
|
|
||||||
|
io->handle = MOO_SMOOI_TO_OOP(fd);
|
||||||
|
MOO_STACK_SETRETTORCV (moo, nargs);
|
||||||
|
|
||||||
|
return MOO_PF_SUCCESS;
|
||||||
|
|
||||||
|
oops:
|
||||||
|
if (fd >= 0) close (fd);
|
||||||
|
return MOO_PF_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
|
#define C MOO_METHOD_CLASS
|
||||||
|
#define I MOO_METHOD_INSTANCE
|
||||||
|
|
||||||
|
#define MA MOO_TYPE_MAX(moo_oow_t)
|
||||||
|
|
||||||
|
static moo_pfinfo_t pfinfos[] =
|
||||||
|
{
|
||||||
|
{ I, { 'o','p','e','n',':','f','l','a','g','s',':','\0' }, 0, { pf_open_file, 2, 2 } },
|
||||||
|
{ I, { 'o','p','e','n',':','f','l','a','g','s',':','m','o','d','e',':','\0' }, 0, { pf_open_file, 3, 3 } },
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
|
static int import (moo_t* moo, moo_mod_t* mod, moo_oop_class_t _class)
|
||||||
|
{
|
||||||
|
/*if (moo_setclasstrsize(moo, _class, MOO_SIZEOF(io_t), MOO_NULL) <= -1) return -1;*/
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static moo_pfbase_t* query (moo_t* moo, moo_mod_t* mod, const moo_ooch_t* name, moo_oow_t namelen)
|
||||||
|
{
|
||||||
|
return moo_findpfbase (moo, pfinfos, MOO_COUNTOF(pfinfos), name, namelen);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void unload (moo_t* moo, moo_mod_t* mod)
|
||||||
|
{
|
||||||
|
/* TODO: anything? close open open dll handles? For that, pf_open must store the value it returns to mod->ctx or somewhere..*/
|
||||||
|
}
|
||||||
|
|
||||||
|
int moo_mod_io_file (moo_t* moo, moo_mod_t* mod)
|
||||||
|
{
|
||||||
|
mod->import = import;
|
||||||
|
mod->query = query;
|
||||||
|
mod->unload = unload;
|
||||||
|
mod->ctx = MOO_NULL;
|
||||||
|
return 0;
|
||||||
|
}
|
174
moo/mod/io.c
174
moo/mod/io.c
@ -31,12 +31,6 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
typedef struct io_modctx_t io_modctx_t;
|
|
||||||
struct io_modctx_t
|
|
||||||
{
|
|
||||||
moo_oop_class_t io_class;
|
|
||||||
};
|
|
||||||
|
|
||||||
static moo_pfrc_t pf_close_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
static moo_pfrc_t pf_close_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
||||||
{
|
{
|
||||||
oop_io_t io;
|
oop_io_t io;
|
||||||
@ -53,6 +47,7 @@ static moo_pfrc_t pf_close_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|||||||
if (fd >= 0)
|
if (fd >= 0)
|
||||||
{
|
{
|
||||||
moo_releaseiohandle (moo, MOO_OOP_TO_SMOOI(io->handle));
|
moo_releaseiohandle (moo, MOO_OOP_TO_SMOOI(io->handle));
|
||||||
|
/* TODO: win32 CloseHandle if handle is HANDLE */
|
||||||
if (close(MOO_OOP_TO_SMOOI(io->handle)) == -1)
|
if (close(MOO_OOP_TO_SMOOI(io->handle)) == -1)
|
||||||
{
|
{
|
||||||
moo_seterrwithsyserr (moo, 0, errno);
|
moo_seterrwithsyserr (moo, 0, errno);
|
||||||
@ -70,8 +65,7 @@ static moo_pfrc_t pf_close_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|||||||
return MOO_PF_FAILURE;
|
return MOO_PF_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
static moo_pfrc_t pf_read_bytes (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
||||||
static moo_pfrc_t pf_read_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|
||||||
{
|
{
|
||||||
oop_io_t io;
|
oop_io_t io;
|
||||||
moo_oop_byte_t buf;
|
moo_oop_byte_t buf;
|
||||||
@ -89,7 +83,80 @@ static moo_pfrc_t pf_read_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|||||||
fd = MOO_OOP_TO_SMOOI(io->handle);
|
fd = MOO_OOP_TO_SMOOI(io->handle);
|
||||||
if (fd <= -1)
|
if (fd <= -1)
|
||||||
{
|
{
|
||||||
moo_seterrbfmt (moo, MOO_EINVAL, "bad socket handle - %d", fd);
|
moo_seterrbfmt (moo, MOO_EINVAL, "bad IO handle - %d", fd);
|
||||||
|
return MOO_PF_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf = (moo_oop_byte_t)MOO_STACK_GETARG (moo, nargs, 0);
|
||||||
|
if (!MOO_OBJ_IS_BYTE_POINTER(buf))
|
||||||
|
{
|
||||||
|
moo_seterrbfmt (moo, MOO_EINVAL, "buffer not a byte array - %O", buf);
|
||||||
|
return MOO_PF_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
offset = 0;
|
||||||
|
maxlen = MOO_OBJ_GET_SIZE(buf);
|
||||||
|
length = maxlen;
|
||||||
|
|
||||||
|
if (nargs >= 2)
|
||||||
|
{
|
||||||
|
moo_oop_t tmp;
|
||||||
|
|
||||||
|
tmp = MOO_STACK_GETARG(moo, nargs, 1);
|
||||||
|
if (moo_inttooow(moo, tmp, &offset) <= 0)
|
||||||
|
{
|
||||||
|
moo_seterrbfmt (moo, MOO_EINVAL, "invalid offset - %O", tmp);
|
||||||
|
return MOO_PF_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nargs >= 3)
|
||||||
|
{
|
||||||
|
tmp = MOO_STACK_GETARG(moo, nargs, 2);
|
||||||
|
if (moo_inttooow(moo, tmp, &length) <= 0)
|
||||||
|
{
|
||||||
|
moo_seterrbfmt (moo, MOO_EINVAL, "invalid length - %O", tmp);
|
||||||
|
return MOO_PF_FAILURE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (offset >= maxlen) offset = maxlen - 1;
|
||||||
|
if (length > maxlen - offset) length = maxlen - offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
n = read(fd, MOO_OBJ_GET_BYTE_PTR(buf, offset), length);
|
||||||
|
if (n <= -1 && errno != EWOULDBLOCK && errno != EAGAIN)
|
||||||
|
{
|
||||||
|
moo_seterrwithsyserr (moo, 0, errno);
|
||||||
|
return MOO_PF_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* [NOTE] on EWOULDBLOCK or EGAIN, -1 is returned */
|
||||||
|
|
||||||
|
MOO_ASSERT (moo, MOO_IN_SMOOI_RANGE(n));
|
||||||
|
|
||||||
|
MOO_STACK_SETRET (moo, nargs, MOO_SMOOI_TO_OOP(n));
|
||||||
|
return MOO_PF_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static moo_pfrc_t pf_write_bytes (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
||||||
|
{
|
||||||
|
oop_io_t io;
|
||||||
|
moo_oop_byte_t buf;
|
||||||
|
moo_oow_t offset, length, maxlen;
|
||||||
|
int fd;
|
||||||
|
ssize_t n;
|
||||||
|
|
||||||
|
io = (oop_io_t)MOO_STACK_GETRCV(moo, nargs);
|
||||||
|
MOO_PF_CHECK_RCV (moo,
|
||||||
|
MOO_OOP_IS_POINTER(io) &&
|
||||||
|
MOO_OBJ_BYTESOF(io) >= (MOO_SIZEOF(*io) - MOO_SIZEOF(moo_obj_t)) &&
|
||||||
|
MOO_OOP_IS_SMOOI(io->handle)
|
||||||
|
);
|
||||||
|
|
||||||
|
fd = MOO_OOP_TO_SMOOI(io->handle);
|
||||||
|
if (fd <= -1)
|
||||||
|
{
|
||||||
|
moo_seterrbfmt (moo, MOO_EINVAL, "bad IO handle - %d", fd);
|
||||||
return MOO_PF_FAILURE;
|
return MOO_PF_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,80 +196,7 @@ static moo_pfrc_t pf_read_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|||||||
if (length > maxlen - offset) length = maxlen - offset;
|
if (length > maxlen - offset) length = maxlen - offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = recv(fd, MOO_OBJ_GET_BYTE_PTR(buf, offset), length, 0);
|
n = write(fd, MOO_OBJ_GET_BYTE_PTR(buf, offset), length);
|
||||||
if (n <= -1 && errno != EWOULDBLOCK && errno != EAGAIN)
|
|
||||||
{
|
|
||||||
moo_seterrwithsyserr (moo, 0, errno);
|
|
||||||
return MOO_PF_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* [NOTE] on EWOULDBLOCK or EGAIN, -1 is returned */
|
|
||||||
|
|
||||||
MOO_ASSERT (moo, MOO_IN_SMOOI_RANGE(n));
|
|
||||||
|
|
||||||
MOO_STACK_SETRET (moo, nargs, MOO_SMOOI_TO_OOP(n));
|
|
||||||
return MOO_PF_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static moo_pfrc_t pf_write_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|
||||||
{
|
|
||||||
oop_io_t io;
|
|
||||||
moo_oop_byte_t buf;
|
|
||||||
moo_oow_t offset, length, maxlen;
|
|
||||||
int fd;
|
|
||||||
ssize_t n;
|
|
||||||
|
|
||||||
io = (oop_io_t)MOO_STACK_GETRCV(moo, nargs);
|
|
||||||
MOO_PF_CHECK_RCV (moo,
|
|
||||||
MOO_OOP_IS_POINTER(io) &&
|
|
||||||
MOO_OBJ_BYTESOF(io) >= (MOO_SIZEOF(*io) - MOO_SIZEOF(moo_obj_t)) &&
|
|
||||||
MOO_OOP_IS_SMOOI(io->handle)
|
|
||||||
);
|
|
||||||
|
|
||||||
fd = MOO_OOP_TO_SMOOI(io->handle);
|
|
||||||
if (fd <= -1)
|
|
||||||
{
|
|
||||||
moo_seterrbfmt (moo, MOO_EINVAL, "bad socket handle - %d", fd);
|
|
||||||
return MOO_PF_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
buf = (moo_oop_byte_t)MOO_STACK_GETARG (moo, nargs, 0);
|
|
||||||
if (!MOO_OBJ_IS_BYTE_POINTER(buf))
|
|
||||||
{
|
|
||||||
moo_seterrbfmt (moo, MOO_EINVAL, "buffer not a byte array - %O", buf);
|
|
||||||
return MOO_PF_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
offset = 0;
|
|
||||||
maxlen = MOO_OBJ_GET_SIZE(buf);
|
|
||||||
length = maxlen;
|
|
||||||
|
|
||||||
if (nargs >= 2)
|
|
||||||
{
|
|
||||||
moo_oop_t tmp;
|
|
||||||
|
|
||||||
tmp = MOO_STACK_GETARG(moo, nargs, 1);
|
|
||||||
if (moo_inttooow (moo, tmp, &offset) <= 0)
|
|
||||||
{
|
|
||||||
moo_seterrbfmt (moo, MOO_EINVAL, "invalid offset - %O", tmp);
|
|
||||||
return MOO_PF_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nargs >= 3)
|
|
||||||
{
|
|
||||||
tmp = MOO_STACK_GETARG(moo, nargs, 2);
|
|
||||||
if (moo_inttooow(moo, tmp, &length) <= 0)
|
|
||||||
{
|
|
||||||
moo_seterrbfmt (moo, MOO_EINVAL, "invalid length - %O", tmp);
|
|
||||||
return MOO_PF_FAILURE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (offset >= maxlen) offset = maxlen - 1;
|
|
||||||
if (length > maxlen - offset) length = maxlen - offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
n = send(fd, MOO_OBJ_GET_BYTE_PTR(buf, offset), length, 0);
|
|
||||||
if (n <= -1 && errno != EWOULDBLOCK && errno != EAGAIN)
|
if (n <= -1 && errno != EWOULDBLOCK && errno != EAGAIN)
|
||||||
{
|
{
|
||||||
moo_seterrwithsyserr (moo, 0, errno);
|
moo_seterrwithsyserr (moo, 0, errno);
|
||||||
@ -215,19 +209,9 @@ static moo_pfrc_t pf_write_io (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|||||||
MOO_STACK_SETRET (moo, nargs, MOO_SMOOI_TO_OOP(n));
|
MOO_STACK_SETRET (moo, nargs, MOO_SMOOI_TO_OOP(n));
|
||||||
return MOO_PF_SUCCESS;
|
return MOO_PF_SUCCESS;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
typedef struct fnctab_t fnctab_t;
|
|
||||||
struct fnctab_t
|
|
||||||
{
|
|
||||||
moo_method_type_t type;
|
|
||||||
moo_ooch_t mthname[15];
|
|
||||||
int variadic;
|
|
||||||
moo_pfimpl_t handler;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define C MOO_METHOD_CLASS
|
#define C MOO_METHOD_CLASS
|
||||||
#define I MOO_METHOD_INSTANCE
|
#define I MOO_METHOD_INSTANCE
|
||||||
|
|
||||||
@ -236,6 +220,10 @@ struct fnctab_t
|
|||||||
static moo_pfinfo_t pfinfos[] =
|
static moo_pfinfo_t pfinfos[] =
|
||||||
{
|
{
|
||||||
{ I, { 'c','l','o','s','e','\0' }, 0, { pf_close_io, 0, 0 } },
|
{ I, { 'c','l','o','s','e','\0' }, 0, { pf_close_io, 0, 0 } },
|
||||||
|
{ I, { 'r','e','a','d','B','y','t','e','s','I','n','t','o',':','\0' }, 0, { pf_read_bytes, 1, 1 } },
|
||||||
|
{ I, { 'r','e','a','d','B','y','t','e','s','I','n','t','o',':','s','t','a','r','t','i','n','g','A','t',':','f','o','r',':','\0' }, 0, { pf_read_bytes, 3, 3 } },
|
||||||
|
{ I, { 'w','r','i','t','e','B','y','t','e','s','F','r','o','m',':','\0' }, 0, { pf_write_bytes, 1, 1 } },
|
||||||
|
{ I, { 'w','r','i','t','e','B','y','t','e','s','F','r','o','m',':','s','t','a','r','t','i','n','g','A','t',':','f','o','r',':','\0' }, 0, { pf_write_bytes, 3, 3 } }
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
@ -514,7 +514,7 @@ static int import (moo_t* moo, moo_mod_t* mod, moo_oop_class_t _class)
|
|||||||
/* change the number of the fixed fields forcibly.
|
/* change the number of the fixed fields forcibly.
|
||||||
* the check against the superclass is done by the main compiler
|
* the check against the superclass is done by the main compiler
|
||||||
* after this import. so i perform no check about the superclass. */
|
* after this import. so i perform no check about the superclass. */
|
||||||
spec = MOO_CLASS_SPEC_MAKE (MOO_SIZEOF(sockaddr_t), MOO_CLASS_SPEC_FLAGS(spec), MOO_CLASS_SPEC_INDEXED_TYPE(spec));
|
spec = MOO_CLASS_SPEC_MAKE(MOO_SIZEOF(sockaddr_t), MOO_CLASS_SPEC_FLAGS(spec), MOO_CLASS_SPEC_INDEXED_TYPE(spec));
|
||||||
_class->spec = MOO_SMOOI_TO_OOP(spec);
|
_class->spec = MOO_SMOOI_TO_OOP(spec);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,6 @@ static moo_pfrc_t pf_open_socket (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|||||||
type = MOO_STACK_GETARG(moo, nargs, 1);
|
type = MOO_STACK_GETARG(moo, nargs, 1);
|
||||||
proto = (nargs < 3)? 0: MOO_STACK_GETARG(moo, nargs, 2);
|
proto = (nargs < 3)? 0: MOO_STACK_GETARG(moo, nargs, 2);
|
||||||
|
|
||||||
|
|
||||||
MOO_PF_CHECK_ARGS (moo, nargs, MOO_OOP_IS_SMOOI(dom) && MOO_OOP_IS_SMOOI(type) && MOO_OOP_IS_SMOOI(proto));
|
MOO_PF_CHECK_ARGS (moo, nargs, MOO_OOP_IS_SMOOI(dom) && MOO_OOP_IS_SMOOI(type) && MOO_OOP_IS_SMOOI(proto));
|
||||||
|
|
||||||
typev = MOO_OOP_TO_SMOOI(type);
|
typev = MOO_OOP_TO_SMOOI(type);
|
||||||
@ -79,7 +78,7 @@ static moo_pfrc_t pf_open_socket (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|||||||
create_socket:
|
create_socket:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fd = socket (MOO_OOP_TO_SMOOI(dom), typev, MOO_OOP_TO_SMOOI(proto));
|
fd = socket(MOO_OOP_TO_SMOOI(dom), typev, MOO_OOP_TO_SMOOI(proto));
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
{
|
{
|
||||||
#if defined(SOCK_NONBLOCK) && defined(SOCK_CLOEXEC)
|
#if defined(SOCK_NONBLOCK) && defined(SOCK_CLOEXEC)
|
||||||
@ -570,15 +569,6 @@ static moo_pfrc_t pf_write_socket (moo_t* moo, moo_mod_t* mod, moo_ooi_t nargs)
|
|||||||
|
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
typedef struct fnctab_t fnctab_t;
|
|
||||||
struct fnctab_t
|
|
||||||
{
|
|
||||||
moo_method_type_t type;
|
|
||||||
moo_ooch_t mthname[15];
|
|
||||||
int variadic;
|
|
||||||
moo_pfimpl_t handler;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define C MOO_METHOD_CLASS
|
#define C MOO_METHOD_CLASS
|
||||||
#define I MOO_METHOD_INSTANCE
|
#define I MOO_METHOD_INSTANCE
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user