TnyFolderStoreQuery

TnyFolderStoreQuery — A query for when you want to get a list of folders

Synopsis

#define             TNY_TYPE_FOLDER_STORE_QUERY_ITEM
#define             TNY_FOLDER_STORE_QUERY_ITEM         (obj)
#define             TNY_FOLDER_STORE_QUERY_ITEM_CLASS   (vtable)
#define             TNY_IS_FOLDER_STORE_QUERY_ITEM      (obj)
#define             TNY_IS_FOLDER_STORE_QUERY_ITEM_CLASS(vtable)
#define             TNY_FOLDER_STORE_QUERY_ITEM_GET_CLASS(inst)
#define             TNY_TYPE_FOLDER_STORE_QUERY_OPTION
                    TnyFolderStoreQueryItem;
                    TnyFolderStoreQuery;
GType               tny_folder_store_query_item_get_type
                                                        (void);
GType               tny_folder_store_query_option_get_type
                                                        (void);
TnyFolderStoreQuery* tny_folder_store_query_new         (void);
void                tny_folder_store_query_add_item     (TnyFolderStoreQuery *query,
                                                         const gchar *pattern,
                                                         TnyFolderStoreQueryOption options);
TnyList*            tny_folder_store_query_get_items    (TnyFolderStoreQuery *query);
TnyFolderStoreQueryOption tny_folder_store_query_item_get_options
                                                        (TnyFolderStoreQueryItem *item);
const regex_t*      tny_folder_store_query_item_get_regex
                                                        (TnyFolderStoreQueryItem *item);
const gchar*        tny_folder_store_query_item_get_pattern
                                                        (TnyFolderStoreQueryItem *item);

Object Hierarchy

  GObject
   +----TnyFolderStoreQueryItem
  GObject
   +----TnyFolderStoreQuery

Description

A query for when you want to get a list of folders from a TnyFolderStore implementation

Details

TNY_TYPE_FOLDER_STORE_QUERY_ITEM

#define TNY_TYPE_FOLDER_STORE_QUERY_ITEM             (tny_folder_store_query_item_get_type ())


TNY_FOLDER_STORE_QUERY_ITEM()

#define TNY_FOLDER_STORE_QUERY_ITEM(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), TNY_TYPE_FOLDER_STORE_QUERY_ITEM, TnyFolderStoreQueryItem))

obj :


TNY_FOLDER_STORE_QUERY_ITEM_CLASS()

#define TNY_FOLDER_STORE_QUERY_ITEM_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), TNY_TYPE_FOLDER_STORE_QUERY_ITEM, TnyFolderStoreQueryItemClass))

vtable :


TNY_IS_FOLDER_STORE_QUERY_ITEM()

#define TNY_IS_FOLDER_STORE_QUERY_ITEM(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TNY_TYPE_FOLDER_STORE_QUERY_ITEM))

obj :


TNY_IS_FOLDER_STORE_QUERY_ITEM_CLASS()

#define TNY_IS_FOLDER_STORE_QUERY_ITEM_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), TNY_TYPE_FOLDER_STORE_QUERY_ITEM))

vtable :


TNY_FOLDER_STORE_QUERY_ITEM_GET_CLASS()

#define TNY_FOLDER_STORE_QUERY_ITEM_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), TNY_TYPE_FOLDER_STORE_QUERY_ITEM, TnyFolderStoreQueryItemClass))

inst :


TNY_TYPE_FOLDER_STORE_QUERY_OPTION

#define TNY_TYPE_FOLDER_STORE_QUERY_OPTION (tny_folder_store_query_option_get_type())


TnyFolderStoreQueryItem

typedef struct _TnyFolderStoreQueryItem TnyFolderStoreQueryItem;


TnyFolderStoreQuery

typedef struct _TnyFolderStoreQuery TnyFolderStoreQuery;

A query for filtering folders when getting them from a store

free-function: g_object_unref


tny_folder_store_query_item_get_type ()

GType               tny_folder_store_query_item_get_type
                                                        (void);

GType system helper function

Returns :

a GType

tny_folder_store_query_option_get_type ()

GType               tny_folder_store_query_option_get_type
                                                        (void);

GType system helper function

Returns :

a GType

tny_folder_store_query_new ()

TnyFolderStoreQuery* tny_folder_store_query_new         (void);

