| Camel Reference Manual | ||||
|---|---|---|---|---|
struct CamelFolderSummary; CamelMessageInfo; CamelMessageInfoBase; CamelFolderMetaSummary; struct CamelMessageContentInfo; enum CamelMessageFlags; #define CAMEL_MESSAGE_SYSTEM_MASK CamelFlag; CamelTag; CamelSummaryMessageID; CamelSummaryReferences; enum CamelFolderSummaryFlags; CamelFolderSummary* camel_folder_summary_new (struct _CamelFolder *folder); void camel_folder_summary_set_filename (CamelFolderSummary *summary, const char *filename); void camel_folder_summary_set_index (CamelFolderSummary *summary, CamelIndex *index); void camel_folder_summary_set_build_content (CamelFolderSummary *summary, gboolean state); guint32 camel_folder_summary_next_uid (CamelFolderSummary *summary); char* camel_folder_summary_next_uid_string (CamelFolderSummary *summary); void camel_folder_summary_set_uid (CamelFolderSummary *summary, guint32 uid); int camel_folder_summary_load (CamelFolderSummary *summary); int camel_folder_summary_save (CamelFolderSummary *summary); int camel_folder_summary_header_load (CamelFolderSummary *summary); void camel_folder_summary_touch (CamelFolderSummary *summary); void camel_folder_summary_add (CamelFolderSummary *summary, CamelMessageInfo *info); CamelMessageInfo* camel_folder_summary_add_from_header (CamelFolderSummary *summary, struct _camel_header_raw *headers); CamelMessageInfo* camel_folder_summary_add_from_parser (CamelFolderSummary *summary, CamelMimeParser *parser); CamelMessageInfo* camel_folder_summary_add_from_message (CamelFolderSummary *summary, CamelMimeMessage *message); CamelMessageInfo* camel_folder_summary_info_new_from_header (CamelFolderSummary *summary, struct _camel_header_raw *headers); CamelMessageInfo* camel_folder_summary_info_new_from_parser (CamelFolderSummary *summary, CamelMimeParser *parser); CamelMessageInfo* camel_folder_summary_info_new_from_message (CamelFolderSummary *summary, CamelMimeMessage *message); CamelMessageContentInfo* camel_folder_summary_content_info_new (CamelFolderSummary *summary); void camel_folder_summary_content_info_free (CamelFolderSummary *summary, CamelMessageContentInfo *ci); void camel_folder_summary_remove (CamelFolderSummary *summary, CamelMessageInfo *info); void camel_folder_summary_remove_uid (CamelFolderSummary *summary, const char *uid); void camel_folder_summary_remove_index (CamelFolderSummary *summary, int index); void camel_folder_summary_remove_range (CamelFolderSummary *summary, int start, int end); void camel_folder_summary_clear (CamelFolderSummary *summary); int camel_folder_summary_count (CamelFolderSummary *summary); CamelMessageInfo* camel_folder_summary_index (CamelFolderSummary *summary, int index); CamelMessageInfo* camel_folder_summary_uid (CamelFolderSummary *summary, const char *uid); GPtrArray* camel_folder_summary_array (CamelFolderSummary *summary); void camel_folder_summary_array_free (CamelFolderSummary *summary, GPtrArray *array); int camel_folder_summary_encode_token (FILE *out, const char *str); int camel_folder_summary_decode_token (FILE *in, char **str); gboolean camel_flag_get (CamelFlag **list, const char *name); gboolean camel_flag_set (CamelFlag **list, const char *name, gboolean state); gboolean camel_flag_list_copy (CamelFlag **to, CamelFlag **from); int camel_flag_list_size (CamelFlag **list); void camel_flag_list_free (CamelFlag **list); guint32 camel_system_flag (const char *name); gboolean camel_system_flag_get (guint32 flags, const char *name); const char* camel_tag_get (CamelTag **list, const char *name); gboolean camel_tag_set (CamelTag **list, const char *name, const char *value); gboolean camel_tag_list_copy (CamelTag **to, CamelTag **from); int camel_tag_list_size (CamelTag **list); void camel_tag_list_free (CamelTag **list); void* camel_message_info_new (CamelFolderSummary *summary); void camel_message_info_ref (void *info); CamelMessageInfo* camel_message_info_new_from_header (CamelFolderSummary *summary, struct _camel_header_raw *header); void camel_message_info_free (void *info); void* camel_message_info_clone (const void *info); const void* camel_message_info_ptr (const CamelMessageInfo *mi, int id); guint32 camel_message_info_uint32 (const CamelMessageInfo *mi, int id); time_t camel_message_info_time (const CamelMessageInfo *mi, int id); #define camel_message_info_uid (mi) #define camel_message_info_subject (mi) #define camel_message_info_from (mi) #define camel_message_info_to (mi) #define camel_message_info_cc (mi) #define camel_message_info_mlist (mi) #define camel_message_info_flags (mi) #define camel_message_info_size (mi) #define camel_message_info_date_sent (mi) #define camel_message_info_date_received (mi) #define camel_message_info_message_id (mi) #define camel_message_info_references (mi) #define camel_message_info_user_flags (mi) #define camel_message_info_user_tags (mi) gboolean camel_message_info_user_flag (const CamelMessageInfo *mi, const char *id); const char* camel_message_info_user_tag (const CamelMessageInfo *mi, const char *id); gboolean camel_message_info_set_flags (CamelMessageInfo *mi, guint32 mask, guint32 set); gboolean camel_message_info_set_user_flag (CamelMessageInfo *mi, const char *id, gboolean state); gboolean camel_message_info_set_user_tag (CamelMessageInfo *mi, const char *id, const char *val); void camel_content_info_dump (CamelMessageContentInfo *ci, int depth); void camel_message_info_dump (CamelMessageInfo *mi);
struct CamelFolderSummary {
CamelObject parent;
struct _CamelFolderSummaryPrivate *priv;
/* header info */
guint32 version; /* version of file loaded/loading */
guint32 flags; /* flags */
guint32 nextuid; /* next uid? */
time_t time; /* timestamp for this summary (for implementors to use) */
guint32 saved_count; /* how many were saved/loaded */
guint32 unread_count; /* handy totals */
guint32 deleted_count;
guint32 junk_count;
/* sizes of memory objects */
guint32 message_info_size;
guint32 content_info_size;
/* memory allocators (setup automatically) */
struct _EMemChunk *message_info_chunks;
struct _EMemChunk *content_info_chunks;
char *summary_path;
gboolean build_content; /* do we try and parse/index the content, or not? */
GPtrArray *messages; /* CamelMessageInfo's */
GHashTable *messages_uid; /* CamelMessageInfo's by uid */
struct _CamelFolder *folder; /* parent folder, for events */
struct _CamelFolderMetaSummary *meta_summary; /* Meta summary */
};
typedef struct {
CamelFolderSummary *summary;
guint32 refcount; /* ??? */
char *uid;
} CamelMessageInfo;
typedef struct {
CamelFolderSummary *summary;
guint32 refcount; /* ??? */
char *uid;
const char *subject;
const char *from;
const char *to;
const char *cc;
const char *mlist;
guint32 flags;
guint32 size;
time_t date_sent;
time_t date_received;
CamelSummaryMessageID message_id;
CamelSummaryReferences *references;/* from parent to root */
struct _CamelFlag *user_flags;
struct _CamelTag *user_tags;
/* tree of content description - NULL if it is not available */
CamelMessageContentInfo *content;
struct _camel_header_param *headers;
} CamelMessageInfoBase;
typedef struct {
guint32 major; /* Major version of meta-summary */
guint32 minor; /* Minor version of meta-summary */
guint32 uid_len; /* Length of UID (for implementors to use) */
gboolean msg_expunged; /* Whether any message is expunged or not */
char *path; /* Path to meta-summary-file */
} CamelFolderMetaSummary;
struct CamelMessageContentInfo {
struct _CamelMessageContentInfo *next;
struct _CamelMessageContentInfo *childs;
struct _CamelMessageContentInfo *parent;
CamelContentType *type;
char *id;
char *description;
char *encoding; /* this should be an enum?? */
guint32 size;
};
typedef enum _CamelMessageFlags {
CAMEL_MESSAGE_ANSWERED = 1<<0,
CAMEL_MESSAGE_DELETED = 1<<1,
CAMEL_MESSAGE_DRAFT = 1<<2,
CAMEL_MESSAGE_FLAGGED = 1<<3,
CAMEL_MESSAGE_SEEN = 1<<4,
/* these aren't really system flag bits, but are convenience flags */
CAMEL_MESSAGE_ATTACHMENTS = 1<<5,
CAMEL_MESSAGE_ANSWERED_ALL = 1<<6,
CAMEL_MESSAGE_JUNK = 1<<7,
CAMEL_MESSAGE_SECURE = 1<<8,
CAMEL_MESSAGE_USER_NOT_DELETABLE = 1<<9,
CAMEL_MESSAGE_HIDDEN = 1<<10,
CAMEL_MESSAGE_NOTJUNK = 1<<11,
/* following flags are for the folder, and are not really permanent flags */
CAMEL_MESSAGE_FOLDER_FLAGGED = 1<<16, /* for use by the folder implementation */
/* flags after 1<<16 are used by camel providers,
if adding non permanent flags, add them to the end */
CAMEL_MESSAGE_JUNK_LEARN = 1<<30, /* used when setting CAMEL_MESSAGE_JUNK flag
to say that we request junk plugin
to learn that message as junk/non junk */
CAMEL_MESSAGE_USER = 1<<31 /* supports user flags */
} CamelMessageFlags;
typedef struct {
struct _CamelFlag *next;
char name[1]; /* name allocated as part of the structure */
} CamelFlag;
typedef struct {
struct _CamelTag *next;
char *value;
char name[1]; /* name allocated as part of the structure */
} CamelTag;
typedef struct {
union {
guint64 id;
unsigned char hash[8];
struct {
guint32 hi;
guint32 lo;
} part;
} id;
} CamelSummaryMessageID;
typedef struct {
int size;
CamelSummaryMessageID references[1];
} CamelSummaryReferences;
typedef enum _CamelFolderSummaryFlags {
CAMEL_SUMMARY_DIRTY = 1<<0
} CamelFolderSummaryFlags;
CamelFolderSummary* camel_folder_summary_new (struct _CamelFolder *folder);
|
|
Returns : |
void camel_folder_summary_set_filename (CamelFolderSummary *summary, const char *filename);
|
|
|
void camel_folder_summary_set_index (CamelFolderSummary *summary, CamelIndex *index);
|
|
|
void camel_folder_summary_set_build_content
(CamelFolderSummary *summary,
gboolean state);
|
|
|
guint32 camel_folder_summary_next_uid (CamelFolderSummary *summary);
|
|
Returns : |
char* camel_folder_summary_next_uid_string
(CamelFolderSummary *summary);
|
|
Returns : |
void camel_folder_summary_set_uid (CamelFolderSummary *summary, guint32 uid);
|
|
|
int camel_folder_summary_load (CamelFolderSummary *summary);
|
|
Returns : |
int camel_folder_summary_save (CamelFolderSummary *summary);
|
|
Returns : |
int camel_folder_summary_header_load (CamelFolderSummary *summary);
|
|
Returns : |
void camel_folder_summary_touch (CamelFolderSummary *summary);
|
void camel_folder_summary_add (CamelFolderSummary *summary, CamelMessageInfo *info);
|
|
|
CamelMessageInfo* camel_folder_summary_add_from_header (CamelFolderSummary *summary, struct _camel_header_raw *headers);
|
|
|
|
Returns : |
CamelMessageInfo* camel_folder_summary_add_from_parser (CamelFolderSummary *summary, CamelMimeParser *parser);
|
|
|
|
Returns : |
CamelMessageInfo* camel_folder_summary_add_from_message (CamelFolderSummary *summary, CamelMimeMessage *message);
|
|
|
|
Returns : |
CamelMessageInfo* camel_folder_summary_info_new_from_header (CamelFolderSummary *summary, struct _camel_header_raw *headers);
|
|
|
|
Returns : |
CamelMessageInfo* camel_folder_summary_info_new_from_parser (CamelFolderSummary *summary, CamelMimeParser *parser);
|
|
|
|
Returns : |
CamelMessageInfo* camel_folder_summary_info_new_from_message (CamelFolderSummary *summary, CamelMimeMessage *message);
|
|
|
|
Returns : |
CamelMessageContentInfo* camel_folder_summary_content_info_new (CamelFolderSummary *summary);
|
|
Returns : |
void camel_folder_summary_content_info_free
(CamelFolderSummary *summary,
CamelMessageContentInfo *ci);
|
|
|
void camel_folder_summary_remove (CamelFolderSummary *summary, CamelMessageInfo *info);
|
|
|
void camel_folder_summary_remove_uid (CamelFolderSummary *summary, const char *uid);
|
|
|
void camel_folder_summary_remove_index (CamelFolderSummary *summary, int index);
|
|
|
void camel_folder_summary_remove_range (CamelFolderSummary *summary, int start, int end);
|
|
|
|
|
void camel_folder_summary_clear (CamelFolderSummary *summary);
|
int camel_folder_summary_count (CamelFolderSummary *summary);
|
|
Returns : |
CamelMessageInfo* camel_folder_summary_index (CamelFolderSummary *summary, int index);
|
|
|
|
Returns : |
CamelMessageInfo* camel_folder_summary_uid (CamelFolderSummary *summary, const char *uid);
|
|
|
|
Returns : |
GPtrArray* camel_folder_summary_array (CamelFolderSummary *summary);
|
|
Returns : |
void camel_folder_summary_array_free (CamelFolderSummary *summary, GPtrArray *array);
|
|
|
int camel_folder_summary_encode_token (FILE *out,
const char *str);
|
|
|
|
Returns : |
int camel_folder_summary_decode_token (FILE *in,
char **str);
|
|
|
|
Returns : |
gboolean camel_flag_get (CamelFlag **list, const char *name);
|
|
|
|
Returns : |
gboolean camel_flag_set (CamelFlag **list, const char *name, gboolean state);
|
|
|
|
|
|
Returns : |
gboolean camel_flag_list_copy (CamelFlag **to, CamelFlag **from);
|
|
|
|
Returns : |
gboolean camel_system_flag_get (guint32 flags,
const char *name);
|
|
|
|
Returns : |
const char* camel_tag_get (CamelTag **list, const char *name);
|
|
|
|
Returns : |
gboolean camel_tag_set (CamelTag **list, const char *name, const char *value);
|
|
|
|
|
|
Returns : |
gboolean camel_tag_list_copy (CamelTag **to, CamelTag **from);
|
|
|
|
Returns : |
void* camel_message_info_new (CamelFolderSummary *summary);
|
|
Returns : |
CamelMessageInfo* camel_message_info_new_from_header (CamelFolderSummary *summary, struct _camel_header_raw *header);
|
|
|
|
Returns : |
const void* camel_message_info_ptr (const CamelMessageInfo *mi, int id);
|
|
|
|
Returns : |
guint32 camel_message_info_uint32 (const CamelMessageInfo *mi, int id);
|
|
|
|
Returns : |
time_t camel_message_info_time (const CamelMessageInfo *mi, int id);
|
|
|
|
Returns : |
#define camel_message_info_uid(mi) ((const char *)((const CamelMessageInfo *)mi)->uid)
|
#define camel_message_info_subject(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_SUBJECT))
|
#define camel_message_info_from(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_FROM))
|
#define camel_message_info_to(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_TO))
|
#define camel_message_info_cc(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_CC))
|
#define camel_message_info_mlist(mi) ((const char *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_MLIST))
|
#define camel_message_info_flags(mi) camel_message_info_uint32((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_FLAGS)
|
#define camel_message_info_size(mi) camel_message_info_uint32((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_SIZE)
|
#define camel_message_info_date_sent(mi) camel_message_info_time((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_DATE_SENT)
|
#define camel_message_info_date_received(mi) camel_message_info_time((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_DATE_RECEIVED)
|
#define camel_message_info_message_id(mi) ((const CamelSummaryMessageID *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_MESSAGE_ID))
|
#define camel_message_info_references(mi) ((const CamelSummaryReferences *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_REFERENCES))
|
#define camel_message_info_user_flags(mi) ((const CamelFlag *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_USER_FLAGS))
|
#define camel_message_info_user_tags(mi) ((const CamelTag *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_USER_TAGS))
|
gboolean camel_message_info_user_flag (const CamelMessageInfo *mi, const char *id);
|
|
|
|
Returns : |
const char* camel_message_info_user_tag (const CamelMessageInfo *mi, const char *id);
|
|
|
|
Returns : |
gboolean camel_message_info_set_flags (CamelMessageInfo *mi, guint32 mask, guint32 set);
|
|
|
|
|
|
Returns : |
gboolean camel_message_info_set_user_flag (CamelMessageInfo *mi, const char *id, gboolean state);
|
|
|
|
|
|
Returns : |
gboolean camel_message_info_set_user_tag (CamelMessageInfo *mi, const char *id, const char *val);
|
|
|
|
|
|
Returns : |
void camel_content_info_dump (CamelMessageContentInfo *ci, int depth);
|
|
|