camel-imapx-metadata

camel-imapx-metadata

Synopsis

enum                imapx_meta_attrib_type_t;
enum                imapx_meta_data_access_t;
enum                imapx_meta_data_proto_t;
                    CamelIMAPXMetaDataSpec;
                    CamelIMAPXMetaAttrib;
                    CamelIMAPXMetaEntry;
                    CamelIMAPXMetaAnnotation;
                    CamelIMAPXMetaData;

Description

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;