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_get_display_name:
168 * @self: a ModestAccountMgr instance
169 * @name: the account name to check
171 * Return the human-readable account title for this account, or NULL.
173 gchar* modest_account_mgr_get_display_name (ModestAccountMgr *self,
178 * modest_account_mgr_set_signature
179 * @self: a ModestAccountMgr instance
180 * @name: the account name to check
181 * @signature: the signature text
182 * @use_signature: Whether the signature should be used.
184 * Sets the signature text for the account.
186 * Returns: TRUE if it worked, FALSE otherwise
188 gboolean modest_account_mgr_set_signature (ModestAccountMgr *self, const gchar* name,
189 const gchar* signature, gboolean use_signature);
192 * modest_account_mgr_get_signature:
193 * @self: a ModestAccountMgr instance
194 * @name: the account name
195 * @use_signature: Pointer to a gboolean taht will be set to TRUE if the signature should be used.
197 * Gets the signature text for this account.
199 * Returns: The signature text, which should be freed with g_free().
201 gchar* modest_account_mgr_get_signature (ModestAccountMgr *self, const gchar* name,
202 gboolean* use_signature);
205 * modest_account_mgr_set_connection_specific_smtp
206 * @self: a ModestAccountMgr instance
207 * @name: the account name
208 * @connection_name: A libconic IAP connection name
209 * @server_account_name: a server account name to use for this connection.
211 * Specify a server account to use with the specific connection for this account.
213 * Returns: TRUE if it worked, FALSE otherwise
215 gboolean modest_account_mgr_set_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
216 const gchar* connection_name, const gchar* server_account_name);
219 * modest_account_mgr_remove_connection_specific_smtp
220 * @self: a ModestAccountMgr instance
221 * @name: the account name
222 * @connection_name: A libconic IAP connection name
224 * Disassacoiate a server account to use with the specific connection for this account.
226 * Returns: TRUE if it worked, FALSE otherwise
228 gboolean modest_account_mgr_remove_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
229 const gchar* connection_name);
232 * modest_account_mgr_get_connection_specific_smtp
233 * @self: a ModestAccountMgr instance
234 * @name: the account name
235 * @connection_name: A libconic IAP connection name
237 * Retrieve a server account to use with this specific connection for this account.
239 * Returns: a server account name to use for this connection, or NULL if none is specified.
241 gchar* modest_account_mgr_get_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
242 const gchar* connection_name);
246 * modest_server_account_get_username:
247 * @self: a ModestAccountMgr instance
248 * @account_name: The name of a server account.
250 * Gets the username this server account.
252 * Returns: The username.
255 modest_server_account_get_username (ModestAccountMgr *self, const gchar* account_name);
258 * modest_server_account_set_username:
259 * @self: a ModestAccountMgr instance
260 * @account_name: The name of a server account.
261 * @username: The new username.
263 * Sets the username this server account.
266 modest_server_account_set_username (ModestAccountMgr *self, const gchar* account_name,
267 const gchar* username);
270 * modest_server_account_get_username_has_succeeded:
271 * @self: a ModestAccountMgr instance
272 * @account_name: The name of a server account.
274 * Whether a connection has ever been successfully made to this account with
275 * the current username. This can be used to avoid asking again for the username
276 * when asking a second time for a non-stored password.
278 * Returns: TRUE if the username is known to be correct.
281 modest_server_account_get_username_has_succeeded (ModestAccountMgr *self, const gchar* account_name);
284 * modest_server_account_set_username_has_succeeded:
285 * @self: a ModestAccountMgr instance
286 * @account_name: The name of a server account.
287 * @succeeded: Whether the username has succeeded
289 * Sets whether the username is known to be correct.
292 modest_server_account_set_username_has_succeeded (ModestAccountMgr *self, const gchar* account_name,
296 * modest_server_account_set_password:
297 * @self: a ModestAccountMgr instance
298 * @account_name: The name of a server account.
299 * @password: The new password.
301 * Sets the password this server account.
304 modest_server_account_set_password (ModestAccountMgr *self, const gchar* account_name,
305 const gchar* password);
309 * modest_server_account_modest_server_account_get_hostnameget_username:
310 * @self: a ModestAccountMgr instance
311 * @account_name: The name of a server account.
313 * Gets the hostname this server account.
315 * Returns: The hostname.
318 modest_server_account_get_hostname (ModestAccountMgr *self, const gchar* account_name);
322 * modest_server_account_get_secure_auth:
323 * @self: a ModestAccountMgr instance
324 * @account_name: The name of a server account.
326 * Gets the secure authentication method for this server account.
328 * Returns: The secure authentication enum value.
331 modest_server_account_get_secure_auth (ModestAccountMgr *self, const gchar* account_name);
334 * modest_server_account_data_get_secure_auth:
335 * @self: a ModestAccountMgr instance
336 * @account_name: The name of a server account.
337 * @secure_auth: The secure authentication enum value.
339 * Gets the secure authentication method for this server account.
342 modest_server_account_set_secure_auth (ModestAccountMgr *self, const gchar* account_name,
343 ModestProtocol secure_auth);
346 * modest_server_account_data_get_security:
347 * @self: a ModestAccountMgr instance
348 * @account_name: The name of a server account.
350 * Gets the security method for this server account.
352 * Returns: The security enum value.
355 modest_server_account_get_security (ModestAccountMgr *self, const gchar* account_name);
358 * modest_server_account_set_security:
359 * @self: a ModestAccountMgr instance
360 * @secure_auth: The security enum value.
362 * Gets the security method for this server account.
365 modest_server_account_set_security (ModestAccountMgr *self, const gchar* account_name,
366 ModestProtocol security);
368 ModestServerAccountData*
369 modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar* name);
372 modest_account_mgr_free_server_account_data (ModestAccountMgr *self,
373 ModestServerAccountData* data);
377 * modest_account_mgr_get_account_option:
378 * @self: a ModestAccountMgr instance
379 * @account_name: the account name to check
380 * @account_name: the option name to check
382 * Returns: The account option value. This must be freed with g_free().
384 gchar* modest_account_mgr_get_server_account_option (ModestAccountMgr *self,
385 const gchar* account_name, const gchar* option_name);
388 * modest_server_account_data_get_option_value:
389 * @options_list: a ModestServerAccountData::options list.
390 * @option_name: the option name to check
392 * Returns: The account option value. This must be freed with g_free().
394 gchar* modest_server_account_data_get_option_string (GSList* options_list, const gchar* option_name);
397 * modest_server_account_data_get_option_bool:
398 * @options_list: a ModestServerAccountData::options list.
399 * @option_name: the option name to check
401 * Returns: Whether the account option is present.
403 gboolean modest_server_account_data_get_option_bool (GSList* options_list, const gchar* option_name);
407 * modest_account_mgr_get_from_string
408 * @self: a #ModestAccountMgr instance
409 * @name: the account name
411 * get the From: string for some account; ie. "Foo Bar" <foo.bar@cuux.yy>"
413 * Returns: the newly allocated from-string, or NULL in case of error
415 gchar * modest_account_mgr_get_from_string (ModestAccountMgr *self, const gchar* name);
419 * modest_account_mgr_get_unused_account_name
420 * @self: a #ModestAccountMgr instance
421 * @name: The initial account name
423 * get an unused account name, based on a starting string.
425 * Returns: the newly allocated name.
428 modest_account_mgr_get_unused_account_name (ModestAccountMgr *self, const gchar* starting_name,
429 gboolean server_account);
432 * modest_account_mgr_get_unused_account_display name
433 * @self: a #ModestAccountMgr instance
434 * @name: The initial account display name
436 * get an unused account display name, based on a starting string.
438 * Returns: the newly allocated name.
441 modest_account_mgr_get_unused_account_display_name (ModestAccountMgr *self, const gchar* starting_name);
445 #endif /* __MODEST_ACCOUNT_MGR_H__ */