X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-tny-account.h;h=8cbcc72bcf2b3441efe1b48c8845c6dd9bada994;hp=321a5abd58129a4311260e7e2c3e9a1f7a559ee7;hb=04fa8f60ad3ce55f41e650558c56f210e0d87143;hpb=90f3aad0474afab700641752882869fe238aff5e diff --git a/src/modest-tny-account.h b/src/modest-tny-account.h index 321a5ab..8cbcc72 100644 --- a/src/modest-tny-account.h +++ b/src/modest-tny-account.h @@ -36,27 +36,201 @@ #include #include +#include #include +#include G_BEGIN_DECLS + + + + +/** + * modest_tny_account_new_from_account: + * @account_mgr: a valid account mgr instance + * @account_name: the modest account name for which to create a corresponding tny account of the given type. + * @type: the type of account to create (TNY_ACCOUNT_TYPE_STORE or TNY_ACCOUNT_TYPE_TRANSPORT) + * @session: a tny camel session + * @get_pass_func: the get-password function + * @forget_pass_func: the forget-password function + * + * get a tnyaccount corresponding to the server_accounts (store or transport) for this account. + * + * Returns: a new TnyAccount or NULL in case of error. + */ +TnyAccount* +modest_tny_account_new_from_account (ModestAccountMgr *account_mgr, const gchar *account_name, + TnyAccountType type, + TnySessionCamel *session, + TnyGetPassFunc get_pass_func, + TnyForgetPassFunc forget_pass_func); + + +/** + * modest_tny_account_update_from_account: + * @tny_account: a valid tny_account + * @account_mgr: a valid account mgr instance + * @account_name: the modest account name for which to create a corresponding tny account of the given type. + * @type: the type of account to create (TNY_ACCOUNT_TYPE_STORE or TNY_ACCOUNT_TYPE_TRANSPORT) + * + * update a tnyaccount corresponding to the server_accounts (store or transport) for this account. + * + * Returns: a TRUE or FALSE in case of error. + */ +gboolean +modest_tny_account_update_from_account (TnyAccount *tny_account, ModestAccountMgr *account_mgr, + const gchar *account_name, TnyAccountType type); + + +/** + * modest_tny_account_new_for_local_folders: + * @account_mgr: a valid account mgr instance + * @session: a tny camel session + * @location_filepath: The location at which the local-folders directory exists, or NULL to specify $HOME. + * + * get the local folders (pseudo) account; you should only need one such account. + * + * Returns: a new local folders TnyAccount or NULL in case of error. + */ +TnyAccount* modest_tny_account_new_for_local_folders (ModestAccountMgr *account_mgr, + TnySessionCamel *session, + const gchar* location_filepath); + +/** + * modest_tny_account_new_for_per_account_local_outbox_folder: + * @account_mgr: a valid account mgr instance + * @account_name: a modest account name. + * @session: a tny camel session + * + * get the per-account local outbox folder (pseudo) account. + * + * Returns: a new per-account local outbox folder TnyAccount or NULL in case of error. + */ +TnyAccount* modest_tny_account_new_for_per_account_local_outbox_folder ( + ModestAccountMgr *account_mgr, const gchar* account_name, + TnySessionCamel *session); + +/** + * modest_tny_account_new_from_server_account_name: + * @account_mgr: a valid account mgr instance + * @session: a valid TnySessionCamel instance. + * @server_account_name: the name of a server account in the configuration system. + * + * Returns: a new TnyAccount or NULL in case of error. + */ +TnyAccount* +modest_tny_account_new_from_server_account_name (ModestAccountMgr *account_mgr, + TnySessionCamel *session, + const gchar* server_account_name); + +/** + * modest_tny_account_new_from_server_account_name: + * @tny_account: a valid tny account + * @account_mgr: a valid account mgr instance + * @server_account_name: the name of a server account in the configuration system. + * + * update the given tny account; note that you cannot change the protocol type + * + * Returns: a new TnyAccount or NULL in case of error. + */ +gboolean modest_tny_account_update_from_server_account_name (TnyAccount *tny_account, + ModestAccountMgr *account_mgr, + const gchar *server_account_name); + + /** - * modest_tny_account_get_special_folder + * modest_tny_account_get_special_folder: * @self: a TnyAccount * @special_type: the special folder to get * - * get the special (Inbox,Outbox,Sent,Draft etc.) folder for this account + * get the special (Inbox,Outbox,Sent,Draft etc.) folder for this server account's parent modest account. * Note: currently, the implementation will always return a local folder for this. * This can be changed later to return really account-specific special folders, * such as (for example) server-side Sent/Junk mail for IMAP accounts * * Returns: the tny folder corresponding to this special folder, or NULL in case - * of error, or if the special folder does not exist for this account + * of error, or if the special folder does not exist for this account. + * This must be unrefed with g_object_unref(). */ TnyFolder* modest_tny_account_get_special_folder (TnyAccount *self, TnyFolderType special_type); +/** + * modest_tny_folder_store_get_folder_count: + * @self: a #TnyFolderStore + * + * gets the number of folders of the account + * + * Returns: the number of folder, or -1 in case of error + **/ +gint modest_tny_folder_store_get_folder_count (TnyFolderStore *self); + +/** + * modest_tny_folder_store_get_message_count: + * @self: + * + * gets the number of messages in the account + * + * Returns: the number of messages, or -1 in case of error + **/ +gint modest_tny_folder_store_get_message_count (TnyFolderStore *self); + +/** + * modest_tny_folder_store_get_local_size: + * @self: + * + * gets the total size occupied by the account in the local storage + * device + * + * Returns: the total size in bytes, or -1 in case of error + **/ +gint modest_tny_folder_store_get_local_size (TnyFolderStore *self); + +/** modest_tny_account_get_parent_modest_account_name_for_server_account: + * Get the name of the parent modest account of which the server account is a part. + */ +const gchar* modest_tny_account_get_parent_modest_account_name_for_server_account (TnyAccount *self); + +/** modest_tny_account_set_parent_modest_account_name_for_server_account: + * Set the name of the parent modest account of which the server account is a part, + * so it can be retrieved later with + * modest_tny_account_get_parent_modest_account_name_for_server_account(). + */ +void modest_tny_account_set_parent_modest_account_name_for_server_account (TnyAccount *account, const gchar* parent_modest_acount_name); + + +typedef void (*ModestTnyAccountGetMmcAccountNameCallback) (TnyStoreAccount* self, gpointer user_data); + +/** modest_tny_account_get_mmc_account_name: + * Asnchronously get the name of a memory card account and set it in the TnyAccount, + * calling the callback (if not NULL) to notify that the name is changed. + * if the name was changed. The callback will not be called if the name was not changed. + */ +void modest_tny_account_get_mmc_account_name (TnyStoreAccount* self, + ModestTnyAccountGetMmcAccountNameCallback callback, + gpointer user_data); + + +/** modest_tny_account_is_virtual_local_folders: + * @self A TnyAccount. + * + * A convenience function to identify whether TnyAccount + * is the virtual local folders account, containing the folders from local_folders/ + * and the outboxes from outboxes//. + **/ +gboolean modest_tny_account_is_virtual_local_folders (TnyAccount *self); + +/** modest_tny_account_is_memory_card_account: + * @self A TnyAccount. + * + * A convenience function to identify whether TnyAccount + * is the memory card account. + **/ +gboolean modest_tny_account_is_memory_card_account (TnyAccount *self); + + G_END_DECLS #endif /* __MODEST_TNY_ACCOUNT_H__*/