|  |  |  | Camel Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | Object Hierarchy | ||||
struct CamelStoreInfo; enum CamelStoreInfoFlags; struct CamelStoreSummary; #define CAMEL_STORE_INFO_FOLDER_UNKNOWN CamelStoreSummary * camel_store_summary_new (void); void camel_store_summary_set_filename (CamelStoreSummary *summary,const gchar *filename); gint camel_store_summary_load (CamelStoreSummary *summary); gint camel_store_summary_save (CamelStoreSummary *summary); void camel_store_summary_touch (CamelStoreSummary *summary); void camel_store_summary_add (CamelStoreSummary *summary,CamelStoreInfo *info); CamelStoreInfo * camel_store_summary_add_from_path (CamelStoreSummary *summary,const gchar *path); CamelStoreInfo * camel_store_summary_info_new (CamelStoreSummary *summary); CamelStoreInfo * camel_store_summary_info_ref (CamelStoreSummary *summary,CamelStoreInfo *info); void camel_store_summary_info_unref (CamelStoreSummary *summary,CamelStoreInfo *info); #define camel_store_summary_info_free void camel_store_summary_remove (CamelStoreSummary *summary,CamelStoreInfo *info); void camel_store_summary_remove_path (CamelStoreSummary *summary,const gchar *path); gint camel_store_summary_count (CamelStoreSummary *summary); CamelStoreInfo * camel_store_summary_path (CamelStoreSummary *summary,const gchar *path); GPtrArray * camel_store_summary_array (CamelStoreSummary *summary); void camel_store_summary_array_free (CamelStoreSummary *summary,GPtrArray *array); void camel_store_info_set_string (CamelStoreSummary *summary,CamelStoreInfo *info,gint type,const gchar *value); const gchar * camel_store_info_path (CamelStoreSummary *summary,CamelStoreInfo *info); const gchar * camel_store_info_name (CamelStoreSummary *summary,CamelStoreInfo *info); gboolean camel_store_summary_connect_folder_summary (CamelStoreSummary *summary,const gchar *path,struct _CamelFolderSummary *folder_summary); gboolean camel_store_summary_disconnect_folder_summary (CamelStoreSummary *summary,struct _CamelFolderSummary *folder_summary);
struct CamelStoreInfo {
	volatile gint refcount;
	gchar *path;
	guint32 flags;
	guint32 unread;
	guint32 total;
};
typedef enum {
 /*< flags >*/
	CAMEL_STORE_INFO_FOLDER_NOSELECT = 1 << 0,
	CAMEL_STORE_INFO_FOLDER_NOINFERIORS = 1 << 1,
	CAMEL_STORE_INFO_FOLDER_CHILDREN = 1 << 2,
	CAMEL_STORE_INFO_FOLDER_NOCHILDREN = 1 << 3,
	CAMEL_STORE_INFO_FOLDER_SUBSCRIBED = 1 << 4,
	CAMEL_STORE_INFO_FOLDER_VIRTUAL = 1 << 5,
	CAMEL_STORE_INFO_FOLDER_SYSTEM = 1 << 6,
	CAMEL_STORE_INFO_FOLDER_VTRASH = 1 << 7,
	CAMEL_STORE_INFO_FOLDER_SHARED_TO_ME = 1 << 8,
	CAMEL_STORE_INFO_FOLDER_SHARED_BY_ME = 1 << 9,
	CAMEL_STORE_INFO_FOLDER_READONLY = 1 << 16,
	/* empty gap from unused flag removal */
	CAMEL_STORE_INFO_FOLDER_FLAGGED = 1 << 18,
	CAMEL_STORE_INFO_FOLDER_LAST          = 1 << 24  /*< skip >*/
} CamelStoreInfoFlags;
CamelStoreSummary * camel_store_summary_new             (void);
Create a new CamelStoreSummary object.
| Returns : | a new CamelStoreSummary object | 
void camel_store_summary_set_filename (CamelStoreSummary *summary,const gchar *filename);
Set the filename where the summary will be loaded to/saved from.
| 
 | a CamelStoreSummary | 
| 
 | a filename | 
gint                camel_store_summary_load            (CamelStoreSummary *summary);
Load the summary off disk.
| 
 | a CamelStoreSummary object | 
| Returns : | 0on success or-1on fail | 
gint                camel_store_summary_save            (CamelStoreSummary *summary);
Writes the summary to disk. The summary is only written if changes have occurred.
| 
 | a CamelStoreSummary object | 
| Returns : | 0on succes or-1on fail | 
void                camel_store_summary_touch           (CamelStoreSummary *summary);
Mark the summary as changed, so that a save will force it to be written back to disk.
| 
 | a CamelStoreSummary object | 
