]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/tokyo/alien/tcrdb/tcrdb.factor
factor: trim using lists
[factor.git] / extra / tokyo / alien / tcrdb / tcrdb.factor
index 7919c9269839413099d2d64f0545c3e11bc28003..fce11ac660f26ec06c57eff4a29cedb4aa9bf4a8 100644 (file)
@@ -1,30 +1,38 @@
-USING: kernel alien combinators alien.syntax
-       alien.c-types
-       alien.libraries tokyo.alien.tcutil tokyo.alien.tctdb ;
-IN: tokyo.alient.tcrdb
+! Copyright (C) 2009 Bruno Deferrari
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries alien.syntax
+combinators system tokyo.alien.tcutil tokyo.alien.tctdb ;
+IN: tokyo.alien.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 } ;
+<< "tokyotyrant" {
+    { [ os macosx? ] [ "libtokyotyrant.dylib" ] }
+    { [ os unix? ] [ "libtokyotyrant.so" ] }
+    { [ os windows? ] [ "tokyotyrant.dll" ] }
+} cond cdecl add-library >>
 
-C-ENUM:
-    TTESUCCESS
-    TTEINVALID
-    TTENOHOST
-    TTEREFUSED
-    TTESEND
-    TTERECV
-    TTEKEEP
-    TTENOREC ;
-CONSTANT: TTEMISC 9999
+LIBRARY: tokyotyrant
+
+C-TYPE: TCRDB
+! STRUCT: TCRDB
+!     { mmtx pthread_mutex_t }
+!     { eckey pthread_key_t }
+!     { host c-string }
+!     { port int }
+!     { expr c-string }
+!     { fd int }
+!     { sock TTSOCK* }
+!     { timeout double }
+!     { opts int } ;
+
+CONSTANT: TTESUCCESS 0
+CONSTANT: TTEINVALID 1
+CONSTANT: TTENOHOST  2
+CONSTANT: TTEREFUSED 3
+CONSTANT: TTESEND    4
+CONSTANT: TTERECV    5
+CONSTANT: TTEKEEP    6
+CONSTANT: TTENOREC   7
+CONSTANT: TTEMISC    9999
 
 CONSTANT: RDBTRECON   1
 CONSTANT: RDBXOLCKREC 1
