| Camel Reference Manual | ||||
|---|---|---|---|---|
CamelStoreInfo;
enum CamelStoreInfoFlags;
CamelStoreSummary;
#define CAMEL_STORE_INFO_FOLDER_UNKNOWN
enum CamelStoreSummaryFlags;
CamelStoreSummary* camel_store_summary_new (void);
void camel_store_summary_set_filename (CamelStoreSummary *summary,
const char *filename);
void camel_store_summary_set_uri_base (CamelStoreSummary *summary,
CamelURL *base);
int camel_store_summary_load (CamelStoreSummary *summary);
int camel_store_summary_save (CamelStoreSummary *summary);
int camel_store_summary_header_load (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 char *path);
CamelStoreInfo* camel_store_summary_info_new (CamelStoreSummary *summary);
CamelStoreInfo* camel_store_summary_info_new_from_path
(CamelStoreSummary *summary,
const char *path);
void camel_store_summary_info_ref (CamelStoreSummary *summary,
CamelStoreInfo *info);
void camel_store_summary_info_free (CamelStoreSummary *summary,
CamelStoreInfo *info);
void camel_store_summary_remove (CamelStoreSummary *summary,
CamelStoreInfo *info);
void camel_store_summary_remove_path (CamelStoreSummary *summary,
const char *path);
void camel_store_summary_remove_index (CamelStoreSummary *summary,
int index);
void camel_store_summary_clear (CamelStoreSummary *summary);
int camel_store_summary_count (CamelStoreSummary *summary);
CamelStoreInfo* camel_store_summary_index (CamelStoreSummary *summary,
int index);
CamelStoreInfo* camel_store_summary_path (CamelStoreSummary *summary,
const char *path);
GPtrArray* camel_store_summary_array (CamelStoreSummary *summary);
void camel_store_summary_array_free (CamelStoreSummary *summary,
GPtrArray *array);
const char* camel_store_info_string (CamelStoreSummary *summary,
const CamelStoreInfo *info,
int type);
void camel_store_info_set_string (CamelStoreSummary *summary,
CamelStoreInfo *info,
int type,
const char *value);
#define camel_store_info_path (s, i)
#define camel_store_info_uri (s, i)
#define camel_store_info_name (s, i)
typedef struct {
guint32 refcount;
char *uri;
char *path;
guint32 flags;
guint32 unread;
guint32 total;
} CamelStoreInfo;
typedef enum _CamelStoreInfoFlags {
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_BY_ME = 1<<8,
CAMEL_STORE_INFO_FOLDER_SHARED_TO_ME = 1<<9,
/* not in camle-store.h yet */
CAMEL_STORE_INFO_FOLDER_READONLY = 1<<13,
CAMEL_STORE_INFO_FOLDER_FLAGGED = 1<<31
} CamelStoreInfoFlags;
typedef struct {
CamelObject parent;
struct _CamelStoreSummaryPrivate *priv;
/* header info */
guint32 version; /* version of base part of file */
guint32 flags; /* flags */
guint32 count; /* how many were saved/loaded */
time_t time; /* timestamp for this summary (for implementors to use) */
struct _CamelURL *uri_base; /* url of base part of summary */
/* sizes of memory objects */
guint32 store_info_size;
/* memory allocators (setup automatically) */
struct _EMemChunk *store_info_chunks;
char *summary_path;
GPtrArray *folders; /* CamelStoreInfo's */
GHashTable *folders_path; /* CamelStoreInfo's by path name */
} CamelStoreSummary;
typedef enum _CamelStoreSummaryFlags {
CAMEL_STORE_SUMMARY_DIRTY = 1<<0,
CAMEL_STORE_SUMMARY_FRAGMENT = 1<<1, /* path name is stored in fragment rather than path */
} CamelStoreSummaryFlags;
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 char *filename);
Set the filename where the summary will be loaded to/saved from.
summary : |
a CamelStoreSummary |
filename : |
a filename |
void camel_store_summary_set_uri_base (CamelStoreSummary *summary, CamelURL *base);
Sets the base URI for the summary.
summary : |
a CamelStoreSummary object |
base : |
a CamelURL |
int camel_store_summary_load (CamelStoreSummary *summary);
Load the summary off disk.
summary : |
a CamelStoreSummary object |
| Returns : |
0 on success or -1 on fail
|
int camel_store_summary_save (CamelStoreSummary *summary);
Writes the summary to disk. The summary is only written if changes have occured.
summary : |
a CamelStoreSummary object |
| Returns : |
0 on succes or -1 on fail
|
int 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.
summary : |
a CamelStoreSummary object |
| Returns : |
0 on success or -1 on 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.
summary : |
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.
summary : |
a CamelStoreSummary object |
info : |
a CamelStoreInfo |
CamelStoreInfo* camel_store_summary_add_from_path (CamelStoreSummary *summary, const char *path);
Build a new info record based on the name, and add it to the summary.
summary : |
a CamelStoreSummary object |
path : |
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.
summary : |
a CamelStoreSummary object |
| Returns : | the newly allocated CamelStoreInfo |
CamelStoreInfo* camel_store_summary_info_new_from_path (CamelStoreSummary *summary, const char *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.
summary : |
a CamelStoreSummary object |
path : |
item path |
| Returns : | the CamelStoreInfo associated with path
|
void camel_store_summary_info_ref (CamelStoreSummary *summary, CamelStoreInfo *info);
Add an extra reference to info.
summary : |
a CamelStoreSummary object |
info : |
a CamelStoreInfo |
void camel_store_summary_info_free (CamelStoreSummary *summary, CamelStoreInfo *info);
Unref and potentially free info, and all associated memory.
summary : |
a CamelStoreSummary object |
info : |
a CamelStoreInfo |
void camel_store_summary_remove (CamelStoreSummary *summary, CamelStoreInfo *info);
Remove a specific info record from the summary.
summary : |
a CamelStoreSummary object |
info : |
a CamelStoreInfo |
void camel_store_summary_remove_path (CamelStoreSummary *summary, const char *path);
Remove a specific info record from the summary, by path.
summary : |
a CamelStoreSummary object |
path : |
item path |
void camel_store_summary_remove_index (CamelStoreSummary *summary, int index);
Remove a specific info record from the summary, by index.
summary : |
a CamelStoreSummary object |
index : |
item index |
void camel_store_summary_clear (CamelStoreSummary *summary);
Empty the summary contents.
summary : |
a CamelStoreSummary object |
int camel_store_summary_count (CamelStoreSummary *summary);
Get the number of summary items stored in this summary.
summary : |
a CamelStoreSummary object |
| Returns : | the number of items int he summary. |
CamelStoreInfo* camel_store_summary_index (CamelStoreSummary *summary, int 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.
summary : |
a CamelStoreSummary object |
index : |
record index |
| Returns : | the summary item, or NULL if index is out of range
|
CamelStoreInfo* camel_store_summary_path (CamelStoreSummary *summary, const char *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.
summary : |
a CamelStoreSummary object |
path : |
path to the item |
| Returns : | the summary item, or NULL if the path name 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.
summary : |
a CamelStoreSummary object |
| Returns : | the summary array |
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 camel_store_summary_array |
const char* camel_store_info_string (CamelStoreSummary *summary, const CamelStoreInfo *info, int type);
Get a specific string from the info.
summary : |
a CamelStoreSummary object |
info : |
a CamelStoreInfo |
type : |
specific string being requested |
| Returns : | the string value |
void camel_store_info_set_string (CamelStoreSummary *summary, CamelStoreInfo *info, int type, const char *value);
Set a specific string on the info.
summary : |
a CamelStoreSummary object |
info : |
a CamelStoreInfo |
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))
s : |
|
i : |
#define camel_store_info_uri(s, i) (camel_store_info_string((CamelStoreSummary *)s, (const CamelStoreInfo *)i, CAMEL_STORE_INFO_URI))
s : |
|
i : |