533063a5d5fe60e1fc39cace3181701aeffa2f46
[modest] / src / modest-search.h
1 #ifndef MODEST_SEARCH_H
2 #define MODEST_SEARCH_H
3
4 #include <glib.h>
5 #include <tny-folder.h>
6
7 #ifndef _GNU_SOURCE
8 #define _GNU_SOURCE
9 #endif
10
11 #ifdef HAVE_CONFIG_H
12 #include <config.h>
13 #endif
14
15 #ifdef MODEST_HAVE_OGS
16 #include <libogs/ogs-text-searcher.h>
17 #endif
18
19 G_BEGIN_DECLS
20
21 typedef enum {
22         MODEST_SEARCH_SUBJECT   = (1 << 0),
23         MODEST_SEARCH_SENDER    = (1 << 1),
24         MODEST_SEARCH_RECIPIENT = (1 << 2),
25         MODEST_SEARCH_SIZE      = (1 << 3),
26         MODEST_SEARCH_BEFORE    = (1 << 4),
27         MODEST_SEARCH_AFTER     = (1 << 5),
28         MODEST_SEARCH_BODY      = (1 << 6),
29         MODEST_SEARCH_USE_OGS   = (1 << 7),
30 } ModestSearchFlags;
31
32 typedef struct {
33         gchar *subject, *from, *recipient, *body;
34         time_t before, after;
35         guint32 minsize;
36         ModestSearchFlags flags;
37 #ifdef MODEST_HAVE_OGS
38         const gchar     *query;
39         OgsTextSearcher *text_searcher; 
40 #endif
41 } ModestSearch;
42
43 GList * modest_search_folder (TnyFolder *folder, ModestSearch *search);
44 GList * modest_search_all_accounts (ModestSearch *search);
45 GList * modest_search_account (TnyAccount *account, ModestSearch *search);
46 G_END_DECLS
47
48 #endif
49