diff options
| author | David Bremner <david@tethera.net> | 2017-06-04 09:32:31 -0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-08-01 21:17:47 -0400 |
| commit | 50340bcb78586dc63b5e0914563665b30e8f88d0 (patch) | |
| tree | 57a8d8d274996d38bdb6d9a5224e03103d2af197 /lib | |
| parent | 8a8e2b11c208050aa1d719ec0933f58d51628fdd (diff) | |
lib: add notmuch_thread_get_total_files
This is relatively inexpensive in terms of run time and implementation
cost as we are already traversing the list of messages in a thread.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/notmuch.h | 12 | ||||
| -rw-r--r-- | lib/thread.cc | 9 |
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/notmuch.h b/lib/notmuch.h index f5018497..4c03a893 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -1097,6 +1097,18 @@ int notmuch_thread_get_total_messages (notmuch_thread_t *thread); /** + * Get the total number of files in 'thread'. + * + * This sums notmuch_message_count_files over all messages in the + * thread + * @returns Non-negative integer + * @since libnotmuch 5.0 (notmuch 0.25) + */ + +int +notmuch_thread_get_total_files (notmuch_thread_t *thread); + +/** * Get a notmuch_messages_t iterator for the top-level messages in * 'thread' in oldest-first order. * diff --git a/lib/thread.cc b/lib/thread.cc index 1a1ecfa5..e17ef63e 100644 --- a/lib/thread.cc +++ b/lib/thread.cc @@ -44,6 +44,7 @@ struct _notmuch_thread { GHashTable *message_hash; int total_messages; + int total_files; int matched_messages; time_t oldest; time_t newest; @@ -266,6 +267,7 @@ _thread_add_message (notmuch_thread_t *thread, _notmuch_message_list_add_message (thread->message_list, talloc_steal (thread, message)); thread->total_messages++; + thread->total_files += notmuch_message_count_files (message); g_hash_table_insert (thread->message_hash, xstrdup (notmuch_message_get_message_id (message)), @@ -495,6 +497,7 @@ _notmuch_thread_create (void *ctx, free, NULL); thread->total_messages = 0; + thread->total_files = 0; thread->matched_messages = 0; thread->oldest = 0; thread->newest = 0; @@ -567,6 +570,12 @@ notmuch_thread_get_total_messages (notmuch_thread_t *thread) } int +notmuch_thread_get_total_files (notmuch_thread_t *thread) +{ + return thread->total_files; +} + +int notmuch_thread_get_matched_messages (notmuch_thread_t *thread) { return thread->matched_messages; |
