X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fdatabase-private.h;h=41918d760fe82bed3c960f07f08f30159d3e4231;hb=417274d698b6718621b9f5dec744ab169499f4e3;hp=431966fbd7de14d4a5297cefe0e8ca75d8a6f929;hpb=793cbf80495b8230e0b4de6ac609e2ca88b7dd4b;p=notmuch diff --git a/lib/database-private.h b/lib/database-private.h index 431966fb..41918d76 100644 --- a/lib/database-private.h +++ b/lib/database-private.h @@ -21,18 +21,47 @@ #ifndef NOTMUCH_DATABASE_PRIVATE_H #define NOTMUCH_DATABASE_PRIVATE_H +/* According to WG14/N1124, a C++ implementation won't provide us a + * macro like PRIx64 (which gives a printf format string for + * formatting a uint64_t as hexadecimal) unless we define + * __STDC_FORMAT_MACROS before including inttypes.h. That's annoying, + * but there it is. + */ +#define __STDC_FORMAT_MACROS +#include + #include "notmuch-private.h" #include struct _notmuch_database { notmuch_bool_t exception_reported; + char *path; + + notmuch_bool_t needs_upgrade; notmuch_database_mode_t mode; Xapian::Database *xapian_db; + + uint64_t last_thread_id; + Xapian::QueryParser *query_parser; Xapian::TermGenerator *term_gen; Xapian::ValueRangeProcessor *value_range_processor; + }; +/* Convert tags from Xapian internal format to notmuch format. + * + * The function gets a TermIterator as argument and uses that iterator to find + * all tag terms in the object. The tags are then converted to a + * notmuch_tags_t list and returned. The function needs to allocate memory for + * the resulting list and it uses the argument ctx as talloc context. + * + * The function returns NULL on failure. + */ +notmuch_tags_t * +_notmuch_convert_tags (void *ctx, Xapian::TermIterator &i, + Xapian::TermIterator &end); + #endif