Create a new TnyFolderStoreQuery instance

Returns :

(caller-owns): a new TnyFolderStoreQuery instance

Since 1.0 audience: application-developer


tny_folder_store_query_add_item ()

void                tny_folder_store_query_add_item     (TnyFolderStoreQuery *query,
                                                         const gchar *pattern,
                                                         TnyFolderStoreQueryOption options);

Add a query-item to query.

If the options contain TNY_FOLDER_STORE_QUERY_OPTION_MATCH_ON_NAME or TNY_FOLDER_STORE_QUERY_OPTION_MATCH_ON_ID and pattern is not NULL, then pattern will be used as regular expression for matching the property of the folders. The tny_folder_get_name() and tny_folder_get_id() are used while matching in those cases.

Example:

FolderStoreQuery *query = tny_folder_store_query_new ();
TnyList *folders = tny_simple_list_new ();
TnyFolderStore *store = ...; TnyIterator *iter; 
tny_folder_store_query_add_item (query, ".*GNOME.*", 
         TNY_FOLDER_STORE_QUERY_OPTION_MATCH_ON_NAME);
tny_folder_store_get_folders (store, folders, query);
iter = tny_list_create_iterator (folders);
while (!tny_iterator_is_done (iter))
{
     TnyFolder *folder = TNY_FOLDER (tny_iterator_get_current (iter));
     g_print ("%s\n", tny_folder_get_name (folder));
     g_object_unref (folder);
     tny_iterator_next (iter);
}
g_object_unref (iter);
g_object_unref (folders); 
g_object_unref (query); 

For the options TNY_FOLDER_STORE_QUERY_OPTION_SUBSCRIBED and TNY_FOLDER_STORE_QUERY_OPTION_UNSUBSCRIBED, the folder subscription status is used.

Example:

FolderStoreQuery *query = tny_folder_store_query_new ();
TnyList *folders = tny_simple_list_new ();
TnyFolderStore *store = ...; TnyIterator *iter; 
tny_folder_store_query_add_item (query, NULL, 
         TNY_FOLDER_STORE_QUERY_OPTION_SUBSCRIBED);
tny_folder_store_get_folders (store, folders, query);
iter = tny_list_create_iterator (folders);
while (!tny_iterator_is_done (iter))
{
     TnyFolder *folder = TNY_FOLDER (tny_iterator_get_current (iter));
     g_print ("%s\n", tny_folder_get_name (folder));
     g_object_unref (folder);
     tny_iterator_next (iter);
}
g_object_unref (iter);
g_object_unref (folders);
g_object_unref (query);

query :

a TnyFolderStoreQuery

pattern :

(null-ok): a regular expression or NULL

options :

a TnyFolderStoreQueryOption enum

tny_folder_store_query_get_items ()

TnyList*            tny_folder_store_query_get_items    (TnyFolderStoreQuery *query);

Get a list of query items in query. The return value must be unreferenced after use.

query :

a TnyFolderStoreQuery

Returns :

(caller-owns): a list of query items

Since 1.0 audience: tinymail-developer


tny_folder_store_query_item_get_options ()

TnyFolderStoreQueryOption tny_folder_store_query_item_get_options
                                                        (TnyFolderStoreQueryItem *item);

Get the options of item as a TnyFolderStoreQueryOption enum.

item :

a TnyFolderStoreQueryItem

Returns :

the options of a query item

Since 1.0 audience: tinymail-developer


tny_folder_store_query_item_get_regex ()

const regex_t*      tny_folder_store_query_item_get_regex
                                                        (TnyFolderStoreQueryItem *item);

Get the compiled regular expression of item. You must not free the returned value.

item :

a TnyFolderStoreQueryItem

Returns :

(null-ok): the compiled regular expression of a query item

Since 1.0 audience: tinymail-developer


tny_folder_store_query_item_get_pattern ()

const gchar*        tny_folder_store_query_item_get_pattern
                                                        (TnyFolderStoreQueryItem *item);

Get the regular expression's pattern of item. You must not free the returned value.

item :

a TnyFolderStoreQueryItem

Returns :

(null-ok): the pattern of the regular expression of a query item

Since 1.0 audience: tinymail-developer

See Also

TnyFolderStore, TnyFolder, TnyStoreAccount, TnyFolderStoreQueryOption