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.
30 #ifndef __MODEST_ACCOUNT_MGR_PRIV_H__
31 #define __MODEST_ACCOUNT_MGR_PRIV_H__
34 #include <modest-conf.h>
37 * private functions, only for use in modest-account-mgr and
38 * modest-account-mgr-helpers
43 gchar* _modest_account_mgr_account_from_key (const gchar *key, gboolean *is_account_key,
44 gboolean *is_server_account);
45 gchar * _modest_account_mgr_get_account_keyname (const gchar *account_name, const gchar * name,
46 gboolean server_account);
48 /* below is especially very _private_ stuff */
49 typedef struct _ModestAccountMgrPrivate ModestAccountMgrPrivate;
50 struct _ModestAccountMgrPrivate {
51 ModestConf *modest_conf;
53 /* We store these as they change, and send notifications every X seconds: */
54 gulong key_changed_handler_uid;
55 GSList* busy_accounts;
57 GSList* change_queue; /* list with all accounts that are changed */
60 GHashTable *notification_id_accounts;
61 GHashTable *server_account_key_hash;
62 GHashTable *account_key_hash;
64 /* cache whether we have accounts; if this is TRUE, we have accounts, if
65 * it's FALSE we _don't know_ if we have account and need to check
67 gboolean has_accounts;
68 gboolean has_enabled_accounts;
70 #define MODEST_ACCOUNT_MGR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
71 MODEST_TYPE_ACCOUNT_MGR, \
72 ModestAccountMgrPrivate))
75 * modest_account_mgr_set_bool:
76 * @self: a ModestAccountMgr instance
77 * @name: the name of the account
78 * @key: the key of the value to set
79 * @val: the value to set
80 * @server_account: if TRUE, this is a server account
82 * set a config bool for an account
84 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
86 gboolean modest_account_mgr_set_bool (ModestAccountMgr *self,
88 const gchar *key, gboolean val,
89 gboolean server_account);
92 * modest_account_mgr_get_bool:
93 * @self: a ModestAccountMgr instance
94 * @name: the name of the account
95 * @key: the key of the value to retrieve
96 * @server_account: if TRUE, this is a server account
98 * get a config boolean from an account
100 * Returns: an boolean with the value for the key, or FALSE in case of
101 * error (but of course FALSE does not necessarily imply an error)
103 gboolean modest_account_mgr_get_bool (ModestAccountMgr *self,
106 gboolean server_account);
110 * modest_account_mgr_get_list:
111 * @self: a ModestAccountMgr instance
112 * @name: the name of the account
113 * @key: the key of the value to get
114 * @list_type: the type of the members of the list
115 * @server_account: if TRUE, this is a server account
117 * get a config list of values of type @list_type of an account
119 * Returns: a newly allocated list of elements
121 GSList* modest_account_mgr_get_list (ModestAccountMgr *self,
124 ModestConfValueType list_type,
125 gboolean server_account);
128 * modest_account_mgr_set_list:
129 * @self: a ModestAccountMgr instance
130 * @name: the name of the account
131 * @key: the key of the value to set
132 * @val: the list with the values to set
133 * @list_type: the type of the members of the list
134 * @server_account: if TRUE, this is a server account
136 * * set a config list of values of type @list_type of an account
138 * returns TRUE if this succeeded, FALSE otherwise
140 gboolean modest_account_mgr_set_list (ModestAccountMgr *self,
144 ModestConfValueType list_type,
145 gboolean server_account);
148 * modest_account_mgr_get_int:
149 * @self: a ModestAccountMgr instance
150 * @name: the name of the account
151 * @key: the key of the value to retrieve
152 * @server_account: if TRUE, this is a server account
154 * get a config int from an account
156 * Returns: an integer with the value for the key, or -1 in case of
157 * error (but of course -1 does not necessarily imply an error)
159 gint modest_account_mgr_get_int (ModestAccountMgr *self,
162 gboolean server_account);
167 * modest_account_mgr_set_int:
168 * @self: a ModestAccountMgr instance
169 * @name: the name of the account
170 * @key: the key of the value to set
171 * @val: the value to set
172 * @server_account: if TRUE, this is a server account
174 * set a config int for an account
176 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
178 gboolean modest_account_mgr_set_int (ModestAccountMgr *self,
180 const gchar *key, gint val,
181 gboolean server_account);
184 * modest_account_mgr_get_string:
185 * @self: self a ModestAccountMgr instance
186 * @name: the name of the account
187 * @key: the key of the value to retrieve
188 * @server_account: if TRUE, this is a server account
190 * get a config string from an account
192 * Returns: a newly allocated string with the value for the key,
193 * or NULL in case of error.
195 gchar* modest_account_mgr_get_string (ModestAccountMgr *self,
198 gboolean server_account);
202 * modest_account_mgr_set_string:
203 * @self: a ModestAccountMgr instance
204 * @name: the name of the account
205 * @key: the key of the value to set
206 * @val: the value to set
207 * @server_account: if TRUE, this is a server account
209 * set a config string for an account.
211 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
213 gboolean modest_account_mgr_set_string (ModestAccountMgr *self,
215 const gchar *key, const gchar* val,
216 gboolean server_account);
219 #endif /* __MODEST_ACCOUNT_MGR_PRIV_H__ */