@@ -32,54 +40,52 @@ 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 ) ;
+FUNCTION: c-string 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, c-string host, int port )
+FUNCTION: bool tcrdbopen2 ( TCRDB* rdb, c-string expr )
+FUNCTION: bool tcrdbclose ( TCRDB* rdb )
+FUNCTION: bool tcrdbput ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz )
+FUNCTION: bool tcrdbput2 ( TCRDB* rdb, c-string kstr, c-string vstr )
+FUNCTION: bool tcrdbputkeep ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz )
+FUNCTION: bool tcrdbputkeep2 ( TCRDB* rdb, c-string kstr, c-string vstr )
+FUNCTION: bool tcrdbputcat ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz )
+FUNCTION: bool tcrdbputcat2 ( TCRDB* rdb, c-string kstr, c-string vstr )
+FUNCTION: bool tcrdbputshl ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz, int width )
+FUNCTION: bool tcrdbputshl2 ( TCRDB* rdb, c-string kstr, c-string vstr, int width )
+FUNCTION: bool tcrdbputnr ( TCRDB* rdb, void* kbuf, int ksiz, void* vbuf, int vsiz )
+FUNCTION: bool tcrdbputnr2 ( TCRDB* rdb, c-string kstr, c-string vstr )
+FUNCTION: bool tcrdbout ( TCRDB* rdb, void* kbuf, int ksiz )
+FUNCTION: bool tcrdbout2 ( TCRDB* rdb, c-string kstr )
+FUNCTION: void* tcrdbget ( TCRDB* rdb, void* kbuf, int ksiz, int* sp )
+FUNCTION: c-string tcrdbget2 ( TCRDB* rdb, c-string kstr )
+FUNCTION: bool tcrdbget3 ( TCRDB* rdb, TCMAP* recs )
+FUNCTION: int tcrdbvsiz ( TCRDB* rdb, void* kbuf, int ksiz )
+FUNCTION: int tcrdbvsiz2 ( TCRDB* rdb, c-string kstr )
+FUNCTION: bool tcrdbiterinit ( TCRDB* rdb )
+FUNCTION: void* tcrdbiternext ( TCRDB* rdb, int* sp )
+FUNCTION: c-string tcrdbiternext2 ( TCRDB* rdb )
+FUNCTION: TCLIST* tcrdbfwmkeys ( TCRDB* rdb, void* pbuf, int psiz, int max )
+FUNCTION: TCLIST* tcrdbfwmkeys2 ( TCRDB* rdb, c-string 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, c-string name, int opts, void* kbuf, int ksiz, void* vbuf, int vsiz, int* sp )
+FUNCTION: c-string tcrdbext2 ( TCRDB* rdb, c-string name, int opts, c-string kstr, c-string vstr )
+FUNCTION: bool tcrdbsync ( TCRDB* rdb )
+FUNCTION: bool tcrdboptimize ( TCRDB* rdb, c-string params )
+FUNCTION: bool tcrdbvanish ( TCRDB* rdb )
+FUNCTION: bool tcrdbcopy ( TCRDB* rdb, c-string path )
+FUNCTION: bool tcrdbrestore ( TCRDB* rdb, c-string path, ulonglong ts, int opts )
+FUNCTION: bool tcrdbsetmst ( TCRDB* rdb, c-string host, int port, int opts )
+FUNCTION: bool tcrdbsetmst2 ( TCRDB* rdb, c-string expr, int opts )
+FUNCTION: c-string tcrdbexpr ( TCRDB* rdb )
+FUNCTION: ulonglong tcrdbrnum ( TCRDB* rdb )
+FUNCTION: ulonglong tcrdbsize ( TCRDB* rdb )
+FUNCTION: c-string tcrdbstat ( TCRDB* rdb )
+FUNCTION: TCLIST* tcrdbmisc ( TCRDB* rdb, c-string name, int opts, TCLIST* args )
 
 CONSTANT: RDBITLEXICAL TDBITLEXICAL
 CONSTANT: RDBITDECIMAL TDBITDECIMAL
@@ -87,10 +93,10 @@ CONSTANT: RDBITOPT     TDBITOPT
 CONSTANT: RDBITVOID    TDBITVOID
 CONSTANT: RDBITKEEP    TDBITKEEP
 
-TYPEDEF: void* RDBQRY*
-! C-STRUCT: RDBQRY
-!     { "TCRDB*" rdb }
-!     { "TCLIST*" args } ;
+C-TYPE: RDBQRY
+! STRUCT: RDBQRY
+!     { rdb TCRDB* }
+!     { args TCLIST* } ;
 
 CONSTANT: RDBQCSTREQ   TDBQCSTREQ
 CONSTANT: RDBQCSTRINC  TDBQCSTRINC
@@ -115,22 +121,22 @@ 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: bool tcrdbtblput ( TCRDB* rdb, void* pkbuf, int pksiz, TCMAP* cols )
+FUNCTION: bool tcrdbtblputkeep ( TCRDB* rdb, void* pkbuf, int pksiz, TCMAP* cols )
+FUNCTION: bool tcrdbtblputcat ( TCRDB* rdb, void* pkbuf, int pksiz, TCMAP* cols )
+FUNCTION: bool tcrdbtblout ( TCRDB* rdb, void* pkbuf, int pksiz )
+FUNCTION: TCMAP* tcrdbtblget ( TCRDB* rdb, void* pkbuf, int pksiz )
+FUNCTION: bool tcrdbtblsetindex ( TCRDB* rdb, c-string name, int type )
+FUNCTION: longlong tcrdbtblgenuid ( TCRDB* rdb )
+FUNCTION: RDBQRY* tcrdbqrynew ( TCRDB* rdb )
+FUNCTION: void tcrdbqrydel ( RDBQRY* qry )
+FUNCTION: void tcrdbqryaddcond ( RDBQRY* qry, c-string name, int op, c-string expr )
+FUNCTION: void tcrdbqrysetorder ( RDBQRY* qry, c-string 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 ) ;
+FUNCTION: void tcrdbsetecode ( TCRDB* rdb, int ecode )