adding a nonblocking mariadb client device
This commit is contained in:
@ -40,3 +40,9 @@ mio_t03_SOURCES = t03.c
|
||||
mio_t03_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
|
||||
mio_t03_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
||||
mio_t03_LDADD = $(LIBADD_LIB_COMMON) -lmio $(SSL_LIBS) $(SOCKET_LIBS) $(SENDFILE_LIBS)
|
||||
|
||||
bin_PROGRAMS += mio-t04
|
||||
mio_t04_SOURCES = t04.c
|
||||
mio_t04_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
|
||||
mio_t04_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
||||
mio_t04_LDADD = $(LIBADD_LIB_COMMON) -lmio $(SSL_LIBS) $(SOCKET_LIBS) $(SENDFILE_LIBS)
|
||||
|
@ -89,7 +89,7 @@ POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
bin_PROGRAMS = mio-execd$(EXEEXT) mio-t01$(EXEEXT) mio-t02$(EXEEXT) \
|
||||
mio-t03$(EXEEXT)
|
||||
mio-t03$(EXEEXT) mio-t04$(EXEEXT)
|
||||
subdir = bin
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \
|
||||
@ -141,6 +141,13 @@ mio_t03_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
|
||||
mio_t03_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mio_t03_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_mio_t04_OBJECTS = mio_t04-t04.$(OBJEXT)
|
||||
mio_t04_OBJECTS = $(am_mio_t04_OBJECTS)
|
||||
mio_t04_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
|
||||
mio_t04_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mio_t04_LDFLAGS) $(LDFLAGS) -o $@
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
@ -158,7 +165,7 @@ depcomp = $(SHELL) $(top_srcdir)/ac/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/mio_execd-execd.Po \
|
||||
./$(DEPDIR)/mio_t01-t01.Po ./$(DEPDIR)/mio_t02-t02.Po \
|
||||
./$(DEPDIR)/mio_t03-t03.Po
|
||||
./$(DEPDIR)/mio_t03-t03.Po ./$(DEPDIR)/mio_t04-t04.Po
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
@ -179,9 +186,9 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||
am__v_CCLD_1 =
|
||||
SOURCES = $(mio_execd_SOURCES) $(mio_t01_SOURCES) $(mio_t02_SOURCES) \
|
||||
$(mio_t03_SOURCES)
|
||||
$(mio_t03_SOURCES) $(mio_t04_SOURCES)
|
||||
DIST_SOURCES = $(mio_execd_SOURCES) $(mio_t01_SOURCES) \
|
||||
$(mio_t02_SOURCES) $(mio_t03_SOURCES)
|
||||
$(mio_t02_SOURCES) $(mio_t03_SOURCES) $(mio_t04_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
@ -387,6 +394,10 @@ mio_t03_SOURCES = t03.c
|
||||
mio_t03_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
|
||||
mio_t03_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
||||
mio_t03_LDADD = $(LIBADD_LIB_COMMON) -lmio $(SSL_LIBS) $(SOCKET_LIBS) $(SENDFILE_LIBS)
|
||||
mio_t04_SOURCES = t04.c
|
||||
mio_t04_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
|
||||
mio_t04_LDFLAGS = $(LDFLAGS_LIB_COMMON)
|
||||
mio_t04_LDADD = $(LIBADD_LIB_COMMON) -lmio $(SSL_LIBS) $(SOCKET_LIBS) $(SENDFILE_LIBS)
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
@ -486,6 +497,10 @@ mio-t03$(EXEEXT): $(mio_t03_OBJECTS) $(mio_t03_DEPENDENCIES) $(EXTRA_mio_t03_DEP
|
||||
@rm -f mio-t03$(EXEEXT)
|
||||
$(AM_V_CCLD)$(mio_t03_LINK) $(mio_t03_OBJECTS) $(mio_t03_LDADD) $(LIBS)
|
||||
|
||||
mio-t04$(EXEEXT): $(mio_t04_OBJECTS) $(mio_t04_DEPENDENCIES) $(EXTRA_mio_t04_DEPENDENCIES)
|
||||
@rm -f mio-t04$(EXEEXT)
|
||||
$(AM_V_CCLD)$(mio_t04_LINK) $(mio_t04_OBJECTS) $(mio_t04_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
@ -496,6 +511,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mio_t01-t01.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mio_t02-t02.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mio_t03-t03.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mio_t04-t04.Po@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@ -583,6 +599,20 @@ mio_t03-t03.obj: t03.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mio_t03_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mio_t03-t03.obj `if test -f 't03.c'; then $(CYGPATH_W) 't03.c'; else $(CYGPATH_W) '$(srcdir)/t03.c'; fi`
|
||||
|
||||
mio_t04-t04.o: t04.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mio_t04_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mio_t04-t04.o -MD -MP -MF $(DEPDIR)/mio_t04-t04.Tpo -c -o mio_t04-t04.o `test -f 't04.c' || echo '$(srcdir)/'`t04.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mio_t04-t04.Tpo $(DEPDIR)/mio_t04-t04.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='t04.c' object='mio_t04-t04.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) $(mio_t04_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mio_t04-t04.o `test -f 't04.c' || echo '$(srcdir)/'`t04.c
|
||||
|
||||
mio_t04-t04.obj: t04.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mio_t04_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mio_t04-t04.obj -MD -MP -MF $(DEPDIR)/mio_t04-t04.Tpo -c -o mio_t04-t04.obj `if test -f 't04.c'; then $(CYGPATH_W) 't04.c'; else $(CYGPATH_W) '$(srcdir)/t04.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mio_t04-t04.Tpo $(DEPDIR)/mio_t04-t04.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='t04.c' object='mio_t04-t04.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) $(mio_t04_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mio_t04-t04.obj `if test -f 't04.c'; then $(CYGPATH_W) 't04.c'; else $(CYGPATH_W) '$(srcdir)/t04.c'; fi`
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
@ -720,6 +750,7 @@ distclean: distclean-am
|
||||
-rm -f ./$(DEPDIR)/mio_t01-t01.Po
|
||||
-rm -f ./$(DEPDIR)/mio_t02-t02.Po
|
||||
-rm -f ./$(DEPDIR)/mio_t03-t03.Po
|
||||
-rm -f ./$(DEPDIR)/mio_t04-t04.Po
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@ -769,6 +800,7 @@ maintainer-clean: maintainer-clean-am
|
||||
-rm -f ./$(DEPDIR)/mio_t01-t01.Po
|
||||
-rm -f ./$(DEPDIR)/mio_t02-t02.Po
|
||||
-rm -f ./$(DEPDIR)/mio_t03-t03.Po
|
||||
-rm -f ./$(DEPDIR)/mio_t04-t04.Po
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
94
mio/bin/t04.c
Normal file
94
mio/bin/t04.c
Normal file
@ -0,0 +1,94 @@
|
||||
|
||||
#include <mio.h>
|
||||
#include <mio-maria.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
static void maria_on_disconnect (mio_dev_maria_t* dev)
|
||||
{
|
||||
}
|
||||
|
||||
static void maria_on_connect (mio_dev_maria_t* dev)
|
||||
{
|
||||
printf ("CONNEcTED...\n");
|
||||
if (mio_dev_maria_querywithbchars(dev, "SHOW STATUS", 11) <= -1)
|
||||
{
|
||||
mio_dev_maria_halt (dev);
|
||||
}
|
||||
}
|
||||
|
||||
static void maria_on_query_started (mio_dev_maria_t* dev)
|
||||
{
|
||||
printf ("QUERY SENT...\n");
|
||||
if (mio_dev_maria_fetchrow(dev) <= -1)
|
||||
{
|
||||
printf ("FETCH ROW FAILURE\n");
|
||||
mio_dev_maria_halt (dev);
|
||||
}
|
||||
}
|
||||
|
||||
static void maria_on_row_fetched (mio_dev_maria_t* dev, void* row)
|
||||
{
|
||||
if (!row) printf ("NO MORE ROW..\n");
|
||||
else
|
||||
{
|
||||
printf ("GOT ROW\n");
|
||||
mio_dev_maria_fetchrow (dev);
|
||||
}
|
||||
}
|
||||
|
||||
int main (int argc, char* argv[])
|
||||
{
|
||||
|
||||
mio_t* mio = MIO_NULL;
|
||||
mio_dev_maria_t* maria;
|
||||
mio_dev_maria_make_t mi;
|
||||
mio_dev_maria_connect_t ci;
|
||||
|
||||
if (argc != 6)
|
||||
{
|
||||
fprintf (stderr, "Usage: %s ipaddr port username password dbname\n", argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
mio = mio_open(MIO_NULL, 0, MIO_NULL, 512, MIO_NULL);
|
||||
if (!mio)
|
||||
{
|
||||
printf ("Cannot open mio\n");
|
||||
goto oops;
|
||||
}
|
||||
|
||||
memset (&ci, 0, MIO_SIZEOF(ci));
|
||||
ci.host = argv[1];
|
||||
ci.port = 3306; /* TODO: argv[2]; */
|
||||
ci.username = argv[3];
|
||||
ci.password = argv[4];
|
||||
ci.dbname = argv[5];
|
||||
|
||||
memset (&mi, 0, MIO_SIZEOF(mi));
|
||||
/*mi.on_write = maria_on_write;
|
||||
mi.on_read = maria_on_read;*/
|
||||
mi.on_connect = maria_on_connect;
|
||||
mi.on_disconnect = maria_on_disconnect;
|
||||
mi.on_query_started = maria_on_query_started;
|
||||
mi.on_row_fetched = maria_on_row_fetched;
|
||||
|
||||
maria = mio_dev_maria_make(mio, 0, &mi);
|
||||
if (!maria)
|
||||
{
|
||||
printf ("Cannot make a maria db client device\n");
|
||||
goto oops;
|
||||
}
|
||||
|
||||
if (mio_dev_maria_connect(maria, &ci) <= -1)
|
||||
{
|
||||
printf ("Cannot connect to maria db server\n");
|
||||
goto oops;
|
||||
}
|
||||
|
||||
mio_loop (mio);
|
||||
|
||||
oops:
|
||||
if (mio) mio_close (mio);
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user