diff options
author | Ben Gamari <bgamari.foss@gmail.com> | 2013-10-02 16:30:46 -0400 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2013-10-09 21:46:49 -0300 |
commit | 0bd11b654e048a2ba562137c76d51296808b1a5d (patch) | |
tree | a3350d6260b97b677f8ef45ebe49a2f7239bd19a /lib/notmuch.h | |
parent | 54c40fb4c07224e194ac62330810d33cd7d6f5e1 (diff) |
database: Add notmuch_database_compact_close
This function uses Xapian's Compactor machinery to compact the notmuch
database. The compacted database is built in a temporary directory and
later moved into place while the original uncompacted database is
preserved.
Signed-off-by: Ben Gamari <bgamari.foss@gmail.com>
Diffstat (limited to 'lib/notmuch.h')
-rw-r--r-- | lib/notmuch.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/notmuch.h b/lib/notmuch.h index 998a4ae6..9dab555f 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -101,6 +101,7 @@ typedef enum _notmuch_status { NOTMUCH_STATUS_TAG_TOO_LONG, NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW, NOTMUCH_STATUS_UNBALANCED_ATOMIC, + NOTMUCH_STATUS_UNSUPPORTED_OPERATION, NOTMUCH_STATUS_LAST_STATUS } notmuch_status_t; @@ -215,8 +216,26 @@ notmuch_database_open (const char *path, void notmuch_database_close (notmuch_database_t *database); +/* 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*); + +/* 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. + * + */ +notmuch_status_t +notmuch_database_compact (const char* path, + const char* backup_path, + notmuch_compact_status_cb_t status_cb); + /* Destroy the notmuch database, closing it if necessary and freeing -* all associated resources. */ + * all associated resources. + */ void notmuch_database_destroy (notmuch_database_t *database); |