]> arthur.barton.de Git - netatalk.git/blobdiff - etc/cnid_dbd/dbif.h
Merge 2-1
[netatalk.git] / etc / cnid_dbd / dbif.h
index 577ee8442e4e62b746b439737bd0c5051763fb2a..c936a2b93705daf7b5bf1a8061131f7a3174dd37 100644 (file)
@@ -1,6 +1,4 @@
 /*
-  $Id: dbif.h,v 1.8 2009-09-03 08:35:15 franklahm Exp $
   Copyright (C) Joerg Lenneis 2003
   Copyright (C) Frank Lahm 2009
   All Rights Reserved.  See COPYING.
@@ -18,8 +16,9 @@
      Pass NULL to create an in-memory db.
      Note: the DBD type is NOT from BerkeleyDB ! We've defined it.
   3. Call dbif_env_open to open an dbd environment if you called dbif_init
-     with a filename.
-  4. Call dbif_open to finally open the CNID database itself
+     with a filename. Pass a db_param here for on-disk databases.
+  4. Call dbif_open to finally open the CNID database itself. Pass db_param
+     here for in-memory database.
   
   Querying the CNID database
   --------------------------
 #include <atalk/adouble.h>
 #include "db_param.h"
 
-#define DBIF_DB_CNT 3
+#define DBIF_DB_CNT 4
  
 #define DBIF_CNID          0
 #define DBIF_IDX_DEVINO    1
 #define DBIF_IDX_DIDNAME   2
+#define DBIF_IDX_NAME      3
+
+/* get_lock cmd and return value */
+#define LOCKFILENAME  "lock"
+#define LOCK_FREE          0
+#define LOCK_UNLOCK        1
+#define LOCK_EXCL          2
+#define LOCK_SHRD          3
 
 /* Structures */
 typedef struct {
@@ -76,32 +83,35 @@ typedef struct {
 
 typedef struct {
     DB_ENV   *db_env;
+    struct db_param db_param;
     DB_TXN   *db_txn;
     DBC      *db_cur;              /* for dbif_walk */
     char     *db_envhome;
     char     *db_filename;
     FILE     *db_errlog;
-    db_table db_table[3];
+    db_table db_table[DBIF_DB_CNT];
 } DBD;
 
 /* Functions */
+extern int get_lock(int cmd, const char *dbpath);
+
 extern DBD *dbif_init(const char *envhome, const char *dbname);
 extern int dbif_env_open(DBD *dbd, struct db_param *dbp, uint32_t dbenv_oflags);
 extern int dbif_open(DBD *dbd, struct db_param *dbp, int reindex);
 extern int dbif_close(DBD *dbd);
-extern int dbif_prep_upgrade(const char *path);
+extern int dbif_env_remove(const char *path);
 
 extern int dbif_get(DBD *, const int, DBT *, DBT *, u_int32_t);
 extern int dbif_pget(DBD *, const int, DBT *, DBT *, DBT *, u_int32_t);
 extern int dbif_put(DBD *, const int, DBT *, DBT *, u_int32_t);
 extern int dbif_del(DBD *, const int, DBT *, u_int32_t);
 extern int dbif_count(DBD *, const int, u_int32_t *);
-extern int dbif_stamp(DBD *, void *, int);
+extern int dbif_search(DBD *dbd, DBT *key, char *resbuf);
 extern int dbif_copy_rootinfokey(DBD *srcdbd, DBD *destdbd);
 extern int dbif_txn_begin(DBD *);
 extern int dbif_txn_commit(DBD *);
 extern int dbif_txn_abort(DBD *);
-extern void dbif_txn_close(DBD *dbd, int ret); /* Switch between commit+abort */
+extern int dbif_txn_close(DBD *dbd, int ret); /* Switch between commit+abort */
 extern int dbif_txn_checkpoint(DBD *, u_int32_t, u_int32_t, u_int32_t);
 
 extern int dbif_dump(DBD *dbd, int dumpindexes);