void camel_store_summary_add (CamelStoreSummary *summary,CamelStoreInfo *info);
Adds a new info record to the summary.  If info->uid is NULL,
then a new uid is automatically re-assigned by calling
camel_store_summary_next_uid_string().
The info record should have been generated by calling one of the
info_new_*() functions, as it will be free'd based on the summary
class.  And MUST NOT be allocated directly using malloc.
| 
 | a CamelStoreSummary object | 
| 
 | a CamelStoreInfo | 
CamelStoreInfo * camel_store_summary_add_from_path (CamelStoreSummary *summary,const gchar *path);
Build a new info record based on the name, and add it to the summary.
| 
 | a CamelStoreSummary object | 
| 
 | item path | 
| Returns : | the newly added record | 
CamelStoreInfo *    camel_store_summary_info_new        (CamelStoreSummary *summary);
Allocate a new CamelStoreInfo, suitable for adding to this summary.
| 
 | a CamelStoreSummary object | 
| Returns : | the newly allocated CamelStoreInfo | 
CamelStoreInfo * camel_store_summary_info_ref (CamelStoreSummary *summary,CamelStoreInfo *info);
Add an extra reference to info.
| 
 | a CamelStoreSummary object | 
| 
 | a CamelStoreInfo | 
| Returns : | the infoargument | 
void camel_store_summary_info_unref (CamelStoreSummary *summary,CamelStoreInfo *info);
Unref and potentially free info, and all associated memory.
| 
 | a CamelStoreSummary object | 
| 
 | a CamelStoreInfo | 
#define camel_store_summary_info_free camel_store_summary_info_unref
camel_store_summary_info_free is deprecated and should not be used in newly-written code.
void camel_store_summary_remove (CamelStoreSummary *summary,CamelStoreInfo *info);
Remove a specific info record from the summary.
| 
 | a CamelStoreSummary object | 
| 
 | a CamelStoreInfo | 
void camel_store_summary_remove_path (CamelStoreSummary *summary,const gchar *path);
Remove a specific info record from the summary, by path.
| 
 | a CamelStoreSummary object | 
| 
 | item path | 
gint                camel_store_summary_count           (CamelStoreSummary *summary);
Get the number of summary items stored in this summary.
| 
 | a CamelStoreSummary object | 
| Returns : | the number of items gint he summary. | 
CamelStoreInfo * camel_store_summary_path (CamelStoreSummary *summary,const gchar *path);
Retrieve a summary item by path name.
The returned CamelStoreInfo is referenced for thread-safety and should be
unreferenced with camel_store_summary_info_unref() when finished with it.
| 
 | a CamelStoreSummary object | 
| 
 | path to the item | 
| Returns : | the summary item, or NULLif thepathname is not
available | 
GPtrArray *         camel_store_summary_array           (CamelStoreSummary *summary);
Obtain a copy of the summary array. This is done atomically, so cannot contain empty entries.
It must be freed using camel_store_summary_array_free().
| 
 | a CamelStoreSummary object | 
| Returns : | the summary array | 
void camel_store_summary_array_free (CamelStoreSummary *summary,GPtrArray *array);
Free the folder summary array.
| 
 | a CamelStoreSummary object | 
| 
 | the summary array as gotten from camel_store_summary_array() | 
void camel_store_info_set_string (CamelStoreSummary *summary,CamelStoreInfo *info,gint type,const gchar *value);
Set a specific string on the info.
| 
 | a CamelStoreSummary object | 
| 
 | a CamelStoreInfo | 
| 
 | specific string being set | 
| 
 | string value to set | 
const gchar * camel_store_info_path (CamelStoreSummary *summary,CamelStoreInfo *info);
Returns the path string from info.
| 
 | a CamelStoreSummary | 
| 
 | a CamelStoreInfo | 
| Returns : | the path string from info | 
const gchar * camel_store_info_name (CamelStoreSummary *summary,CamelStoreInfo *info);
Returns the last segment of the path string from info.
| 
 | a CamelStoreSummary | 
| 
 | a CamelStoreInfo | 
| Returns : | the last segment of the path string from info | 
gboolean camel_store_summary_connect_folder_summary (CamelStoreSummary *summary,const gchar *path,struct _CamelFolderSummary *folder_summary);
Connects listeners for count changes on folder_summary to keep
CamelStoreInfo.total and CamelStoreInfo.unread in sync transparently.
The folder_summary is stored in summary as path. Use
camel_store_summary_disconnect_folder_summary() to disconnect from
listening.
| 
 | a CamelStoreSummary object | 
| 
 | used path for folder_summary | 
| 
 | a CamelFolderSummary object | 
| Returns : | Whether successfully connect callbacks for count change notifications. | 
Since 3.4
gboolean camel_store_summary_disconnect_folder_summary (CamelStoreSummary *summary,struct _CamelFolderSummary *folder_summary);
Diconnects count change listeners previously connected
by camel_store_summary_connect_folder_summary().
| 
 | a CamelStoreSummary object | 
| 
 | a CamelFolderSummary object | 
| Returns : | Whether such connection existed and whether was successfully removed. | 
Since 3.4