1 /* Copyright (c) 2006, Nokia Corporation
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * * Neither the name of the Nokia Corporation nor the names of its
14 * contributors may be used to endorse or promote products derived from
15 * this software without specific prior written permission.
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 #ifndef __MODEST_ACCOUNT_MGR_HELPERS_H__
32 #define __MODEST_ACCOUNT_MGR_HELPERS_H__
34 #include <modest-account-mgr.h>
35 #include <modest-tny-account-store.h>
37 #include <tny-account.h>
38 #include <tny-store-account.h>
39 #include <tny-transport-account.h>
48 ModestProtocol proto; /*< The store or transport. Not ORed. */
51 gint port; /* Or 0, if the default should be used. */
52 ModestProtocol secure_auth;
53 ModestProtocol security;
55 } ModestServerAccountData;
64 ModestServerAccountData *transport_account;
65 ModestServerAccountData *store_account;
71 * modest_account_mgr_get_account_data:
72 * @self: a ModestAccountMgr instance
73 * @name: the name of the account
75 * get information about an account
77 * Returns: a ModestAccountData structure with information about the account.
78 * the data should not be changed, and be freed with modest_account_mgr_free_account_data
79 * The function does a sanity check, an if it's not returning NULL,
80 * it is a valid account
82 ModestAccountData *modest_account_mgr_get_account_data (ModestAccountMgr *self,
86 * modest_account_mgr_get_default_account:
87 * @self: a ModestAccountMgr instance
89 * get the default account name, or NULL if none is found
91 * Returns: the default account name (as newly allocated string, which
92 * must be g_free'd), or NULL
94 gchar* modest_account_mgr_get_default_account (ModestAccountMgr *self);
97 * modest_account_mgr_set_default_account:
98 * @self: a ModestAccountMgr instance
99 * @account: the name of an existing account
101 * set the default account name (which must be valid account)
103 * Returns: TRUE if succeeded, FALSE otherwise
105 gboolean modest_account_mgr_set_default_account (ModestAccountMgr *self,
106 const gchar* account);
109 * modest_account_mgr_unset_default_account:
110 * @self: a ModestAccountMgr instance
111 * @account: the name of an account
113 * Unset the default account name, so that no account is the default.
115 * Returns: TRUE if succeeded, FALSE otherwise
117 gboolean modest_account_mgr_unset_default_account (ModestAccountMgr *self);
120 * modest_account_mgr_set_first_account_as_default:
121 * @self: a ModestAccountMgr instance
123 * Guarantees that at least one account, if there are any accounts, is the default,
124 * so that modest_account_mgr_get_default_account() will return non-NULL if there
127 * Returns: TRUE if succeeded, FALSE otherwise
130 modest_account_mgr_set_first_account_as_default (ModestAccountMgr *self);
133 * modest_account_mgr_free_account_data:
134 * @self: a ModestAccountMgr instance
135 * @data: a ModestAccountData instance
137 * free the account data structure
139 void modest_account_mgr_free_account_data (ModestAccountMgr *self,
140 ModestAccountData *data);
143 * modest_account_mgr_set_enabled
144 * @self: a ModestAccountMgr instance
145 * @name: the account name
146 * @enabled: if TRUE, the account will be enabled, if FALSE, it will be disabled
148 * enable/disabled an account
150 * Returns: TRUE if it worked, FALSE otherwise
152 gboolean modest_account_mgr_set_enabled (ModestAccountMgr *self, const gchar* name,
156 * modest_account_mgr_get_enabled:
157 * @self: a ModestAccountMgr instance
158 * @name: the account name to check
160 * check whether a certain account is enabled
162 * Returns: TRUE if it is enabled, FALSE otherwise
164 gboolean modest_account_mgr_get_enabled (ModestAccountMgr *self, const gchar* name);
167 * modest_account_mgr_set_signature
168 * @self: a ModestAccountMgr instance
169 * @name: the account name to check
170 * @signature: the signature text
171 * @use_signature: Whether the signature should be used.
173 * Sets the signature text for the account.
175 * Returns: TRUE if it worked, FALSE otherwise
177 gboolean modest_account_mgr_set_signature (ModestAccountMgr *self, const gchar* name,
178 const gchar* signature, gboolean use_signature);
181 * modest_account_mgr_get_signature:
182 * @self: a ModestAccountMgr instance
183 * @name: the account name
184 * @use_signature: Pointer to a gboolean taht will be set to TRUE if the signature should be used.
186 * Gets the signature text for this account.
188 * Returns: The signature text, which should be freed with g_free().
190 gchar* modest_account_mgr_get_signature (ModestAccountMgr *self, const gchar* name,
191 gboolean* use_signature);
194 * modest_account_mgr_set_connection_specific_smtp
195 * @self: a ModestAccountMgr instance
196 * @name: the account name
197 * @connection_name: A libconic IAP connection name
198 * @server_account_name: a server account name to use for this connection.
200 * Specify a server account to use with the specific connection for this account.
202 * Returns: TRUE if it worked, FALSE otherwise
204 gboolean modest_account_mgr_set_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
205 const gchar* connection_name, const gchar* server_account_name);
208 * modest_account_mgr_remove_connection_specific_smtp
209 * @self: a ModestAccountMgr instance
210 * @name: the account name
211 * @connection_name: A libconic IAP connection name
213 * Disassacoiate a server account to use with the specific connection for this account.
215 * Returns: TRUE if it worked, FALSE otherwise
217 gboolean modest_account_mgr_remove_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
218 const gchar* connection_name);
221 * modest_account_mgr_get_connection_specific_smtp
222 * @self: a ModestAccountMgr instance
223 * @name: the account name
224 * @connection_name: A libconic IAP connection name
226 * Retrieve a server account to use with this specific connection for this account.
228 * Returns: a server account name to use for this connection, or NULL if none is specified.
230 gchar* modest_account_mgr_get_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
231 const gchar* connection_name);
234 * modest_server_account_get_secure_auth:
235 * @self: a ModestAccountMgr instance
236 * @account_name: The name of a server account.
238 * Gets the secure authentication method for this server account.
240 * Returns: The secure authentication enum value.
243 modest_server_account_get_secure_auth (ModestAccountMgr *self, const gchar* account_name);
246 * modest_server_account_data_get_secure_auth:
247 * @self: a ModestAccountMgr instance
248 * @account_name: The name of a server account.
249 * @secure_auth: The secure authentication enum value.
251 * Gets the secure authentication method for this server account.
254 modest_server_account_set_secure_auth (ModestAccountMgr *self, const gchar* account_name,
255 ModestProtocol secure_auth);
258 * modest_server_account_data_get_security:
259 * @self: a ModestAccountMgr instance
260 * @account_name: The name of a server account.
262 * Gets the security method for this server account.
264 * Returns: The security enum value.
267 modest_server_account_get_security (ModestAccountMgr *self, const gchar* account_name);
270 * modest_server_account_set_security:
271 * @self: a ModestAccountMgr instance
272 * @secure_auth: The security enum value.
274 * Gets the security method for this server account.
277 modest_server_account_set_security (ModestAccountMgr *self, const gchar* account_name,
278 ModestProtocol security);
280 ModestServerAccountData*
281 modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar* name);
284 modest_account_mgr_free_server_account_data (ModestAccountMgr *self,
285 ModestServerAccountData* data);
289 * modest_account_mgr_get_account_option:
290 * @self: a ModestAccountMgr instance
291 * @account_name: the account name to check
292 * @account_name: the option name to check
294 * Returns: The account option value. This must be freed with g_free().
296 gchar* modest_account_mgr_get_server_account_option (ModestAccountMgr *self,
297 const gchar* account_name, const gchar* option_name);
300 * modest_server_account_data_get_option_value:
301 * @options_list: a ModestServerAccountData::options list.
302 * @option_name: the option name to check
304 * Returns: The account option value. This must be freed with g_free().
306 gchar* modest_server_account_data_get_option_string (GSList* options_list, const gchar* option_name);
309 * modest_server_account_data_get_option_bool:
310 * @options_list: a ModestServerAccountData::options list.
311 * @option_name: the option name to check
313 * Returns: Whether the account option is present.
315 gboolean modest_server_account_data_get_option_bool (GSList* options_list, const gchar* option_name);
319 * modest_account_mgr_get_from_string
320 * @self: a #ModestAccountMgr instance
321 * @name: the account name
323 * get the From: string for some account; ie. "Foo Bar" <foo.bar@cuux.yy>"
325 * Returns: the newly allocated from-string, or NULL in case of error
327 gchar * modest_account_mgr_get_from_string (ModestAccountMgr *self, const gchar* name);
331 * modest_account_mgr_get_unused_account_name
332 * @self: a #ModestAccountMgr instance
333 * @name: The initial account name
335 * get an unused account name, based on a starting string.
337 * Returns: the newly allocated name.
340 modest_account_mgr_get_unused_account_name (ModestAccountMgr *self, const gchar* starting_name,
341 gboolean server_account);
344 * modest_account_mgr_get_unused_account_display name
345 * @self: a #ModestAccountMgr instance
346 * @name: The initial account display name
348 * get an unused account display name, based on a starting string.
350 * Returns: the newly allocated name.
353 modest_account_mgr_get_unused_account_display_name (ModestAccountMgr *self, const gchar* starting_name);
357 #endif /* __MODEST_ACCOUNT_MGR_H__ */