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>
47 gchar *uri; /*< Only for mbox and maildir accounts. */
48 ModestTransportStoreProtocol proto; /*< The store or transport. Not ORed. */
51 gint port; /* Or 0, if the default should be used. */
52 ModestAuthProtocol secure_auth;
53 ModestConnectionProtocol security;
54 } ModestServerAccountData;
63 ModestServerAccountData *transport_account;
64 ModestServerAccountData *store_account;
70 * modest_account_mgr_get_account_data:
71 * @self: a ModestAccountMgr instance
72 * @name: the name of the account
74 * get information about an account
76 * Returns: a ModestAccountData structure with information about the account.
77 * the data should not be changed, and be freed with modest_account_mgr_free_account_data
78 * The function does a sanity check, an if it's not returning NULL,
79 * it is a valid account
81 ModestAccountData *modest_account_mgr_get_account_data (ModestAccountMgr *self,
85 * modest_account_mgr_get_default_account:
86 * @self: a ModestAccountMgr instance
88 * get the default account name, or NULL if none is found
90 * Returns: the default account name (as newly allocated string, which
91 * must be g_free'd), or NULL
93 gchar* modest_account_mgr_get_default_account (ModestAccountMgr *self);
96 * modest_account_mgr_set_default_account:
97 * @self: a ModestAccountMgr instance
98 * @account: the name of an existing account
100 * set the default account name (which must be valid account)
102 * Returns: TRUE if succeeded, FALSE otherwise
104 gboolean modest_account_mgr_set_default_account (ModestAccountMgr *self,
105 const gchar* account);
108 * modest_account_mgr_unset_default_account:
109 * @self: a ModestAccountMgr instance
110 * @account: the name of an account
112 * Unset the default account name, so that no account is the default.
114 * Returns: TRUE if succeeded, FALSE otherwise
116 gboolean modest_account_mgr_unset_default_account (ModestAccountMgr *self);
119 * modest_account_mgr_set_first_account_as_default:
120 * @self: a ModestAccountMgr instance
122 * Guarantees that at least one account, if there are any accounts, is the default,
123 * so that modest_account_mgr_get_default_account() will return non-NULL if there
126 * Returns: TRUE if succeeded, FALSE otherwise
129 modest_account_mgr_set_first_account_as_default (ModestAccountMgr *self);
131 /** Get the first one, alphabetically, by title. */
133 modest_account_mgr_get_first_account_name (ModestAccountMgr *self);
136 * modest_account_mgr_free_account_data:
137 * @self: a ModestAccountMgr instance
138 * @data: a ModestAccountData instance
140 * free the account data structure
142 void modest_account_mgr_free_account_data (ModestAccountMgr *self,
143 ModestAccountData *data);
146 * modest_account_mgr_set_enabled
147 * @self: a ModestAccountMgr instance
148 * @name: the account name
149 * @enabled: if TRUE, the account will be enabled, if FALSE, it will be disabled
151 * enable/disabled an account
153 * Returns: TRUE if it worked, FALSE otherwise
155 gboolean modest_account_mgr_set_enabled (ModestAccountMgr *self, const gchar* name,
159 * modest_account_mgr_get_enabled:
160 * @self: a ModestAccountMgr instance
161 * @name: the account name to check
163 * check whether a certain account is enabled
165 * Returns: TRUE if it is enabled, FALSE otherwise
167 gboolean modest_account_mgr_get_enabled (ModestAccountMgr *self, const gchar* name);
170 * modest_account_mgr_get_display_name:
171 * @self: a ModestAccountMgr instance
172 * @name: the account name to check
174 * Return the human-readable account title for this account, or NULL.
176 gchar* modest_account_mgr_get_display_name (ModestAccountMgr *self,
181 * modest_account_mgr_set_signature
182 * @self: a ModestAccountMgr instance
183 * @name: the account name to check
184 * @signature: the signature text
185 * @use_signature: Whether the signature should be used.
187 * Sets the signature text for the account.
189 * Returns: TRUE if it worked, FALSE otherwise
191 gboolean modest_account_mgr_set_signature (ModestAccountMgr *self, const gchar* name,
192 const gchar* signature, gboolean use_signature);
195 * modest_account_mgr_get_signature:
196 * @self: a ModestAccountMgr instance
197 * @name: the account name
198 * @use_signature: Pointer to a gboolean taht will be set to TRUE if the signature should be used.
200 * Gets the signature text for this account.
202 * Returns: The signature text, which should be freed with g_free().
204 gchar* modest_account_mgr_get_signature (ModestAccountMgr *self, const gchar* name,
205 gboolean* use_signature);
208 * modest_account_mgr_get_store_protocol:
209 * @self: a ModestAccountMgr instance
210 * @name: the account name
212 * Gets the protocol type (For instance, POP or IMAP) used for the store server account.
214 * Returns: The protocol type.
216 ModestTransportStoreProtocol modest_account_mgr_get_store_protocol (ModestAccountMgr *self, const gchar* name);
219 * modest_account_mgr_set_connection_specific_smtp
220 * @self: a ModestAccountMgr instance
221 * @name: the account name
222 * @connection_name: A libconic IAP connection name
223 * @server_account_name: a server account name to use for this connection.
225 * Specify a server account to use with the specific connection for this account.
227 * Returns: TRUE if it worked, FALSE otherwise
229 gboolean modest_account_mgr_set_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
230 const gchar* connection_name, const gchar* server_account_name);
233 * modest_account_mgr_remove_connection_specific_smtp
234 * @self: a ModestAccountMgr instance
235 * @name: the account name
236 * @connection_name: A libconic IAP connection name
238 * Disassacoiate a server account to use with the specific connection for this account.
240 * Returns: TRUE if it worked, FALSE otherwise
242 gboolean modest_account_mgr_remove_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
243 const gchar* connection_name);
246 * modest_account_mgr_get_use_connection_specific_smtp
247 * @self: a ModestAccountMgr instance
248 * @account_name: the account name
249 * @result: Whether this account should use connection-specific smtp server accounts.
251 gboolean modest_account_mgr_get_use_connection_specific_smtp (ModestAccountMgr *self, const gchar* account_name);
254 * modest_account_mgr_set_use_connection_specific_smtp
255 * @self: a ModestAccountMgr instance
256 * @account_name: the account name
257 * @new_value: New value that indicates if if this account should use connection-specific smtp server accounts
258 * @result: TRUE if it succeeded, FALSE otherwise
260 gboolean modest_account_mgr_set_use_connection_specific_smtp (ModestAccountMgr *self, const gchar* account_name,
264 * modest_account_mgr_get_connection_specific_smtp
265 * @self: a ModestAccountMgr instance
266 * @name: the account name
267 * @connection_name: A libconic IAP connection name
269 * Retrieve a server account to use with this specific connection for this account.
271 * Returns: a server account name to use for this connection, or NULL if none is specified.
273 gchar* modest_account_mgr_get_connection_specific_smtp (ModestAccountMgr *self, const gchar* name,
274 const gchar* connection_name);
278 * modest_server_account_get_username:
279 * @self: a ModestAccountMgr instance
280 * @account_name: The name of a server account.
282 * Gets the username this server account.
284 * Returns: The username.
287 modest_server_account_get_username (ModestAccountMgr *self, const gchar* account_name);
290 * modest_server_account_set_username:
291 * @self: a ModestAccountMgr instance
292 * @account_name: The name of a server account.
293 * @username: The new username.
295 * Sets the username this server account.
298 modest_server_account_set_username (ModestAccountMgr *self, const gchar* account_name,
299 const gchar* username);
302 * modest_server_account_get_username_has_succeeded:
303 * @self: a ModestAccountMgr instance
304 * @account_name: The name of a server account.
306 * Whether a connection has ever been successfully made to this account with
307 * the current username. This can be used to avoid asking again for the username
308 * when asking a second time for a non-stored password.
310 * Returns: TRUE if the username is known to be correct.
313 modest_server_account_get_username_has_succeeded (ModestAccountMgr *self, const gchar* account_name);
316 * modest_server_account_set_username_has_succeeded:
317 * @self: a ModestAccountMgr instance
318 * @account_name: The name of a server account.
319 * @succeeded: Whether the username has succeeded
321 * Sets whether the username is known to be correct.
324 modest_server_account_set_username_has_succeeded (ModestAccountMgr *self, const gchar* account_name,
328 * modest_server_account_set_password:
329 * @self: a ModestAccountMgr instance
330 * @account_name: The name of a server account.
331 * @password: The new password.
333 * Sets the password for this server account.
336 modest_server_account_set_password (ModestAccountMgr *self, const gchar* account_name,
337 const gchar* password);
340 * modest_server_account_get_password:
341 * @self: a ModestAccountMgr instance
342 * @account_name: The name of a server account.
344 * Gets the password for this server account from the account settings.
347 modest_server_account_get_password (ModestAccountMgr *self, const gchar* account_name);
350 * modest_server_account_get_has_password:
351 * @self: a ModestAccountMgr instance
352 * @account_name: The name of a server account.
354 * Gets whether a password has been set for this server account in the account settings.
357 modest_server_account_get_has_password (ModestAccountMgr *self, const gchar* account_name);
360 * modest_server_account_modest_server_account_get_hostnameget_username:
361 * @self: a ModestAccountMgr instance
362 * @account_name: The name of a server account.
364 * Gets the hostname this server account.
366 * Returns: The hostname.
369 modest_server_account_get_hostname (ModestAccountMgr *self, const gchar* account_name);
373 * modest_server_account_get_secure_auth:
374 * @self: a ModestAccountMgr instance
375 * @account_name: The name of a server account.
377 * Gets the secure authentication method for this server account.
379 * Returns: The secure authentication enum value.
382 modest_server_account_get_secure_auth (ModestAccountMgr *self, const gchar* account_name);
385 * modest_server_account_data_get_secure_auth:
386 * @self: a ModestAccountMgr instance
387 * @account_name: The name of a server account.
388 * @secure_auth: The secure authentication enum value.
390 * Gets the secure authentication method for this server account.
393 modest_server_account_set_secure_auth (ModestAccountMgr *self, const gchar* account_name,
394 ModestAuthProtocol secure_auth);
397 * modest_server_account_data_get_security:
398 * @self: a ModestAccountMgr instance
399 * @account_name: The name of a server account.
401 * Gets the security method for this server account.
403 * Returns: The security enum value.
405 ModestConnectionProtocol
406 modest_server_account_get_security (ModestAccountMgr *self, const gchar* account_name);
409 * modest_server_account_set_security:
410 * @self: a ModestAccountMgr instance
411 * @secure_auth: The security enum value.
413 * Gets the security method for this server account.
416 modest_server_account_set_security (ModestAccountMgr *self, const gchar* account_name,
417 ModestConnectionProtocol security);
419 ModestServerAccountData*
420 modest_account_mgr_get_server_account_data (ModestAccountMgr *self, const gchar* name);
423 modest_account_mgr_free_server_account_data (ModestAccountMgr *self,
424 ModestServerAccountData* data);
427 * modest_account_mgr_get_from_string
428 * @self: a #ModestAccountMgr instance
429 * @name: the account name
431 * get the From: string for some account; ie. "Foo Bar" <foo.bar@cuux.yy>"
433 * Returns: the newly allocated from-string, or NULL in case of error
435 gchar * modest_account_mgr_get_from_string (ModestAccountMgr *self, const gchar* name);
439 * modest_account_mgr_get_unused_account_name
440 * @self: a #ModestAccountMgr instance
441 * @name: The initial account name
443 * get an unused account name, based on a starting string.
445 * Returns: the newly allocated name.
448 modest_account_mgr_get_unused_account_name (ModestAccountMgr *self, const gchar* starting_name,
449 gboolean server_account);
452 * modest_account_mgr_get_unused_account_display name
453 * @self: a #ModestAccountMgr instance
454 * @name: The initial account display name
456 * get an unused account display name, based on a starting string.
458 * Returns: the newly allocated name.
461 modest_account_mgr_get_unused_account_display_name (ModestAccountMgr *self, const gchar* starting_name);
465 #endif /* __MODEST_ACCOUNT_MGR_H__ */