lib: publish API for notmuch_database_reopen

Include the (currently unused) mode argument which will specify which
mode to re-open the database in. Functionality and docs to be
finalized in a followup commit.
This commit is contained in:
David Bremner 2021-03-14 11:01:57 -03:00
parent 9a5406cc94
commit 1121299905
4 changed files with 11 additions and 5 deletions

View file

@ -518,7 +518,8 @@ notmuch_database_close (notmuch_database_t *notmuch)
}
notmuch_status_t
_notmuch_database_reopen (notmuch_database_t *notmuch)
notmuch_database_reopen (notmuch_database_t *notmuch,
unused(notmuch_database_mode_t mode))
{
if (_notmuch_database_mode (notmuch) != NOTMUCH_DATABASE_MODE_READ_ONLY)
return NOTMUCH_STATUS_UNSUPPORTED_OPERATION;

View file

@ -459,7 +459,8 @@ _notmuch_message_ensure_metadata (notmuch_message_t *message, void *field)
/* all the way without an exception */
break;
} catch (const Xapian::DatabaseModifiedError &error) {
notmuch_status_t status = _notmuch_database_reopen (message->notmuch);
notmuch_status_t status = notmuch_database_reopen (message->notmuch,
NOTMUCH_DATABASE_MODE_READ_ONLY);
if (status != NOTMUCH_STATUS_SUCCESS)
INTERNAL_ERROR ("unhandled error from notmuch_database_reopen: %s\n",
notmuch_status_to_string (status));

View file

@ -204,9 +204,6 @@ _notmuch_message_id_compressed (void *ctx, const char *message_id);
notmuch_status_t
_notmuch_database_ensure_writable (notmuch_database_t *notmuch);
notmuch_status_t
_notmuch_database_reopen (notmuch_database_t *notmuch);
void
_notmuch_database_log (notmuch_database_t *notmuch,
const char *format, ...);

View file

@ -879,6 +879,13 @@ notmuch_database_find_message_by_filename (notmuch_database_t *notmuch,
notmuch_tags_t *
notmuch_database_get_all_tags (notmuch_database_t *db);
/**
* Reopen an open notmuch database.
*
*/
notmuch_status_t
notmuch_database_reopen (notmuch_database_t *db, notmuch_database_mode_t mode);
/**
* Create a new query for 'database'.
*