X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=database%2Fdatabase.h;h=6dfcf9dddabe2675566f55599a1fad8b7be53d03;hb=3e3138025852408ef03f3213972e042e12841bed;hp=aa2403a39d2e9c38b52e34f041f11e3803f3e896;hpb=767693caf2b41c2e857688d10d2c71bc77c0bbad;p=blerg.git diff --git a/database/database.h b/database/database.h index aa2403a..6dfcf9d 100644 --- a/database/database.h +++ b/database/database.h @@ -23,7 +23,11 @@ struct meta { uint32_t status; }; -#define BLERGMETA_MUTED 0x00000001 +/* meta.status is a bitfield of these options */ +/* Muted - if set, tags/refs and subscriptions are not calculated */ +#define BLERGSTATUS_MUTED 0x00000001 +/* Mentioned - if set, user has been mentioned. */ +#define BLERGSTATUS_MENTIONED 0x00000002 struct blerg { int meta_fd; @@ -38,16 +42,19 @@ struct blerg { int data_size; }; -int blerg_exists(const char *); -struct blerg *blerg_open(const char *); -int blerg_close(struct blerg *); -int blerg_store(struct blerg *, const char *, int); -int blerg_fetch(struct blerg *, int, char **, int *); +#define BLERG_INVALID_RECORD 0xFFFFFFFFFFFFFFFF + +int blerg_init(); +int blerg_exists(const char *name); +struct blerg *blerg_open(const char *name); +int blerg_close(struct blerg *blerg); +uint64_t blerg_store(struct blerg *blerg, const char *data, int length); +int blerg_fetch(struct blerg *blerg, uint64_t record, char **data, int *length); uint64_t blerg_get_record_count(struct blerg *); -time_t blerg_get_timestamp(struct blerg *blerg, int record); -int blerg_set_subscription_mark(struct blerg *blerg); +time_t blerg_get_timestamp(struct blerg *blerg, uint64_t record); +int blerg_set_subscription_mark(struct blerg *blerg); uint64_t blerg_get_subscription_mark(struct blerg *blerg); -int blerg_set_mute(struct blerg *blerg, int v); -int blerg_get_mute(struct blerg *blerg); +int blerg_set_status(struct blerg *blerg, uint32_t status, int v); +int blerg_get_status(struct blerg *blerg, uint32_t status); #endif //_DATABASE_H