camel-imapx-metadata
camel-imapx-metadata
|
|
Details
enum imapx_meta_attrib_type_t
typedef enum {
CAMEL_IMAPX_META_ATTRIB_TYPE_UNSET = 0,
CAMEL_IMAPX_META_ATTRIB_TYPE_NIL,
CAMEL_IMAPX_META_ATTRIB_TYPE_UTF8,
CAMEL_IMAPX_META_ATTRIB_TYPE_BINARY,
CAMEL_IMAPX_META_ATTRIB_LAST_TYPE
} imapx_meta_attrib_type_t;
enum imapx_meta_data_access_t
typedef enum {
CAMEL_IMAPX_METADATA_ACCESS_PRIVATE = 0,
CAMEL_IMAPX_METADATA_ACCESS_SHARED,
CAMEL_IMAPX_METADATA_LAST_ACCESS
} imapx_meta_data_access_t;
enum imapx_meta_data_proto_t
typedef enum {
CAMEL_IMAPX_METADATA_PROTO_INVAL = 0,
CAMEL_IMAPX_METADATA_PROTO_ANNOTATEMORE,
CAMEL_IMAPX_METADATA_PROTO_METADATA,
CAMEL_IMAPX_METADATA_LAST_PROTO
} imapx_meta_data_proto_t;
CamelIMAPXMetaDataSpec
typedef struct {
imapx_meta_data_proto_t proto;
gchar *mailbox_name;
gchar *entry_name;
gchar *attrib_name;
} CamelIMAPXMetaDataSpec;
CamelIMAPXMetaAttrib
typedef struct {
/* attribute name kept as hash table key in CamelIMAPXMetaEntry */
GByteArray *data[CAMEL_IMAPX_METADATA_LAST_ACCESS]; /* attribute data (UTF-8/Binary/NIL/unset) */
imapx_meta_attrib_type_t type[CAMEL_IMAPX_METADATA_LAST_ACCESS]; /* type of data */
} CamelIMAPXMetaAttrib;
CamelIMAPXMetaEntry
typedef struct {
/* entry name kept as hash table key in CamelIMAPXMetaAnnotation */
GHashTable *attributes; /* for CamelIMAPXMetaAttribute */
} CamelIMAPXMetaEntry;
CamelIMAPXMetaAnnotation
typedef struct {
/* annotation name kept as hash table key in CamelIMAPXMetaData */
GHashTable *entries;
} CamelIMAPXMetaAnnotation;
CamelIMAPXMetaData
typedef struct {
imapx_meta_data_proto_t proto;
GHashTable *mboxes;
/* lock needed? */
GMutex *md_lock;
} CamelIMAPXMetaData;