2007-05-23 Murray Cumming <murrayc@murrayc.com>
[modest] / src / modest-tny-account-store.h
index 902e58b..0386769 100644 (file)
@@ -39,6 +39,7 @@
 #include <tny-session-camel.h>
 #include <tny-shared.h>
 #include <tny-folder.h>
+#include <modest-tny-simple-folder-store.h>
 #include <modest-account-mgr.h>
 
 /* other include files */
@@ -64,13 +65,18 @@ struct _ModestTnyAccountStore {
 struct _ModestTnyAccountStoreClass {
        GObjectClass parent_class;
 
-       void (*account_update)    (ModestTnyAccountStore *self,
-                                  const gchar *account_name,
-                                  gpointer user_data);
+       void (*account_update)        (ModestTnyAccountStore *self,
+                                     const gchar *account_name,
+                                     gpointer user_data);
+       void (*password_requested)    (ModestTnyAccountStore *self,
+                                      const gchar *server_account_name,
+                                      gchar **username,
+                                      gchar **password,
+                                      gboolean *remember,
+                                      gboolean *cancel,
+                                      gpointer user_data);
 };
 
-/* member functions */
-
 /**
  * modest_tny_account_store_get_type:
  *
@@ -86,44 +92,73 @@ GType  modest_tny_account_store_get_type   (void) G_GNUC_CONST;
  *
  * Returns: newly created account store or NULL in case of error
  */
-ModestTnyAccountStore*    modest_tny_account_store_new (ModestAccountMgr *account_mgr);
+ModestTnyAccountStore*    modest_tny_account_store_new (ModestAccountMgr *account_mgr,
+                                                       TnyDevice *device);
+
 
 /**
- * tny_account_store_get_session
- * @self: a TnyAccountStore instance
+ * modest_tny_account_store_get_account_by_id 
+ * @self: a ModestTnyAccountStore instance
+ * @id: some ID
  * 
- * get the tny-camel-session for this account store. Note that this function
- * does NOT have the modest_ prefix, as tinymail requires the symbol to be like this...
- *
- * Returns: a tny-camel-session
+ * get the account with the given ID or NULL if it's not found
+ * 
+ * Returns: the tnyaccount or NULL,
+ * g_object_unref when it's no longer needed
  */
-TnySessionCamel*    tny_account_store_get_session    (TnyAccountStore *self);
-
-
+TnyAccount* modest_tny_account_store_get_tny_account_by_id  (ModestTnyAccountStore *self,
+                                                            const gchar *id);
 
 /**
- * tny_account_store_get_local_folders_account 
+ * modest_tny_account_store_get_tny_account_by_account
  * @self: a ModestTnyAccountStore instance
+ * @account_name: an account name
+ * @type: the tny account type
  * 
- * return the account corresponding to the local folders
- *
- * Returns: the tnyaccount for the local folders
+ * Get the tny account corresponding to one of the server_accounts for account with @account_name
+ * 
+ * Returns: the tnyaccount for the server account or NULL in case it's not found or error,
+ * g_object_unref when it's no longer needed
  */
-TnyAccount*    modest_tny_account_store_get_local_folders_account    (ModestTnyAccountStore *self);
-
-
+TnyAccount* modest_tny_account_store_get_tny_account_by_account (ModestTnyAccountStore *self,
+                                                                const gchar *account_name,
+                                                                TnyAccountType type);
+               
 /**
- * tny_account_store_get_special_folder
+ * modest_tny_account_store_get_transport_account_for_open_connection
  * @self: a ModestTnyAccountStore instance
- * @type: some tny folder type
+ * @account_name: an account name
+ * 
+ * Get the tny account corresponding to the transport server account for the account with @account_name,
+ * returning the connection-specific SMTP-server transport server account if one is specified,
+ * otherwise just returning the regular transport server account.
+ * 
+ * Returns: the tnyaccount for the server account or NULL in case it's not found or error,
+ * g_object_unref when it's no longer needed
+ */                                             
+TnyAccount* modest_tny_account_store_get_transport_account_for_open_connection (ModestTnyAccountStore *self,
+                                                                const gchar *account_name);
+
+/**
+ * tny_account_store_get_session
+ * @self: a TnyAccountStore instance
  * 
- * get the special (Inbox,Outbox,Sent,Draft etc.) folder for this account
+ * get the tny-camel-session for this account store. Note that this function
+ * does NOT have the modest_ prefix, as tinymail requires the symbol to be like this...
  *
- * Returns: the tny folder corresponding to this special folder, or NULL
+ * Returns: a tny-camel-session
  */
-TnyFolder*    modest_tny_account_store_get_special_folder   (ModestTnyAccountStore *self,
-                                                            TnyAccount *account,
-                                                            TnyFolderType special_type);
+TnySessionCamel*    modest_tny_account_store_get_session    (TnyAccountStore *self);
+
+
+/** modest_tny_folder_store_is_virtual_local_folders:
+ * @self A TnyFolderStore.
+ * 
+ * A convenience function to identify whether TnyAccount or other TnyFolderStore 
+ * is the virtual local folders store, containing the folders from local_folders/
+ * and the outboxes from outboxes/<account-name>/.
+ **/
+gboolean modest_tny_folder_store_is_virtual_local_folders (TnyFolderStore *self);
 
 G_END_DECLS