/* A callback invoked by notmuch_database_compact to notify the user
* of the progress of the compaction process.
*/
-typedef void (*notmuch_compact_status_cb_t)(const char*);
+typedef void (*notmuch_compact_status_cb_t)(const char *message, void *closure);
/* Compact a notmuch database, backing up the original database to the
* given path.
* The database will be opened with NOTMUCH_DATABASE_MODE_READ_WRITE
* during the compaction process to ensure no writes are made.
*
+ * If the optional callback function 'status_cb' is non-NULL, it will
+ * be called with diagnostic and informational messages. The argument
+ * 'closure' is passed verbatim to any callback invoked.
*/
notmuch_status_t
notmuch_database_compact (const char* path,
const char* backup_path,
- notmuch_compact_status_cb_t status_cb);
+ notmuch_compact_status_cb_t status_cb,
+ void *closure);
/* Destroy the notmuch database, closing it if necessary and freeing
* all associated resources.
* provide progress indication to the user. If non-NULL it will be
* called periodically with 'progress' as a floating-point value in
* the range of [0.0 .. 1.0] indicating the progress made so far in
- * the upgrade process.
+ * the upgrade process. The argument 'closure' is passed verbatim to
+ * any callback invoked.
*/
notmuch_status_t
notmuch_database_upgrade (notmuch_database_t *database,