Top | ![]() |
![]() |
![]() |
![]() |
CamelFolderSearch * | camel_folder_search_new () |
void | camel_folder_search_construct () |
void | camel_folder_search_set_folder () |
void | camel_folder_search_set_summary () |
void | camel_folder_search_set_body_index () |
GPtrArray * | camel_folder_search_execute_expression () |
GPtrArray * | camel_folder_search_search () |
guint32 | camel_folder_search_count () |
void | camel_folder_search_free_result () |
time_t | camel_folder_search_util_add_months () |
CamelFolderSearch *
camel_folder_search_new (void
);
Create a new CamelFolderSearch object.
A CamelFolderSearch is a subclassable, extensible s-exp evaluator which enforces a particular set of s-expressions. Particular methods may be overriden by an implementation to implement a search for any sort of backend.
void camel_folder_search_set_folder (CamelFolderSearch *search
,CamelFolder *folder
);
Set the folder attribute of the search. This is currently unused, but could be used to perform a slow-search when indexes and so forth are not available. Or for use by subclasses.
void camel_folder_search_set_summary (CamelFolderSearch *search
,GPtrArray *summary
);
Set the array of summary objects representing the span of the search.
If this is not set, then a subclass must provide the functions for searching headers and for the match-all operator.
void camel_folder_search_set_body_index (CamelFolderSearch *search
,CamelIndex *body_index
);
Set the index representing the contents of all messages in this folder. If this is not set, then the folder implementation should sub-class the CamelFolderSearch and provide its own body-contains function.
GPtrArray * camel_folder_search_execute_expression (CamelFolderSearch *search
,const gchar *expr
,GError **error
);
Execute the search expression expr
, returning an array of
all matches as a GPtrArray of uid's of matching messages.
Note that any settings such as set_body_index()
, set_folder()
,
and so on are reset to NULL
once the search has completed.
TODO: The interface should probably return summary items instead (since they are much more useful to any client).
GPtrArray * camel_folder_search_search (CamelFolderSearch *search
,const gchar *expr
,GPtrArray *uids
,GError **error
);
Run a search. Search must have had Folder already set on it, and it must implement summaries.
guint32 camel_folder_search_count (CamelFolderSearch *search
,const gchar *expr
,GError **error
);
Run a search. Search must have had Folder already set on it, and it must implement summaries.
Since 2.26
void camel_folder_search_free_result (CamelFolderSearch *search
,GPtrArray *Param2
);
time_t camel_folder_search_util_add_months (time_t t
,gint months
);
Increases time t
by the given number of months (or decreases, if
months
is negative).
Since 3.2