X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=cdb%2Fchiark_tcl_cdb.h;h=fef668c6efeede8127ac150ae7daea21226bc836;hp=db2d3d1d31546b238886c6ec96723f29529b2b99;hb=68c9013db490dfa7fbaa4f1d4bd7c282cdd77825;hpb=7795b9e72903475e48adbc986a945ef3a7fb0309 diff --git a/cdb/chiark_tcl_cdb.h b/cdb/chiark_tcl_cdb.h index db2d3d1..fef668c 100644 --- a/cdb/chiark_tcl_cdb.h +++ b/cdb/chiark_tcl_cdb.h @@ -1,12 +1,60 @@ /* + * cdb, cdb-wr - Tcl bindings for tinycdb and a journalling write extension + * Copyright 2006-2012 Ian Jackson + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this library; if not, see . */ #ifndef CHIARK_TCL_CDB_H #define CHIARK_TCL_CDB_H +#include +#include +#include +#include + +#include +#include + +#include + #include "hbytes.h" #include "cdb+tcmdif.h" +#define RWSCF_OKJUNK 002 + extern const IdDataSpec cdbtcl_databases, cdbtcl_rwdatabases; +/*---------- from lookup.c ----------*/ + +int cht_cdb_donesomelookup(Tcl_Interp *ip, void *db_v, + Tcl_Obj *def, Tcl_Obj **result, + const Byte *data, int dlen, + int (*storeanswer)(Tcl_Interp *ip, Tcl_Obj **result, + const Byte *data, int len)); +int cht_cdb_storeanswer_string(Tcl_Interp *ip, Tcl_Obj **result, + const Byte *data, int len); +int cht_cdb_storeanswer_hb(Tcl_Interp *ip, Tcl_Obj **result, + const Byte *data, int len); +int cht_cdb_lookup_cdb(Tcl_Interp *ip, struct cdb *cdb, + const Byte *key, int klen, + const Byte **data_r, int *dlen_r); + +/*---------- macros ----------*/ + +#define PE(m) do{ \ + rc= cht_posixerr(ip, errno, "failed to " m); goto x_rc; \ + }while(0) + #endif /*CHIARK_TCL_CDB_H*/