diff options
author | Carl Worth <cworth@cworth.org> | 2009-10-23 05:18:35 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-10-23 05:20:03 -0700 |
commit | 97775ef438a6015c63d6a5cf25f85937153cde59 (patch) | |
tree | 414a12d506e52f1ca505b2bd5cef845f318c73b9 /message.cc | |
parent | 1ecdef59f5f3b5b1e9f00bbf27349fd5d48d747f (diff) |
Move the _notmuch_message_sync from private to public interfaces
The idea here is to allow internal users to see a non-synced message
object, (for example, while parsing a message file and incrementally
adding terms, etc.). We're willing to take the care to get the
improved performance.
But for the public interface, keeping everything synced will be much
less confusing, (reference lots of sup bugs that happen due to
message state being altered by the user but not synced to the database).
Diffstat (limited to 'message.cc')
-rw-r--r-- | message.cc | 20 |
1 files changed, 18 insertions, 2 deletions
@@ -214,6 +214,13 @@ _notmuch_message_sync (notmuch_message_t *message) db->replace_document (message->doc_id, message->doc); } +/* Add a name:value term to 'message', (the actual term will be + * encoded by prefixing the value with a short prefix). See + * NORMAL_PREFIX and BOOLEAN_PREFIX arrays for the mapping of term + * names to prefix values. + * + * This change will not be reflected in the database until the next + * call to _notmuch_message_set_sync. */ notmuch_private_status_t _notmuch_message_add_term (notmuch_message_t *message, const char *prefix_name, @@ -232,13 +239,19 @@ _notmuch_message_add_term (notmuch_message_t *message, return NOTMUCH_PRIVATE_STATUS_TERM_TOO_LONG; message->doc.add_term (term); - _notmuch_message_sync (message); talloc_free (term); return NOTMUCH_PRIVATE_STATUS_SUCCESS; } +/* Remove a name:value term from 'message', (the actual term will be + * encoded by prefixing the value with a short prefix). See + * NORMAL_PREFIX and BOOLEAN_PREFIX arrays for the mapping of term + * names to prefix values. + * + * This change will not be reflected in the database until the next + * call to _notmuch_message_set_sync. */ notmuch_private_status_t _notmuch_message_remove_term (notmuch_message_t *message, const char *prefix_name, @@ -256,7 +269,6 @@ _notmuch_message_remove_term (notmuch_message_t *message, return NOTMUCH_PRIVATE_STATUS_TERM_TOO_LONG; message->doc.remove_term (term); - _notmuch_message_sync (message); talloc_free (term); @@ -281,6 +293,8 @@ notmuch_message_add_tag (notmuch_message_t *message, const char *tag) exit (1); } + _notmuch_message_sync (message); + return NOTMUCH_STATUS_SUCCESS; } @@ -302,6 +316,8 @@ notmuch_message_remove_tag (notmuch_message_t *message, const char *tag) exit (1); } + _notmuch_message_sync (message); + return NOTMUCH_STATUS_SUCCESS; } |