]> gitweb.factorcode.org Git - factor.git/commitdiff
tokyo.alien: Initial works on tokyo bindings (incomplete, not working, not tested)
authorBruno Deferrari <utizoc@gmail.com>
Fri, 12 Jun 2009 17:25:01 +0000 (14:25 -0300)
committerBruno Deferrari <utizoc@gmail.com>
Fri, 12 Jun 2009 17:25:01 +0000 (14:25 -0300)
extra/tokyo/alien/tcrdb/tcrdb.factor [new file with mode: 0644]
extra/tokyo/alien/tctdb/tctdb.factor [new file with mode: 0644]
extra/tokyo/alien/tcutil/tcutil.factor [new file with mode: 0644]

diff --git a/extra/tokyo/alien/tcrdb/tcrdb.factor b/extra/tokyo/alien/tcrdb/tcrdb.factor
new file mode 100644 (file)
index 0000000..7919c92
--- /dev/null
@@ -0,0 +1,136 @@
+USING: kernel alien combinators alien.syntax
+       alien.c-types
+       alien.libraries tokyo.alien.tcutil tokyo.alien.tctdb ;
+IN: tokyo.alient.tcrdb
+
+TYPEDEF: void* TCRDB*
+! C-STRUCT: TCRDB
+!     { "pthread_mutex_t" mmtx }
+!     { "pthread_key_t" eckey }
+!     { "char*" host }
+!     { "int" port }
+!     { "char*" expr }
+!     { "int" fd }
+!     { "TTSOCK*" sock }
+!     { "double" timeout }
+!     { "int" opts } ;
+
+C-ENUM:
+    TTESUCCESS
+    TTEINVALID
+    TTENOHOST
+    TTEREFUSED
+    TTESEND
+    TTERECV
+    TTEKEEP
+    TTENOREC ;
+CONSTANT: TTEMISC 9999
+
+CONSTANT: RDBTRECON   1
+CONSTANT: RDBXOLCKREC 1
+CONSTANT: RDBXOLCKGLB 2
+CONSTANT: RDBROCHKCON 1
+CONSTANT: RDBMONOULOG 1
+
+TYPEDEF: int bool
+
+FUNCTION: char* tcrdberrmsg ( int ecode ) ;
+FUNCTION: TCRDB* tcrdbnew ( ) ;
+FUNCTION: void tcrdbdel ( TCRDB* rdb ) ;
+FUNCTION: int tcrdbecode ( TCRDB* rdb ) ;
+FUNCTION: bool tcrdbtune ( TCRDB* rdb, double timeout, int opts ) ;
+FUNCTION: bool tcrdbopen ( TCRDB* rdb, char* host, int port ) ;
+FUNCTION: bool tcrdbopen2 ( TCRDB* rdb, char* expr ) ;
+FUNCTION: bool tcrdbclose ( TCRDB* rdb ) ;
+FUNCTION: bool tcrdbput ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz ) ;
+FUNCTION: bool tcrdbput2 ( TCRDB* rdb, char* kstr, char* vstr ) ;
+FUNCTION: bool tcrdbputkeep ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz ) ;
+FUNCTION: bool tcrdbputkeep2 ( TCRDB* rdb, char* kstr, char* vstr ) ;
+FUNCTION: bool tcrdbputcat ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz ) ;
+FUNCTION: bool tcrdbputcat2 ( TCRDB* rdb, char* kstr, char* vstr ) ;
+FUNCTION: bool tcrdbputshl ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz, int width ) ;
+FUNCTION: bool tcrdbputshl2 ( TCRDB* rdb, char* kstr, char* vstr, int width ) ;
+FUNCTION: bool tcrdbputnr ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz ) ;
+FUNCTION: bool tcrdbputnr2 ( TCRDB* rdb, char* kstr, char* vstr ) ;
+FUNCTION: bool tcrdbout ( TCRDB* rdb, void* kbuf, int ksiz ) ;
+FUNCTION: bool tcrdbout2 ( TCRDB* rdb, char* kstr ) ;
+FUNCTION: void* tcrdbget ( TCRDB* rdb, void* kbuf, int ksiz, int* sp ) ;
+FUNCTION: char* tcrdbget2 ( TCRDB* rdb, char* kstr ) ;
+FUNCTION: bool tcrdbget3 ( TCRDB* rdb, TCMAP* recs ) ;
+FUNCTION: int tcrdbvsiz ( TCRDB* rdb, void* kbuf, int ksiz ) ;
+FUNCTION: int tcrdbvsiz2 ( TCRDB* rdb, char* kstr ) ;
+FUNCTION: bool tcrdbiterinit ( TCRDB* rdb ) ;
+FUNCTION: void* tcrdbiternext ( TCRDB* rdb, int* sp ) ;
+FUNCTION: char* tcrdbiternext2 ( TCRDB* rdb ) ;
+FUNCTION: TCLIST* tcrdbfwmkeys ( TCRDB* rdb, void* pbuf, int psiz, int max ) ;
+FUNCTION: TCLIST* tcrdbfwmkeys2 ( TCRDB* rdb, char* pstr, int max ) ;
+FUNCTION: int tcrdbaddint ( TCRDB* rdb, void* kbuf, int ksiz, int num ) ;
+FUNCTION: double tcrdbadddouble ( TCRDB* rdb, void* kbuf, int ksiz, double num ) ;
+FUNCTION: void* tcrdbext ( TCRDB* rdb, char* name, int opts, void* kbuf, int ksiz, void* vbuf, int vsiz, int* sp ) ;
+FUNCTION: char* tcrdbext2 ( TCRDB* rdb, char* name, int opts, char* kstr, char* vstr ) ;
+FUNCTION: bool tcrdbsync ( TCRDB* rdb ) ;
+FUNCTION: bool tcrdboptimize ( TCRDB* rdb, char* params ) ;
+FUNCTION: bool tcrdbvanish ( TCRDB* rdb ) ;
+FUNCTION: bool tcrdbcopy ( TCRDB* rdb, char* path ) ;
+FUNCTION: bool tcrdbrestore ( TCRDB* rdb, char* path, ulonglong ts, int opts ) ;
+FUNCTION: bool tcrdbsetmst ( TCRDB* rdb, char* host, int port, int opts ) ;
+FUNCTION: bool tcrdbsetmst2 ( TCRDB* rdb, char* expr, int opts ) ;
+FUNCTION: char* tcrdbexpr ( TCRDB* rdb ) ;
+FUNCTION: ulonglong tcrdbrnum ( TCRDB* rdb ) ;
+FUNCTION: ulonglong tcrdbsize ( TCRDB* rdb ) ;
+FUNCTION: char* tcrdbstat ( TCRDB* rdb ) ;
+FUNCTION: TCLIST* tcrdbmisc ( TCRDB* rdb, char* name, int opts, TCLIST* args ) ;
+
+CONSTANT: RDBITLEXICAL TDBITLEXICAL
+CONSTANT: RDBITDECIMAL TDBITDECIMAL
+CONSTANT: RDBITOPT     TDBITOPT
+CONSTANT: RDBITVOID    TDBITVOID
+CONSTANT: RDBITKEEP    TDBITKEEP
+
+TYPEDEF: void* RDBQRY*
+! C-STRUCT: RDBQRY
+!     { "TCRDB*" rdb }
+!     { "TCLIST*" args } ;
+
+CONSTANT: RDBQCSTREQ   TDBQCSTREQ
+CONSTANT: RDBQCSTRINC  TDBQCSTRINC
+CONSTANT: RDBQCSTRBW   TDBQCSTRBW
+CONSTANT: RDBQCSTREW   TDBQCSTREW
+CONSTANT: RDBQCSTRAND  TDBQCSTRAND
+CONSTANT: RDBQCSTROR   TDBQCSTROR
+CONSTANT: RDBQCSTROREQ TDBQCSTROREQ
+CONSTANT: RDBQCSTRRX   TDBQCSTRRX
+CONSTANT: RDBQCNUMEQ   TDBQCNUMEQ
+CONSTANT: RDBQCNUMGT   TDBQCNUMGT
+CONSTANT: RDBQCNUMGE   TDBQCNUMGE
+CONSTANT: RDBQCNUMLT   TDBQCNUMLT
+CONSTANT: RDBQCNUMLE   TDBQCNUMLE
+CONSTANT: RDBQCNUMBT   TDBQCNUMBT
+CONSTANT: RDBQCNUMOREQ TDBQCNUMOREQ
+CONSTANT: RDBQCNEGATE  TDBQCNEGATE
+CONSTANT: RDBQCNOIDX   TDBQCNOIDX
+
+CONSTANT: RDBQOSTRASC  TDBQOSTRASC
+CONSTANT: RDBQOSTRDESC TDBQOSTRDESC
+CONSTANT: RDBQONUMASC  TDBQONUMASC
+CONSTANT: RDBQONUMDESC TDBQONUMDESC
+
+FUNCTION: bool tcrdbtblput ( TCRDB* rdb, const void* pkbuf, int pksiz, TCMAP* cols ) ;
+FUNCTION: bool tcrdbtblputkeep ( TCRDB* rdb, const void* pkbuf, int pksiz, TCMAP* cols ) ;
+FUNCTION: bool tcrdbtblputcat ( TCRDB* rdb, const void* pkbuf, int pksiz, TCMAP* cols ) ;
+FUNCTION: bool tcrdbtblout ( TCRDB* rdb, const void* pkbuf, int pksiz ) ;
+FUNCTION: TCMAP* tcrdbtblget ( TCRDB* rdb, const void* pkbuf, int pksiz ) ;
+FUNCTION: bool tcrdbtblsetindex ( TCRDB* rdb, const char* name, int type ) ;
+FUNCTION: longlong tcrdbtblgenuid ( TCRDB* rdb ) ;
+FUNCTION: RDBQRY* tcrdbqrynew ( TCRDB* rdb ) ;
+FUNCTION: void tcrdbqrydel ( RDBQRY* qry ) ;
+FUNCTION: void tcrdbqryaddcond ( RDBQRY* qry, const char* name, int op, const char* expr ) ;
+FUNCTION: void tcrdbqrysetorder ( RDBQRY* qry, const char* name, int type ) ;
+FUNCTION: void tcrdbqrysetlimit ( RDBQRY* qry, int max, int skip ) ;
+FUNCTION: TCLIST* tcrdbqrysearch ( RDBQRY* qry ) ;
+FUNCTION: bool tcrdbqrysearchout ( RDBQRY* qry ) ;
+FUNCTION: TCLIST* tcrdbqrysearchget ( RDBQRY* qry ) ;
+FUNCTION: TCMAP* tcrdbqryrescols ( TCLIST* res, int index ) ;
+FUNCTION: int tcrdbqrysearchcount ( RDBQRY* qry ) ;
+
+FUNCTION: void tcrdbsetecode ( TCRDB* rdb, int ecode ) ;
diff --git a/extra/tokyo/alien/tctdb/tctdb.factor b/extra/tokyo/alien/tctdb/tctdb.factor
new file mode 100644 (file)
index 0000000..35bc16e
--- /dev/null
@@ -0,0 +1,152 @@
+USING: kernel alien combinators alien.syntax
+       alien.c-types
+       alien.libraries tokyo.alien.tcutil ;
+IN: tokyo.alient.tctdb
+
+TYPEDEF: void* TDBIDX*
+TYPEDEF: void* TCTDB*
+
+CONSTANT: TDBFOPEN  HDBFOPEN
+CONSTANT: TDBFFATAL HDBFFATAL
+
+CONSTANT: TDBTLARGE   1
+CONSTANT: TDBTDEFLATE 2
+CONSTANT: TDBTBZIP    4
+CONSTANT: TDBTTCBS    8
+CONSTANT: TDBTEXCODEC 16
+
+CONSTANT: TDBOREADER 1
+CONSTANT: TDBOWRITER 2
+CONSTANT: TDBOCREAT  4
+CONSTANT: TDBOTRUNC  8
+CONSTANT: TDBONOLCK  16
+CONSTANT: TDBOLCKNB  32
+CONSTANT: TDBOTSYNC  64
+
+C-ENUM:
+  TDBITLEXICAL
+  TDBITDECIMAL ;
+
+CONSTANT: TDBITOPT  9998
+CONSTANT: TDBITVOID 9999
+CONSTANT: TDBITKEEP 16777216
+
+TYPEDEF: void* TDBCOND*
+TYPEDEF: void* TDBQRY*
+
+C-ENUM:
+    TDBQCSTREQ
+    TDBQCSTRINC
+    TDBQCSTRBW
+    TDBQCSTREW
+    TDBQCSTRAND
+    TDBQCSTROR
+    TDBQCSTROREQ
+    TDBQCSTRRX
+    TDBQCNUMEQ
+    TDBQCNUMGT
+    TDBQCNUMGE
+    TDBQCNUMLT
+    TDBQCNUMLE
+    TDBQCNUMBT
+    TDBQCNUMOREQ ;
+
+CONSTANT: TDBQCNEGATE 16777216
+CONSTANT: TDBQCNOIDX  33554432
+
+C-ENUM:
+    TDBQOSTRASC
+    TDBQOSTRDESC
+    TDBQONUMASC
+    TDBQONUMDESC ;
+
+CONSTANT: TDBQPPUT  1
+CONSTANT: TDBQPOUT  2
+CONSTANT: TDBQPSTOP 16777216
+
+! int (*)(const void *pkbuf, int pksiz, TCMAP *cols, void *op);
+TYPEDEF: void* TDBQRYPROC
+
+FUNCTION: char* tctdberrmsg ( int ecode ) ;
+FUNCTION: TCTDB* tctdbnew ( void ) ;
+FUNCTION: void tctdbdel ( TCTDB* tdb ) ;
+FUNCTION: int tctdbecode ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbsetmutex ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbtune ( TCTDB* tdb, longlong bnum, char apow, char fpow, uchar opts ) ;
+FUNCTION: bool tctdbsetcache ( TCTDB* tdb, int32_t rcnum, int32_t lcnum, int32_t ncnum ) ;
+FUNCTION: bool tctdbsetxmsiz ( TCTDB* tdb, longlong xmsiz ) ;
+FUNCTION: bool tctdbopen ( TCTDB* tdb, char* path, int omode ) ;
+FUNCTION: bool tctdbclose ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbput ( TCTDB* tdb, void* pkbuf, int pksiz, TCMAP* cols ) ;
+FUNCTION: bool tctdbput2 ( TCTDB* tdb, void* pkbuf, int pksiz, void* cbuf, int csiz ) ;
+FUNCTION: bool tctdbput3 ( TCTDB* tdb, char* pkstr, char* cstr ) ;
+FUNCTION: bool tctdbputkeep ( TCTDB* tdb, void* pkbuf, int pksiz, TCMAP* cols ) ;
+FUNCTION: bool tctdbputkeep2 ( TCTDB* tdb, void* pkbuf, int pksiz, void* cbuf, int csiz ) ;
+FUNCTION: bool tctdbputkeep3 ( TCTDB* tdb, char* pkstr, char* cstr ) ;
+FUNCTION: bool tctdbputcat ( TCTDB* tdb, void* pkbuf, int pksiz, TCMAP* cols ) ;
+FUNCTION: bool tctdbputcat2 ( TCTDB* tdb, void* pkbuf, int pksiz, void* cbuf, int csiz ) ;
+FUNCTION: bool tctdbputcat3 ( TCTDB* tdb, char* pkstr, char* cstr ) ;
+FUNCTION: bool tctdbout ( TCTDB* tdb, void* pkbuf, int pksiz ) ;
+FUNCTION: bool tctdbout2 ( TCTDB* tdb, char* pkstr ) ;
+FUNCTION: TCMAP* tctdbget ( TCTDB* tdb, void* pkbuf, int pksiz ) ;
+FUNCTION: char* tctdbget2 ( TCTDB* tdb, void* pkbuf, int pksiz, int* sp ) ;
+FUNCTION: char* tctdbget3 ( TCTDB* tdb, char* pkstr ) ;
+FUNCTION: int tctdbvsiz ( TCTDB* tdb, void* pkbuf, int pksiz ) ;
+FUNCTION: int tctdbvsiz2 ( TCTDB* tdb, char* pkstr ) ;
+FUNCTION: bool tctdbiterinit ( TCTDB* tdb ) ;
+FUNCTION: void* tctdbiternext ( TCTDB* tdb, int* sp ) ;
+FUNCTION: char* tctdbiternext2 ( TCTDB* tdb ) ;
+FUNCTION: TCLIST* tctdbfwmkeys ( TCTDB* tdb, void* pbuf, int psiz, int max ) ;
+FUNCTION: TCLIST* tctdbfwmkeys2 ( TCTDB* tdb, char* pstr, int max ) ;
+FUNCTION: int tctdbaddint ( TCTDB* tdb, void* pkbuf, int pksiz, int num ) ;
+FUNCTION: double tctdbadddouble ( TCTDB* tdb, void* pkbuf, int pksiz, double num ) ;
+FUNCTION: bool tctdbsync ( TCTDB* tdb ) ;
+FUNCTION: bool tctdboptimize ( TCTDB* tdb, longlong bnum, char apow, char fpow, uchar opts ) ;
+FUNCTION: bool tctdbvanish ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbcopy ( TCTDB* tdb, char* path ) ;
+FUNCTION: bool tctdbtranbegin ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbtrancommit ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbtranabort ( TCTDB* tdb ) ;
+FUNCTION: char* tctdbpath ( TCTDB* tdb ) ;
+FUNCTION: ulonglong tctdbrnum ( TCTDB* tdb ) ;
+FUNCTION: ulonglong tctdbfsiz ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbsetindex ( TCTDB* tdb, char* name, int type ) ;
+FUNCTION: longlong tctdbgenuid ( TCTDB* tdb ) ;
+FUNCTION: TDBQRY* tctdbqrynew ( TCTDB* tdb ) ;
+FUNCTION: void tctdbqrydel ( TDBQRY* qry ) ;
+FUNCTION: void tctdbqryaddcond ( TDBQRY* qry, char* name, int op, char* expr ) ;
+FUNCTION: void tctdbqrysetorder ( TDBQRY* qry, char* name, int type ) ;
+FUNCTION: void tctdbqrysetlimit ( TDBQRY* qry, int max, int skip ) ;
+FUNCTION: TCLIST* tctdbqrysearch ( TDBQRY* qry ) ;
+FUNCTION: bool tctdbqrysearchout ( TDBQRY* qry ) ;
+FUNCTION: bool tctdbqryproc ( TDBQRY* qry, TDBQRYPROC proc, void* op ) ;
+FUNCTION: char* tctdbqryhint ( TDBQRY* qry ) ;
+
+! =======
+
+FUNCTION: void tctdbsetecode ( TCTDB* tdb, int ecode, char* filename, int line, char* func ) ;
+FUNCTION: void tctdbsetdbgfd ( TCTDB* tdb, int fd ) ;
+FUNCTION: int tctdbdbgfd ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbhasmutex ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbmemsync ( TCTDB* tdb, bool phys ) ;
+FUNCTION: ulonglong tctdbbnum ( TCTDB* tdb ) ;
+FUNCTION: uint tctdbalign ( TCTDB* tdb ) ;
+FUNCTION: uint tctdbfbpmax ( TCTDB* tdb ) ;
+FUNCTION: ulonglong tctdbinode ( TCTDB* tdb ) ;
+FUNCTION: time_t tctdbmtime ( TCTDB* tdb ) ;
+FUNCTION: uchar tctdbflags ( TCTDB* tdb ) ;
+FUNCTION: uchar tctdbopts ( TCTDB* tdb ) ;
+FUNCTION: char* tctdbopaque ( TCTDB* tdb ) ;
+FUNCTION: ulonglong tctdbbnumused ( TCTDB* tdb ) ;
+FUNCTION: int tctdbinum ( TCTDB* tdb ) ;
+FUNCTION: longlong tctdbuidseed ( TCTDB* tdb ) ;
+FUNCTION: bool tctdbsetuidseed ( TCTDB* tdb, longlong seed ) ;
+FUNCTION: bool tctdbsetcodecfunc ( TCTDB* tdb, TCCODEC enc, void* encop, TCCODEC dec, void* decop ) ;
+FUNCTION: bool tctdbputproc ( TCTDB* tdb, void* pkbuf, int pksiz, void* cbuf, int csiz, TCPDPROC proc, void* op ) ;
+FUNCTION: bool tctdbforeach ( TCTDB* tdb, TCITER iter, void* op ) ;
+FUNCTION: bool tctdbqryproc2 ( TDBQRY* qry, TDBQRYPROC proc, void* op ) ;
+FUNCTION: bool tctdbqrysearchout2 ( TDBQRY* qry ) ;
+FUNCTION: int tctdbstrtoindextype ( char* str ) ;
+FUNCTION: int tctdbqrycount ( TDBQRY* qry ) ;
+FUNCTION: int tctdbqrystrtocondop ( char* str ) ;
+FUNCTION: int tctdbqrystrtoordertype ( char* str ) ;
diff --git a/extra/tokyo/alien/tcutil/tcutil.factor b/extra/tokyo/alien/tcutil/tcutil.factor
new file mode 100644 (file)
index 0000000..df1b66b
--- /dev/null
@@ -0,0 +1,24 @@
+USING: kernel alien combinators alien.syntax
+       alien.c-types
+       alien.libraries ;
+IN: tokyo.alient.tcutil
+
+C-ENUM:
+    TCDBTHASH
+    TCDBTBTREE
+    TCDBTFIXED
+    TCDBTTABLE ;
+
+! FIXME: time_t varies from system to system, right?
+TYPEDEF: longlong time_t
+
+TYPEDEF: void* TCLIST*
+
+FUNCTION: TCLIST* tclistnew ( ) ;
+FUNCTION: TCLIST* tclistnew2 ( int anum ) ;
+FUNCTION: void tclistdel ( TCLIST* list ) ;
+FUNCTION: int tclistnum ( TCLIST* list ) ;
+FUNCTION: void* tclistval ( TCLIST* list, int index, int* sp ) ;
+FUNCTION: char* tclistval2 ( TCLIST* list, int index ) ;
+FUNCTION: void tclistpush ( TCLIST* list, void* ptr, int size ) ;
+FUNCTION: void tclistpush2 ( TCLIST* list, char* str ) ;