Rename notmuch_query_search to notmuch_query_search_messages

Along with renaming notmuch_results_t to notmuch_message_results_t.
The new type is quite a mouthful, but I don't expect it to be
used much other than the for-loop idiom in the documentation,
(which does at least fit nicely within 80 columns).

This is all in preparation for the addition of a new
notmuch_query_search_threads of course.
This commit is contained in:
Carl Worth 2009-10-25 22:11:09 -07:00
parent 70f9d0ad42
commit cd467cafb5
3 changed files with 58 additions and 53 deletions

View file

@ -608,7 +608,7 @@ search_command (int argc, char *argv[])
void *local = talloc_new (NULL); void *local = talloc_new (NULL);
notmuch_database_t *notmuch = NULL; notmuch_database_t *notmuch = NULL;
notmuch_query_t *query; notmuch_query_t *query;
notmuch_results_t *results; notmuch_message_results_t *results;
notmuch_message_t *message; notmuch_message_t *message;
notmuch_tags_t *tags; notmuch_tags_t *tags;
char *query_str; char *query_str;
@ -638,12 +638,12 @@ search_command (int argc, char *argv[])
goto DONE; goto DONE;
} }
for (results = notmuch_query_search (query); for (results = notmuch_query_search_messages (query);
notmuch_results_has_more (results); notmuch_message_results_has_more (results);
notmuch_results_advance (results)) notmuch_message_results_advance (results))
{ {
int first = 1; int first = 1;
message = notmuch_results_get (results); message = notmuch_message_results_get (results);
printf ("%s (", notmuch_message_get_message_id (message)); printf ("%s (", notmuch_message_get_message_id (message));
@ -687,7 +687,7 @@ dump_command (int argc, char *argv[])
FILE *output; FILE *output;
notmuch_database_t *notmuch = NULL; notmuch_database_t *notmuch = NULL;
notmuch_query_t *query; notmuch_query_t *query;
notmuch_results_t *results; notmuch_message_results_t *results;
notmuch_message_t *message; notmuch_message_t *message;
notmuch_tags_t *tags; notmuch_tags_t *tags;
int ret = 0; int ret = 0;
@ -719,12 +719,12 @@ dump_command (int argc, char *argv[])
notmuch_query_set_sort (query, NOTMUCH_SORT_MESSAGE_ID); notmuch_query_set_sort (query, NOTMUCH_SORT_MESSAGE_ID);
for (results = notmuch_query_search (query); for (results = notmuch_query_search_messages (query);
notmuch_results_has_more (results); notmuch_message_results_has_more (results);
notmuch_results_advance (results)) notmuch_message_results_advance (results))
{ {
int first = 1; int first = 1;
message = notmuch_results_get (results); message = notmuch_message_results_get (results);
fprintf (output, fprintf (output,
"%s (", notmuch_message_get_message_id (message)); "%s (", notmuch_message_get_message_id (message));

View file

@ -102,7 +102,7 @@ notmuch_status_to_string (notmuch_status_t status);
* notmuch_<foo> functions below. */ * notmuch_<foo> functions below. */
typedef struct _notmuch_database notmuch_database_t; typedef struct _notmuch_database notmuch_database_t;
typedef struct _notmuch_query notmuch_query_t; typedef struct _notmuch_query notmuch_query_t;
typedef struct _notmuch_results notmuch_results_t; typedef struct _notmuch_message_results notmuch_message_results_t;
typedef struct _notmuch_message notmuch_message_t; typedef struct _notmuch_message notmuch_message_t;
typedef struct _notmuch_tags notmuch_tags_t; typedef struct _notmuch_tags notmuch_tags_t;
@ -313,22 +313,24 @@ typedef enum {
void void
notmuch_query_set_sort (notmuch_query_t *query, notmuch_sort_t sort); notmuch_query_set_sort (notmuch_query_t *query, notmuch_sort_t sort);
/* Execute a query, returning a notmuch_results_t object which can be /* Execute a query for messages, returning a notmuch_message_results_t
* used to iterate over the results. The results object is owned by * object which can be used to iterate over the results. The results
* the query and as such, will only be valid until notmuch_query_destroy. * object is owned by the query and as such, will only be valid until
* notmuch_query_destroy.
* *
* Typical usage might be: * Typical usage might be:
* *
* notmuch_query_t *query; * notmuch_query_t *query;
* notmuch_results_t *results; * notmuch_message_results_t *results;
* notmuch_message_t *message;
* *
* query = notmuch_query_create (database, query_string); * query = notmuch_query_create (database, query_string);
* *
* for (results = notmuch_query_search (query); * for (results = notmuch_query_search_messages (query);
* notmuch_results_has_more (results); * notmuch_message_results_has_more (results);
* notmuch_result_advance (results)) * notmuch_message_results_advance (results))
* { * {
* message = notmuch_results_get (results); * message = notmuch_message_results_get (results);
* .... * ....
* notmuch_message_destroy (message); * notmuch_message_destroy (message);
* } * }
@ -343,12 +345,12 @@ notmuch_query_set_sort (notmuch_query_t *query, notmuch_sort_t sort);
* when the query is destroyed. * when the query is destroyed.
* *
* Note that there's no explicit destructor needed for the * Note that there's no explicit destructor needed for the
* notmuch_results_t object. (For consistency, we do provide a * notmuch_message_results_t object. (For consistency, we do provide a
* notmuch_results_destroy function, but there's no good reason to * notmuch_message_results_destroy function, but there's no good
* call it if the query is about to be destroyed). * reason to call it if the query is about to be destroyed).
*/ */
notmuch_results_t * notmuch_message_results_t *
notmuch_query_search (notmuch_query_t *query); notmuch_query_search_messages (notmuch_query_t *query);
/* Destroy a notmuch_query_t along with any associated resources. /* Destroy a notmuch_query_t along with any associated resources.
* *
@ -359,48 +361,52 @@ notmuch_query_search (notmuch_query_t *query);
void void
notmuch_query_destroy (notmuch_query_t *query); notmuch_query_destroy (notmuch_query_t *query);
/* Does the given notmuch_results_t object contain any more results. /* Does the given notmuch_message_results_t object contain any more
* results.
* *
* When this function returns TRUE, notmuch_results_get will return a * When this function returns TRUE, notmuch_message_results_get will
* valid object. Whereas when this function returns FALSE, * return a valid object. Whereas when this function returns FALSE,
* notmuch_results_get will return NULL. * notmuch_message_results_get will return NULL.
* *
* See the documentation of notmuch_query_search for example code * See the documentation of notmuch_query_search_messages for example
* showing how to iterate over a notmuch_results_t object. * code showing how to iterate over a notmuch_message_results_t
* object.
*/ */
notmuch_bool_t notmuch_bool_t
notmuch_results_has_more (notmuch_results_t *results); notmuch_message_results_has_more (notmuch_message_results_t *results);
/* Get the current result from 'results' as a notmuch_message_t. /* Get the current result from 'results' as a notmuch_message_t.
* *
* Note: The returned message belongs to 'results' and has a lifetime * Note: The returned message belongs to 'results' and has a lifetime
* identical to it (and the query to which it belongs). * identical to it (and the query to which it belongs).
* *
* See the documentation of notmuch_query_search for example code * See the documentation of notmuch_query_search_messages for example
* showing how to iterate over a notmuch_results_t object. * code showing how to iterate over a notmuch_message_results_t
* object.
* *
* If an out-of-memory situation occurs, this function will return * If an out-of-memory situation occurs, this function will return
* NULL. * NULL.
*/ */
notmuch_message_t * notmuch_message_t *
notmuch_results_get (notmuch_results_t *results); notmuch_message_results_get (notmuch_message_results_t *results);
/* Advance the 'results' iterator to the next result. /* Advance the 'results' iterator to the next result.
* *
* See the documentation of notmuch_query_search for example code * See the documentation of notmuch_query_search_messages for example
* showing how to iterate over a notmuch_results_t object. * code showing how to iterate over a notmuch_message_results_t
* object.
*/ */
void void
notmuch_results_advance (notmuch_results_t *results); notmuch_message_results_advance (notmuch_message_results_t *results);
/* Destroy a notmuch_results_t object. /* Destroy a notmuch_message_results_t object.
* *
* It's not strictly necessary to call this function. All memory from * It's not strictly necessary to call this function. All memory from
* the notmuch_results_t object will be reclaimed when the containg * the notmuch_message_results_t object will be reclaimed when the
* query object is destroyed. * containg query object is destroyed.
*/ */
void void
notmuch_results_destroy (notmuch_results_t *results); notmuch_message_results_destroy (notmuch_message_results_t *results);
/* Get the message ID of 'message'. /* Get the message ID of 'message'.
* *
@ -416,7 +422,6 @@ notmuch_results_destroy (notmuch_results_t *results);
const char * const char *
notmuch_message_get_message_id (notmuch_message_t *message); notmuch_message_get_message_id (notmuch_message_t *message);
/* Get the thread ID of 'message'. /* Get the thread ID of 'message'.
* *
* The returned string belongs to 'message' and as such, should not be * The returned string belongs to 'message' and as such, should not be

View file

@ -29,7 +29,7 @@ struct _notmuch_query {
notmuch_sort_t sort; notmuch_sort_t sort;
}; };
struct _notmuch_results { struct _notmuch_message_results {
notmuch_database_t *notmuch; notmuch_database_t *notmuch;
Xapian::MSetIterator iterator; Xapian::MSetIterator iterator;
Xapian::MSetIterator iterator_end; Xapian::MSetIterator iterator_end;
@ -71,7 +71,7 @@ notmuch_query_set_sort (notmuch_query_t *query, notmuch_sort_t sort)
* talloc_set_destructor at all otherwise). * talloc_set_destructor at all otherwise).
*/ */
static int static int
_notmuch_results_destructor (notmuch_results_t *results) _notmuch_message_results_destructor (notmuch_message_results_t *results)
{ {
results->iterator.~MSetIterator (); results->iterator.~MSetIterator ();
results->iterator_end.~MSetIterator (); results->iterator_end.~MSetIterator ();
@ -79,14 +79,14 @@ _notmuch_results_destructor (notmuch_results_t *results)
return 0; return 0;
} }
notmuch_results_t * notmuch_message_results_t *
notmuch_query_search (notmuch_query_t *query) notmuch_query_search_messages (notmuch_query_t *query)
{ {
notmuch_database_t *notmuch = query->notmuch; notmuch_database_t *notmuch = query->notmuch;
const char *query_string = query->query_string; const char *query_string = query->query_string;
notmuch_results_t *results; notmuch_message_results_t *results;
results = talloc (query, notmuch_results_t); results = talloc (query, notmuch_message_results_t);
if (unlikely (results == NULL)) if (unlikely (results == NULL))
return NULL; return NULL;
@ -137,7 +137,7 @@ notmuch_query_search (notmuch_query_t *query)
new (&results->iterator) Xapian::MSetIterator (); new (&results->iterator) Xapian::MSetIterator ();
new (&results->iterator_end) Xapian::MSetIterator (); new (&results->iterator_end) Xapian::MSetIterator ();
talloc_set_destructor (results, _notmuch_results_destructor); talloc_set_destructor (results, _notmuch_message_results_destructor);
results->iterator = mset.begin (); results->iterator = mset.begin ();
results->iterator_end = mset.end (); results->iterator_end = mset.end ();
@ -157,13 +157,13 @@ notmuch_query_destroy (notmuch_query_t *query)
} }
notmuch_bool_t notmuch_bool_t
notmuch_results_has_more (notmuch_results_t *results) notmuch_message_results_has_more (notmuch_message_results_t *results)
{ {
return (results->iterator != results->iterator_end); return (results->iterator != results->iterator_end);
} }
notmuch_message_t * notmuch_message_t *
notmuch_results_get (notmuch_results_t *results) notmuch_message_results_get (notmuch_message_results_t *results)
{ {
notmuch_message_t *message; notmuch_message_t *message;
Xapian::docid doc_id; Xapian::docid doc_id;
@ -185,13 +185,13 @@ notmuch_results_get (notmuch_results_t *results)
} }
void void
notmuch_results_advance (notmuch_results_t *results) notmuch_message_results_advance (notmuch_message_results_t *results)
{ {
results->iterator++; results->iterator++;
} }
void void
notmuch_results_destroy (notmuch_results_t *results) notmuch_message_results_destroy (notmuch_message_results_t *results)
{ {
talloc_free (results); talloc_free (results);
} }