chiark / gitweb /
more thorough kvp.c testing
[disorder] / server / trackdb.h
index d142f8a7cc86e33507d13ee71e2057736dc274ff..3cce6a5cced1ab970fb0404a2f1fea40f620ca28 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * This file is part of DisOrder
- * Copyright (C) 2005, 2006 Richard Kettlewell
+ * Copyright (C) 2005, 2006, 2007 Richard Kettlewell
  *
  * 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
@@ -17,6 +17,8 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  * USA
  */
+/** @file server/trackdb.h
+ * @brief Track database public interface */
 
 #ifndef TRACKDB_H
 #define TRACKDB_H
@@ -27,23 +29,49 @@ extern const struct cache_type cache_files_type;
 extern unsigned long cache_files_hits, cache_files_misses;
 /* Cache entry type and tracking for regexp-based lookups */
 
-void trackdb_init(int recover);
-#define TRACKDB_NO_RECOVER 0
-#define TRACKDB_NORMAL_RECOVER 1
-#define TRACKDB_FATAL_RECOVER 2
+/** @brief Do not attempt database recovery (trackdb_init()) */
+#define TRACKDB_NO_RECOVER 0x0000
+
+/** @brief Attempt normal recovery (trackdb_init()) */
+#define TRACKDB_NORMAL_RECOVER 0x0001
+
+/** @brief Attempt catastrophic trcovery (trackdb_init()) */
+#define TRACKDB_FATAL_RECOVER 0x0002
+
+/** @brief Mask of recovery bits (trackdb_init()) */
+#define TRACKDB_RECOVER_MASK 0x0003
+
+/** @brief Open for database upgrade (trackdb_open()) */
+#define TRACKDB_OPEN_FOR_UPGRADE 0x0004
+
+/** @brief Permit upgrade (trackdb_open()) */
+#define TRACKDB_CAN_UPGRADE 0x0008
+
+/** @brief Do not permit upgrade (trackdb_open()) */
+#define TRACKDB_NO_UPGRADE 0x0000
+
+/** @brief Mask of upgrade bits (trackdb_open()) */
+#define TRACKDB_UPGRADE_MASK 0x000C
+
+void trackdb_init(int flags);
 void trackdb_deinit(void);
 /* close/close environment */
 
 void trackdb_master(struct ev_source *ev);
 /* start deadlock manager */
 
-void trackdb_open(void);
+void trackdb_open(int flags);
 void trackdb_close(void);
 /* open/close track databases */
 
 char **trackdb_stats(int *nstatsp);
 /* return a list of database stats */
 
+void trackdb_stats_subprocess(struct ev_source *ev,
+                              void (*done)(char *data, void *u),
+                              void *u);
+/* collect stats in background and call done() with results */
+
 int trackdb_set(const char *track,
                 const char *name,
                 const char *value);
@@ -117,6 +145,10 @@ void trackdb_set_global(const char *name,
 const char *trackdb_get_global(const char *name);
 /* get a global pref */
 
+char **trackdb_new(int *ntracksp, int maxtracks);
+
+void trackdb_expire_noticed(time_t when);
+
 #endif /* TRACKDB_H */
 
 /*