* notmuch_<foo> functions below. */
typedef struct _notmuch_database notmuch_database_t;
typedef struct _notmuch_query notmuch_query_t;
-typedef struct _notmuch_thread_results notmuch_thread_results_t;
+typedef struct _notmuch_threads notmuch_threads_t;
typedef struct _notmuch_thread notmuch_thread_t;
-typedef struct _notmuch_message_results notmuch_message_results_t;
+typedef struct _notmuch_messages notmuch_messages_t;
typedef struct _notmuch_message notmuch_message_t;
typedef struct _notmuch_tags notmuch_tags_t;
void
notmuch_query_set_sort (notmuch_query_t *query, notmuch_sort_t sort);
-/* Execute a query for threads, returning a notmuch_thread_results_t
- * object which can be used to iterate over the results. The results
+/* Execute a query for threads, returning a notmuch_threads_t object
+ * which can be used to iterate over the results. The returned threads
* object is owned by the query and as such, will only be valid until
* notmuch_query_destroy.
*
* Typical usage might be:
*
* notmuch_query_t *query;
- * notmuch_thread_results_t *results;
+ * notmuch_threads_t *threads;
* notmuch_thread_t *thread;
*
* query = notmuch_query_create (database, query_string);
*
- * for (results = notmuch_query_search_threads (query);
- * notmuch_thread_results_has_more (results);
- * notmuch_thread_results_advance (results))
+ * for (threads = notmuch_query_search_threads (query);
+ * notmuch_threads_has_more (threads);
+ * notmuch_threads_advance (threads))
* {
- * thread = notmuch_thread_results_get (results);
+ * thread = notmuch_threads_get (threads);
* ....
* notmuch_thread_destroy (thread);
* }
* destroyed.
*
* Note that there's no explicit destructor needed for the
- * notmuch_thread_results_t object. (For consistency, we do provide a
- * notmuch_thread_results_destroy function, but there's no good reason
+ * notmuch_threads_t object. (For consistency, we do provide a
+ * notmuch_threads_destroy function, but there's no good reason
* to call it if the query is about to be destroyed).
*/
-notmuch_thread_results_t *
+notmuch_threads_t *
notmuch_query_search_threads (notmuch_query_t *query);
-/* Execute a query for messages, returning a notmuch_message_results_t
- * object which can be used to iterate over the results. The results
- * object is owned by the query and as such, will only be valid until
- * notmuch_query_destroy.
+/* Execute a query for messages, returning a notmuch_messages_t object
+ * which can be used to iterate over the results. The returned
+ * messages object is owned by the query and as such, will only be
+ * valid until notmuch_query_destroy.
*
* Typical usage might be:
*
* notmuch_query_t *query;
- * notmuch_message_results_t *results;
+ * notmuch_messages_t *messages;
* notmuch_message_t *message;
*
* query = notmuch_query_create (database, query_string);
*
- * for (results = notmuch_query_search_messages (query);
- * notmuch_message_results_has_more (results);
- * notmuch_message_results_advance (results))
+ * for (messages = notmuch_query_search_messages (query);
+ * notmuch_messages_has_more (messages);
+ * notmuch_messages_advance (messages))
* {
- * message = notmuch_message_results_get (results);
+ * message = notmuch_messages_get (messages);
* ....
* notmuch_message_destroy (message);
* }
* when the query is destroyed.
*
* Note that there's no explicit destructor needed for the
- * notmuch_message_results_t object. (For consistency, we do provide a
- * notmuch_message_results_destroy function, but there's no good
+ * notmuch_messages_t object. (For consistency, we do provide a
+ * notmuch_messages_destroy function, but there's no good
* reason to call it if the query is about to be destroyed).
*/
-notmuch_message_results_t *
+notmuch_messages_t *
notmuch_query_search_messages (notmuch_query_t *query);
/* Destroy a notmuch_query_t along with any associated resources.
*
- * This will in turn destroy any notmuch_thread_results_t and
- * notmuch_message_results_t objects generated by this query, (and in
+ * This will in turn destroy any notmuch_threads_t and
+ * notmuch_messages_t objects generated by this query, (and in
* turn any notmuch_thrad_t and notmuch_message_t objects generated
* from those results, etc.), if such objects haven't already been
* destroyed.
void
notmuch_query_destroy (notmuch_query_t *query);
-/* Does the given notmuch_thread_results_t object contain any more
+/* Does the given notmuch_threads_t object contain any more
* results.
*
- * When this function returns TRUE, notmuch_thread_results_get will
+ * When this function returns TRUE, notmuch_threads_get will
* return a valid object. Whereas when this function returns FALSE,
- * notmuch_thread_results_get will return NULL.
+ * notmuch_threads_get will return NULL.
*
* See the documentation of notmuch_query_search_threads for example
- * code showing how to iterate over a notmuch_thread_results_t object.
+ * code showing how to iterate over a notmuch_threads_t object.
*/
notmuch_bool_t
-notmuch_thread_results_has_more (notmuch_thread_results_t *results);
+notmuch_threads_has_more (notmuch_threads_t *threads);
-/* Get the current result from 'results' as a notmuch_thread_t.
+/* Get the current thread from 'threads' as a notmuch_thread_t.
*
- * Note: The returned thread belongs to 'results' and has a lifetime
+ * Note: The returned thread belongs to 'threads' and has a lifetime
* identical to it (and the query to which it belongs).
*
* See the documentation of notmuch_query_search_threads for example
- * code showing how to iterate over a notmuch_thread_results_t object.
+ * code showing how to iterate over a notmuch_threads_t object.
*
* If an out-of-memory situation occurs, this function will return
* NULL.
*/
notmuch_thread_t *
-notmuch_thread_results_get (notmuch_thread_results_t *results);
+notmuch_threads_get (notmuch_threads_t *threads);
-/* Advance the 'results' iterator to the next result.
+/* Advance the 'threads' iterator to the next thread.
*
* See the documentation of notmuch_query_search_threads for example
- * code showing how to iterate over a notmuch_thread_results_t object.
+ * code showing how to iterate over a notmuch_threads_t object.
*/
void
-notmuch_thread_results_advance (notmuch_thread_results_t *results);
+notmuch_threads_advance (notmuch_threads_t *threads);
-/* Destroy a notmuch_thread_results_t object.
+/* Destroy a notmuch_threads_t object.
*
* It's not strictly necessary to call this function. All memory from
- * the notmuch_thread_results_t object will be reclaimed when the
+ * the notmuch_threads_t object will be reclaimed when the
* containg query object is destroyed.
*/
void
-notmuch_thread_results_destroy (notmuch_thread_results_t *results);
+notmuch_threads_destroy (notmuch_threads_t *threads);
/* Get the thread ID of 'thread'.
*
const char *
notmuch_thread_get_subject (notmuch_thread_t *thread);
+/* Get the date of the oldest message in 'thread' as a time_t value.
+ */
+time_t
+notmuch_thread_get_oldest_date (notmuch_thread_t *thread);
+
+/* Get the date of the oldest message in 'thread' as a time_t value.
+ */
+time_t
+notmuch_thread_get_newest_date (notmuch_thread_t *thread);
+
/* Get the tags for 'thread', returning a notmuch_tags_t object which
* can be used to iterate over all tags.
*
* notmuch_tags_t *tags;
* const char *tag;
*
- * thread = notmuch_thread_results_get (thread_results);
+ * thread = notmuch_threads_get (threads);
*
* for (tags = notmuch_thread_get_tags (thread);
* notmuch_tags_has_more (tags);
void
notmuch_thread_destroy (notmuch_thread_t *thread);
-/* Does the given notmuch_message_results_t object contain any more
- * results.
+/* Does the given notmuch_messages_t object contain any more
+ * messages.
*
- * When this function returns TRUE, notmuch_message_results_get will
- * return a valid object. Whereas when this function returns FALSE,
- * notmuch_message_results_get will return NULL.
+ * When this function returns TRUE, notmuch_messages_get will return a
+ * valid object. Whereas when this function returns FALSE,
+ * notmuch_messages_get will return NULL.
*
* See the documentation of notmuch_query_search_messages for example
- * code showing how to iterate over a notmuch_message_results_t
- * object.
+ * code showing how to iterate over a notmuch_messages_t object.
*/
notmuch_bool_t
-notmuch_message_results_has_more (notmuch_message_results_t *results);
+notmuch_messages_has_more (notmuch_messages_t *messages);
-/* Get the current result from 'results' as a notmuch_message_t.
+/* Get the current message from 'messages' as a notmuch_message_t.
*
- * Note: The returned message belongs to 'results' and has a lifetime
+ * Note: The returned message belongs to 'messages' and has a lifetime
* identical to it (and the query to which it belongs).
*
* See the documentation of notmuch_query_search_messages for example
- * code showing how to iterate over a notmuch_message_results_t
- * object.
+ * code showing how to iterate over a notmuch_messages_t object.
*
* If an out-of-memory situation occurs, this function will return
* NULL.
*/
notmuch_message_t *
-notmuch_message_results_get (notmuch_message_results_t *results);
+notmuch_messages_get (notmuch_messages_t *messages);
-/* Advance the 'results' iterator to the next result.
+/* Advance the 'messages' iterator to the next result.
*
* See the documentation of notmuch_query_search_messages for example
- * code showing how to iterate over a notmuch_message_results_t
- * object.
+ * code showing how to iterate over a notmuch_messages_t object.
*/
void
-notmuch_message_results_advance (notmuch_message_results_t *results);
+notmuch_messages_advance (notmuch_messages_t *messages);
-/* Destroy a notmuch_message_results_t object.
+/* Destroy a notmuch_messages_t object.
*
* It's not strictly necessary to call this function. All memory from
- * the notmuch_message_results_t object will be reclaimed when the
- * containg query object is destroyed.
+ * the notmuch_messages_t object will be reclaimed when the containg
+ * query object is destroyed.
*/
void
-notmuch_message_results_destroy (notmuch_message_results_t *results);
+notmuch_messages_destroy (notmuch_messages_t *messages);
/* Get the message ID of 'message'.
*
const char *
notmuch_message_get_filename (notmuch_message_t *message);
+/* Get the date of 'message' as a time_t value.
+ *
+ * For the original textual representation of the Date header from the
+ * message call notmuch_message_get_header() with a header value of
+ * "date". */
+time_t
+notmuch_message_get_date (notmuch_message_t *message);
+
+/* Get the size in bytes of the full header section of 'message'.
+ *
+ * This is useful in conjunction with notmuch_message_get_filename
+ * for separately parsing the message header and content.
+ *
+ * Returns 0 in the case of any error.
+ */
+size_t
+notmuch_message_get_header_size (notmuch_message_t *message);
+
/* Get the value of the specified header from 'message'.
*
* The value will be read from the actual message file, not from the