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 GSList* busy_accounts;
58 GHashTable *notification_id_accounts;
59 GHashTable *server_account_key_hash;
60 GHashTable *account_key_hash;
62 /* cache whether we have accounts; if this is TRUE, we have accounts, if
63 * it's FALSE we _don't know_ if we have account and need to check
65 gboolean has_accounts;
66 gboolean has_enabled_accounts;
68 #define MODEST_ACCOUNT_MGR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
69 MODEST_TYPE_ACCOUNT_MGR, \
70 ModestAccountMgrPrivate))
73 * modest_account_mgr_set_bool:
74 * @self: a ModestAccountMgr instance
75 * @name: the name of the account
76 * @key: the key of the value to set
77 * @val: the value to set
78 * @server_account: if TRUE, this is a server account
80 * set a config bool for an account
82 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
84 gboolean modest_account_mgr_set_bool (ModestAccountMgr *self,
86 const gchar *key, gboolean val,
87 gboolean server_account);
90 * modest_account_mgr_get_bool:
91 * @self: a ModestAccountMgr instance
92 * @name: the name of the account
93 * @key: the key of the value to retrieve
94 * @server_account: if TRUE, this is a server account
96 * get a config boolean from an account
98 * Returns: an boolean with the value for the key, or FALSE in case of
99 * error (but of course FALSE does not necessarily imply an error)
101 gboolean modest_account_mgr_get_bool (ModestAccountMgr *self,
104 gboolean server_account);
108 * modest_account_mgr_get_list:
109 * @self: a ModestAccountMgr instance
110 * @name: the name of the account
111 * @key: the key of the value to get
112 * @list_type: the type of the members of the list
113 * @server_account: if TRUE, this is a server account
115 * get a config list of values of type @list_type of an account
117 * Returns: a newly allocated list of elements
119 GSList* modest_account_mgr_get_list (ModestAccountMgr *self,
122 ModestConfValueType list_type,
123 gboolean server_account);
126 * modest_account_mgr_set_list:
127 * @self: a ModestAccountMgr instance
128 * @name: the name of the account
129 * @key: the key of the value to set
130 * @val: the list with the values to set
131 * @list_type: the type of the members of the list
132 * @server_account: if TRUE, this is a server account
134 * * set a config list of values of type @list_type of an account
136 * returns TRUE if this succeeded, FALSE otherwise
138 gboolean modest_account_mgr_set_list (ModestAccountMgr *self,
142 ModestConfValueType list_type,
143 gboolean server_account);
146 * modest_account_mgr_get_int:
147 * @self: a ModestAccountMgr instance
148 * @name: the name of the account
149 * @key: the key of the value to retrieve
150 * @server_account: if TRUE, this is a server account
152 * get a config int from an account
154 * Returns: an integer with the value for the key, or -1 in case of
155 * error (but of course -1 does not necessarily imply an error)
157 gint modest_account_mgr_get_int (ModestAccountMgr *self,
160 gboolean server_account);
165 * modest_account_mgr_set_int:
166 * @self: a ModestAccountMgr instance
167 * @name: the name of the account
168 * @key: the key of the value to set
169 * @val: the value to set
170 * @server_account: if TRUE, this is a server account
172 * set a config int for an account
174 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
176 gboolean modest_account_mgr_set_int (ModestAccountMgr *self,
178 const gchar *key, gint val,
179 gboolean server_account);
182 * modest_account_mgr_get_string:
183 * @self: self a ModestAccountMgr instance
184 * @name: the name of the account
185 * @key: the key of the value to retrieve
186 * @server_account: if TRUE, this is a server account
188 * get a config string from an account
190 * Returns: a newly allocated string with the value for the key,
191 * or NULL in case of error.
193 gchar* modest_account_mgr_get_string (ModestAccountMgr *self,
196 gboolean server_account);
200 * modest_account_mgr_set_string:
201 * @self: a ModestAccountMgr instance
202 * @name: the name of the account
203 * @key: the key of the value to set
204 * @val: the value to set
205 * @server_account: if TRUE, this is a server account
207 * set a config string for an account.
209 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
211 gboolean modest_account_mgr_set_string (ModestAccountMgr *self,
213 const gchar *key, const gchar* val,
214 gboolean server_account);
217 #endif /* __MODEST_ACCOUNT_MGR_PRIV_H__ */