X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/763d5e6ad88ef3ba1cd1d7742d060e4f1e54c6b8..f982b120974480ac28655bbc8afd246bab56f02a:/server/trackdb.h diff --git a/server/trackdb.h b/server/trackdb.h index d142f8a..c6a5897 100644 --- a/server/trackdb.h +++ b/server/trackdb.h @@ -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,51 @@ 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 */ +extern int trackdb_existing_database; + 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 +147,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 */ /*