G_BEGIN_DECLS
+typedef struct
+{
+ guint local_size;
+ guint msg_count;
+ guint folders;
+} ModestFolderStats;
+
/**
* modest_tny_account_new_from_account:
* @account_mgr: a valid account mgr instance
* @forget_pass_func: the forget-password function
*
* get a tnyaccount corresponding to the server_accounts (store or transport) for this account.
- * NOTE: this function does not set the camel session or the get/forget password functions
*
* Returns: a new TnyAccount or NULL in case of error.
*/
/**
+ * modest_tny_account_update_from_account:
+ * @tny_account: a valid tny_account
+ *
+ * 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,
+ TnyGetPassFunc get_pass_func,
+ TnyForgetPassFunc forget_pass_func);
+
+
+/**
* modest_tny_account_new_for_local_folders:
* @account_mgr: a valid account mgr instance
* @session: a tny camel session
*/
TnyAccount*
modest_tny_account_new_from_server_account_name (ModestAccountMgr *account_mgr,
- TnySessionCamel *session, const gchar* server_account_name);
-
+ TnySessionCamel *session,
+ const gchar* server_account_name,
+ TnyGetPassFunc get_pass_func,
+ TnyForgetPassFunc forget_pass_func);
+
/**
* modest_tny_account_get_special_folder:
* @self: a TnyAccount
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);
+typedef void (*GetFolderStatsCallback) (ModestFolderStats stats,
+ gpointer user_data);
/**
- * modest_tny_folder_store_get_message_count:
- * @self:
- *
- * gets the number of messages in the account
+ * modest_tny_folder_store_get_folder_stats:
+ * @self: a #TnyFolderStore
*
- * Returns: the number of messages, or -1 in case of error
**/
-gint modest_tny_folder_store_get_message_count (TnyFolderStore *self);
+void
+modest_tny_folder_store_get_folder_stats (TnyFolderStore *self,
+ GetFolderStatsCallback callback,
+ GetFolderStatsCallback status_callback,
+ gpointer user_data);
/**
- * 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_folder_store_is_remote:
+ * @folder_store: The folder store (folder or account) that needs to
+ * decide if need a connection in subsequent operations.
+ * @return value: Whether a connection is necessary for this folder_store.
+ */
+gboolean modest_tny_folder_store_is_remote (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.
* 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);
+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/<account-name>/.
+ **/
+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);
+
+/**
+ * modest_tny_account_get_protocol_type:
+ * @self: a #TnyAccount
+ *
+ * obtains the transport/store protocol type of @self
+ *
+ * Returns: a #ModestProtocolType
+ */
+ModestProtocolType modest_tny_account_get_protocol_type (TnyAccount *self);
+
G_END_DECLS