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=99bcc036c3e68a8fbc2d5ec836fa5dd38da65224;hb=a3466b322998a623a15907a5c3520b4f30d1c050;hpb=ebd7e30dd682685e1f4390718ec2797b8e902768 diff --git a/cdb/chiark_tcl_cdb.h b/cdb/chiark_tcl_cdb.h index 99bcc03..fef668c 100644 --- a/cdb/chiark_tcl_cdb.h +++ b/cdb/chiark_tcl_cdb.h @@ -1,4 +1,19 @@ /* + * 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 @@ -21,4 +36,25 @@ 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*/