![]() |
![]() |
![]() |
Camel Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#define CAMEL_DB_FILE #define CAMEL_DB_IN_MEMORY_TABLE #define CAMEL_DB_IN_MEMORY_DB #define CAMEL_DB_IN_MEMORY_TABLE_LIMIT #define CAMEL_DB_FREE_CACHE_SIZE #define CAMEL_DB_SLEEP_INTERVAL #define CAMEL_DB_RELEASE_SQLITE_MEMORY #define CAMEL_DB_USE_SHARED_CACHEgint (*CamelDBCollate) (,
gpointer Param1,
gint Param2,
gconstpointer Param3,
gint Param4); CamelDB; CamelMIRecord; CamelFIRecord; enum CamelDBKnownColumnNames; CamelDBKnownColumnNames camel_db_get_column_ident (
gconstpointer Param5,
GHashTable **hash,
gint index,
gint ncols);
gchar **col_namesgint (*CamelDBSelectCB) (,
gpointer data,
gint ncol,
gchar **colvalues); CamelDB * camel_db_open (
gchar **colnamesconst
,gchar *path); CamelDB * camel_db_clone (
GError **errorCamelDB *cdb
,);
GError **errorvoid camel_db_close (CamelDB *cdb
);gint camel_db_command (CamelDB *cdb
,const
,gchar *stmt);
GError **errorgint camel_db_transaction_command (CamelDB *cdb
,,
GList *qry_list);
GError **errorgint camel_db_begin_transaction (CamelDB *cdb
,);
GError **errorgint camel_db_add_to_transaction (CamelDB *cdb
,const
,gchar *query);
GError **errorgint camel_db_end_transaction (CamelDB *cdb
,);
GError **errorgint camel_db_abort_transaction (CamelDB *cdb
,);
GError **errorgint camel_db_clear_folder_summary (CamelDB *cdb
,const
,gchar *folder);
GError **errorgint camel_db_rename_folder (CamelDB *cdb
,const
,gchar *old_folderconst
,gchar *new_folder);
GError **errorgint camel_db_delete_folder (CamelDB *cdb
,const
,gchar *folder);
GError **errorgint camel_db_delete_uid (CamelDB *cdb
,const
,gchar *folderconst
,gchar *uid);
GError **errorgint camel_db_delete_uids (CamelDB *cdb
,const
,gchar *folder_name,
GList *uids);
GError **errorgint camel_db_delete_vuids (CamelDB *cdb
,const
,gchar *folder_nameconst
,gchar *shash,
GList *uids);
GError **errorgint camel_db_create_folders_table (CamelDB *cdb
,);
GError **errorgint camel_db_select (CamelDB *cdb
,const
,gchar *stmtCamelDBSelectCB callback
,,
gpointer data);
GError **errorgint camel_db_write_folder_info_record (CamelDB *cdb
,CamelFIRecord *record
,);
GError **errorgint camel_db_read_folder_info_record (CamelDB *cdb
,const
,gchar *folder_nameCamelFIRecord *record
,);
GError **errorgint camel_db_prepare_message_info_table (CamelDB *cdb
,const
,gchar *folder_name);
GError **errorgint camel_db_write_message_info_record (CamelDB *cdb
,const
,gchar *folder_nameCamelMIRecord *record
,);
GError **errorgint camel_db_write_fresh_message_info_record (CamelDB *cdb
,const
,gchar *folder_nameCamelMIRecord *record
,);
GError **errorgint camel_db_read_message_info_records (CamelDB *cdb
,const
,gchar *folder_name,
gpointer pCamelDBSelectCB read_mir_callback
,);
GError **errorgint camel_db_read_message_info_record_with_uid (CamelDB *cdb
,const
,gchar *folder_nameconst
,gchar *uid,
gpointer pCamelDBSelectCB read_mir_callback
,);
GError **errorgint camel_db_count_junk_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **errorgint camel_db_count_unread_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **errorgint camel_db_count_deleted_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **errorgint camel_db_count_total_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **errorgint camel_db_count_visible_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **errorgint camel_db_count_visible_unread_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **errorgint camel_db_count_junk_not_deleted_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **errorgint camel_db_count_message_info (CamelDB *cdb
,const
,gchar *query,
guint32 *count);
GError **errorvoid camel_db_camel_mir_free (CamelMIRecord *record
);gint camel_db_create_vfolder (CamelDB *db
,const
,gchar *folder_name);
GError **errorgint camel_db_recreate_vfolder (CamelDB *db
,const
,gchar *folder_name);
GError **errorgint camel_db_delete_uid_from_vfolder (CamelDB *db
,,
gchar *folder_name,
gchar *vuid);
GError **errorgint camel_db_delete_uid_from_vfolder_transaction (CamelDB *db
,const
,gchar *folder_nameconst
,gchar *vuid);
GError **errorGPtrArray * camel_db_get_vuids_from_vfolder (CamelDB *db
,const
,gchar *folder_name,
gchar *filter);
GError **errorgint camel_db_add_to_vfolder (CamelDB *db
,,
gchar *folder_name,
gchar *vuid);
GError **errorgint camel_db_add_to_vfolder_transaction (CamelDB *db
,const
,gchar *folder_nameconst
,gchar *vuid);
GError **errorgint camel_db_get_folder_uids (CamelDB *db
,const
,gchar *folder_nameconst
,gchar *sort_byconst
,gchar *collate,
GHashTable *hash);
GError **errorGPtrArray * camel_db_get_folder_junk_uids (CamelDB *db
,,
gchar *folder_name);
GError **errorGPtrArray * camel_db_get_folder_deleted_uids (CamelDB *db
,const
,gchar *folder_name);
GError **errorgchar * camel_db_sqlize_string (const
);gchar *stringvoid camel_db_free_sqlized_string ();
gchar *stringgchar * camel_db_get_column_name (const
);gchar *raw_namegint camel_db_set_collate (CamelDB *cdb
,const
,gchar *colconst
,gchar *collateCamelDBCollate func
);gint camel_db_start_in_memory_transactions (CamelDB *cdb
,);
GError **errorgint camel_db_flush_in_memory_transactions (CamelDB *cdb
,const
,gchar *folder_name);
GError **errorGHashTable * camel_db_get_folder_preview (CamelDB *db
,const
,gchar *folder_name);
GError **errorgint camel_db_write_preview_record (CamelDB *db
,const
,gchar *folder_nameconst
,gchar *uidconst
,gchar *msg);
GError **errorgint camel_db_reset_folder_version (CamelDB *cdb
,const
,gchar *folder_name,
gint reset_version);
GError **error
#define CAMEL_DB_RELEASE_SQLITE_MEMORY if(!g_getenv("CAMEL_SQLITE_FREE_CACHE")) sqlite3_release_memory(CAMEL_DB_FREE_CACHE_SIZE);
Since 2.24
#define CAMEL_DB_USE_SHARED_CACHE if(g_getenv("CAMEL_SQLITE_SHARED_CACHE")) sqlite3_enable_shared_cache(TRUE);
Since 2.24
gint (*CamelDBCollate) (,
gpointer Param1,
gint Param2,
gconstpointer Param3,
gint Param4);
gconstpointer Param5
Since 2.24
typedef struct { sqlite3 *db; /* this lock has been replaced with a rw lock which sits inside priv. * This is currently unused. Keeping it, not to break the ABI */ GMutex *lock; CamelDBPrivate *priv; } CamelDB;
Since 2.24
typedef struct { gchar *uid; guint32 flags; guint32 msg_type; guint32 dirty; gboolean read; gboolean deleted; gboolean replied; gboolean important; gboolean junk; gboolean attachment; guint32 size; time_t dsent; time_t dreceived; gchar *subject; gchar *from; gchar *to; gchar *cc; gchar *mlist; gchar *followup_flag; gchar *followup_completed_on; gchar *followup_due_by; gchar *part; gchar *labels; gchar *usertags; gchar *cinfo; gchar *bdata; gchar *bodystructure; } CamelMIRecord;
The extensive DB format, supporting basic searching and sorting.
Message UID | |
Camel Message info flags | |
boolean read status | |
boolean deleted status | |
boolean replied status | |
boolean important status | |
boolean junk status | |
boolean attachment status | |
size of the mail | |
date sent | |
date received | |
subject of the mail | |
sender | |
recipient | |
CC members | |
message list headers | |
followup flag / also can be queried to see for followup or not | |
completed date, can be used to see if completed | |
to see the due by date | |
part / references / thread id | |
labels of mails also called as userflags | |
composite string of user tags | |
content info string - composite string | |
provider specific data | |
Since 2.24
typedef struct { gchar *folder_name; guint32 version; guint32 flags; guint32 nextuid; time_t time; guint32 saved_count; guint32 unread_count; guint32 deleted_count; guint32 junk_count; guint32 visible_count; guint32 jnd_count; /* Junked not deleted */ gchar *bdata; } CamelFIRecord;
Since 2.24
typedef enum { CAMEL_DB_COLUMN_UNKNOWN = -1, CAMEL_DB_COLUMN_ATTACHMENT, CAMEL_DB_COLUMN_BDATA, CAMEL_DB_COLUMN_BODYSTRUCTURE, CAMEL_DB_COLUMN_CINFO, CAMEL_DB_COLUMN_DELETED, CAMEL_DB_COLUMN_DELETED_COUNT, CAMEL_DB_COLUMN_DRECEIVED, CAMEL_DB_COLUMN_DSENT, CAMEL_DB_COLUMN_FLAGS, CAMEL_DB_COLUMN_FOLDER_NAME, CAMEL_DB_COLUMN_FOLLOWUP_COMPLETED_ON, CAMEL_DB_COLUMN_FOLLOWUP_DUE_BY, CAMEL_DB_COLUMN_FOLLOWUP_FLAG, CAMEL_DB_COLUMN_IMPORTANT, CAMEL_DB_COLUMN_JND_COUNT, CAMEL_DB_COLUMN_JUNK, CAMEL_DB_COLUMN_JUNK_COUNT, CAMEL_DB_COLUMN_LABELS, CAMEL_DB_COLUMN_MAIL_CC, CAMEL_DB_COLUMN_MAIL_FROM, CAMEL_DB_COLUMN_MAIL_TO, CAMEL_DB_COLUMN_MLIST, CAMEL_DB_COLUMN_NEXTUID, CAMEL_DB_COLUMN_PART, CAMEL_DB_COLUMN_PREVIEW, CAMEL_DB_COLUMN_READ, CAMEL_DB_COLUMN_REPLIED, CAMEL_DB_COLUMN_SAVED_COUNT, CAMEL_DB_COLUMN_SIZE, CAMEL_DB_COLUMN_SUBJECT, CAMEL_DB_COLUMN_TIME, CAMEL_DB_COLUMN_UID, CAMEL_DB_COLUMN_UNREAD_COUNT, CAMEL_DB_COLUMN_USERTAGS, CAMEL_DB_COLUMN_VERSION, CAMEL_DB_COLUMN_VISIBLE_COUNT, CAMEL_DB_COLUMN_VUID } CamelDBKnownColumnNames;
Since 3.4
CamelDBKnownColumnNames camel_db_get_column_ident (,
GHashTable **hash,
gint index,
gint ncols);
gchar **col_names
Traverses column name from index index
into an enum
CamelDBKnownColumnNames value. The col_names
contains ncols
columns.
First time this is called is created the hash
from col_names indexes into
the enum, and this is reused for every other call. The function expects
that column names are returned always in the same order. When all rows
are read the hash
table can be freed with g_hash_table_destroy()
Since 3.4
gint (*CamelDBSelectCB) (,
gpointer data,
gint ncol,
gchar **colvalues);
gchar **colnames
Since 2.24
gint camel_db_command (CamelDB *cdb
,const
,gchar *stmt);
GError **error
Since 2.24
gint camel_db_transaction_command (CamelDB *cdb
,,
GList *qry_list);
GError **error
Since 2.24
gint camel_db_begin_transaction (CamelDB *cdb
,);
GError **error
Since 2.24
gint camel_db_add_to_transaction (CamelDB *cdb
,const
,gchar *query);
GError **error
Since 2.24
gint camel_db_end_transaction (CamelDB *cdb
,);
GError **error
Since 2.24
gint camel_db_abort_transaction (CamelDB *cdb
,);
GError **error
Since 2.24
gint camel_db_clear_folder_summary (CamelDB *cdb
,const
,gchar *folder);
GError **error
Since 2.24
gint camel_db_rename_folder (CamelDB *cdb
,const
,gchar *old_folderconst
,gchar *new_folder);
GError **error
Since 2.24
gint camel_db_delete_folder (CamelDB *cdb
,const
,gchar *folder);
GError **error
Since 2.24
gint camel_db_delete_uid (CamelDB *cdb
,const
,gchar *folderconst
,gchar *uid);
GError **error
Since 2.24
gint camel_db_delete_uids (CamelDB *cdb
,const
,gchar *folder_name,
GList *uids);
GError **error
Since 2.24
gint camel_db_delete_vuids (CamelDB *cdb
,const
,gchar *folder_nameconst
,gchar *shash,
GList *uids);
GError **error
Since 2.26
gint camel_db_create_folders_table (CamelDB *cdb
,);
GError **error
Since 2.24
gint camel_db_select (CamelDB *cdb
,const
,gchar *stmtCamelDBSelectCB callback
,,
gpointer data);
GError **error
Since 2.24
gint camel_db_write_folder_info_record (CamelDB *cdb
,CamelFIRecord *record
,);
GError **error
Since 2.24
gint camel_db_read_folder_info_record (CamelDB *cdb
,const
,gchar *folder_nameCamelFIRecord *record
,);
GError **error
Since 2.24
gint camel_db_prepare_message_info_table (CamelDB *cdb
,const
,gchar *folder_name);
GError **error
Since 2.24
gint camel_db_write_message_info_record (CamelDB *cdb
,const
,gchar *folder_nameCamelMIRecord *record
,);
GError **error
Since 2.24
gint camel_db_write_fresh_message_info_record (CamelDB *cdb
,const
,gchar *folder_nameCamelMIRecord *record
,);
GError **error
Since 2.26
gint camel_db_read_message_info_records (CamelDB *cdb
,const
,gchar *folder_name,
gpointer pCamelDBSelectCB read_mir_callback
,);
GError **error
Since 2.24
gint camel_db_read_message_info_record_with_uid (CamelDB *cdb
,const
,gchar *folder_nameconst
,gchar *uid,
gpointer pCamelDBSelectCB read_mir_callback
,);
GError **error
Since 2.24
gint camel_db_count_junk_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **error
Since 2.24
gint camel_db_count_unread_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **error
Since 2.24
gint camel_db_count_deleted_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **error
Since 2.24
gint camel_db_count_total_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **error
Since 2.24
gint camel_db_count_visible_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **error
Since 2.24
gint camel_db_count_visible_unread_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **error
Since 2.24
gint camel_db_count_junk_not_deleted_message_info (CamelDB *cdb
,const
,gchar *table_name,
guint32 *count);
GError **error
gint camel_db_count_message_info (CamelDB *cdb
,const
,gchar *query,
guint32 *count);
GError **error
Since 2.26
gint camel_db_create_vfolder (CamelDB *db
,const
,gchar *folder_name);
GError **error
Since 2.24
gint camel_db_recreate_vfolder (CamelDB *db
,const
,gchar *folder_name);
GError **error
Since 2.24
gint camel_db_delete_uid_from_vfolder (CamelDB *db
,,
gchar *folder_name,
gchar *vuid);
GError **error
Since 2.24
gint camel_db_delete_uid_from_vfolder_transaction (CamelDB *db
,const
,gchar *folder_nameconst
,gchar *vuid);
GError **error
Since 2.24
GPtrArray * camel_db_get_vuids_from_vfolder (CamelDB *db
,const
,gchar *folder_name,
gchar *filter);
GError **error
Since 2.24
gint camel_db_add_to_vfolder (CamelDB *db
,,
gchar *folder_name,
gchar *vuid);
GError **error
Since 2.24
gint camel_db_add_to_vfolder_transaction (CamelDB *db
,const
,gchar *folder_nameconst
,gchar *vuid);
GError **error
Since 2.24
gint camel_db_get_folder_uids (CamelDB *db
,const
,gchar *folder_nameconst
,gchar *sort_byconst
,gchar *collate,
GHashTable *hash);
GError **error
Fills hash with uid->GUINT_TO_POINTER (flag)
Since 2.24
GPtrArray * camel_db_get_folder_junk_uids (CamelDB *db
,,
gchar *folder_name);
GError **error
Since 2.24
GPtrArray * camel_db_get_folder_deleted_uids (CamelDB *db
,const
,gchar *folder_name);
GError **error
Since 2.24
gint camel_db_set_collate (CamelDB *cdb
,const
,gchar *colconst
,gchar *collateCamelDBCollate func
);
Since 2.24
gint camel_db_start_in_memory_transactions (CamelDB *cdb
,);
GError **error
Since 2.26
gint camel_db_flush_in_memory_transactions (CamelDB *cdb
,const
,gchar *folder_name);
GError **error
Since 2.26
GHashTable * camel_db_get_folder_preview (CamelDB *db
,const
,gchar *folder_name);
GError **error
Since 2.28
gint camel_db_write_preview_record (CamelDB *db
,const
,gchar *folder_nameconst
,gchar *uidconst
,gchar *msg);
GError **error
Since 2.28
gint camel_db_reset_folder_version (CamelDB *cdb
,const
,gchar *folder_name,
gint reset_version);
GError **error
Since 2.28