Top | ![]() |
![]() |
![]() |
![]() |
struct | CamelStoreInfo |
enum | CamelStoreInfoFlags |
struct | CamelStoreSummary |
enum | CamelStoreSummaryFlags |
enum | CamelStoreSummaryLock |
CamelStoreSummary *
camel_store_summary_new (void
);
Create 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.
gint
camel_store_summary_load (CamelStoreSummary *summary
);
Load the summary off disk.
gint
camel_store_summary_save (CamelStoreSummary *summary
);
Writes the summary to disk. The summary is only written if changes have occured.
gint
camel_store_summary_header_load (CamelStoreSummary *summary
);
Only load the header information from the summary, keep the rest on disk. This should only be done on a fresh summary object.
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.
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.
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.
CamelStoreInfo *
camel_store_summary_info_new (CamelStoreSummary *summary
);
Allocate a new CamelStoreInfo, suitable for adding to this summary.
CamelStoreInfo * camel_store_summary_info_new_from_path (CamelStoreSummary *summary
,const gchar *path
);
Create a new info record from a name.
This info record MUST be freed using
camel_store_summary_info_free()
, camel_store_info_free()
will not
work.
void camel_store_summary_info_ref (CamelStoreSummary *summary
,CamelStoreInfo *info
);
Add an extra reference to info
.
void camel_store_summary_info_free (CamelStoreSummary *summary
,CamelStoreInfo *info
);
Unref and potentially free info
, and all associated memory.
void camel_store_summary_remove (CamelStoreSummary *summary
,CamelStoreInfo *info
);
Remove a specific info
record from the summary.
void camel_store_summary_remove_path (CamelStoreSummary *summary
,const gchar *path
);
Remove a specific info record from the summary, by path
.
void camel_store_summary_remove_index (CamelStoreSummary *summary
,gint index
);
Remove a specific info record from the summary, by index.
void
camel_store_summary_clear (CamelStoreSummary *summary
);
Empty the summary contents.
gint
camel_store_summary_count (CamelStoreSummary *summary
);
Get the number of summary items stored in this summary.
CamelStoreInfo * camel_store_summary_index (CamelStoreSummary *summary
,gint index
);
Retrieve a summary item by index number.
A referenced to the summary item is returned, which may be ref'd or free'd as appropriate.
It must be freed using camel_store_summary_info_free()
.
CamelStoreInfo * camel_store_summary_path (CamelStoreSummary *summary
,const gchar *path
);
Retrieve a summary item by path name.
A referenced to the summary item is returned, which may be ref'd or free'd as appropriate.
It must be freed using camel_store_summary_info_free()
.
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()
.
void camel_store_summary_array_free (CamelStoreSummary *summary
,GPtrArray *array
);
Free the folder summary array.
summary |
a CamelStoreSummary object |
|
array |
the summary array as gotten from |
const gchar * camel_store_info_string (CamelStoreSummary *summary
,const CamelStoreInfo *info
,gint type
);
Get a specific string from the info
.
void camel_store_info_set_string (CamelStoreSummary *summary
,CamelStoreInfo *info
,gint type
,const gchar *value
);
Set a specific string on the info
.
summary |
a CamelStoreSummary object |
|
info |
||
type |
specific string being set |
|
value |
string value to set |
#define camel_store_info_path(s, i) (camel_store_info_string((CamelStoreSummary *)s, (const CamelStoreInfo *)i, CAMEL_STORE_INFO_PATH))
#define camel_store_info_name(s, i) (camel_store_info_string((CamelStoreSummary *)s, (const CamelStoreInfo *)i, CAMEL_STORE_INFO_NAME))
void camel_store_summary_lock (CamelStoreSummary *summary
,CamelStoreSummaryLock lock
);
Locks summary
's lock
. Unlock it with camel_store_summary_unlock()
.
Since 2.32
void camel_store_summary_unlock (CamelStoreSummary *summary
,CamelStoreSummaryLock lock
);
Unlocks summary
's lock
, previously locked with camel_store_summary_lock()
.
Since 2.32
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.
summary |
a CamelStoreSummary object |
|
path |
used path for |
|
folder_summary |
a CamelFolderSummary object |
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()
.
Since 3.4