diff --git a/extra/tokyo/alien/tcrdb/tcrdb.factor b/extra/tokyo/alien/tcrdb/tcrdb.factor new file mode 100644 index 0000000000..7919c92698 --- /dev/null +++ b/extra/tokyo/alien/tcrdb/tcrdb.factor @@ -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 index 0000000000..35bc16e003 --- /dev/null +++ b/extra/tokyo/alien/tctdb/tctdb.factor @@ -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 index 0000000000..df1b66bc31 --- /dev/null +++ b/extra/tokyo/alien/tcutil/tcutil.factor @@ -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 ) ;