/* * database.h * Crawl * * Created by Peter Berger on 4/15/07. * $Id:$ */ #ifndef DATABASE_H #define DATABASE_H #include "AppHdr.h" #include "externs.h" #include #ifdef DB_NDBM extern "C" { # include } #elif defined(DB_DBH) extern "C" { # define DB_DBM_HSEARCH 1 # include } #elif defined(USE_SQLITE_DBM) # include #else # error DBM interfaces unavailable! #endif #define DPTR_COERCE char * typedef std::list db_list; extern db_list openDBList; void databaseSystemInit(); void databaseSystemShutdown(); DBM *openDB(const char *dbFilename); datum database_fetch(DBM *database, const std::string &key); typedef bool (*db_find_filter)(std::string key, std::string body); std::vector database_find_keys(DBM *database, const std::string ®ex, bool ignore_case = false, db_find_filter filter = NULL); std::vector database_find_bodies(DBM *database, const std::string ®ex, bool ignore_case = false, db_find_filter filter = NULL); std::string getLongDescription(const std::string &key); std::vector getLongDescKeysByRegex(const std::string ®ex, db_find_filter filter = NULL); std::vector getLongDescBodiesByRegex(const std::string ®ex, db_find_filter filter = NULL); std::string getShoutString(const std::string &monst, const std::string &suffix = ""); std::string getSpeakString(const std::string &monst); std::string getHelpString(const std::string &topic); #endif