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;
65 #define MODEST_ACCOUNT_MGR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
66 MODEST_TYPE_ACCOUNT_MGR, \
67 ModestAccountMgrPrivate))
70 * modest_account_mgr_set_bool:
71 * @self: a ModestAccountMgr instance
72 * @name: the name of the account
73 * @key: the key of the value to set
74 * @val: the value to set
75 * @server_account: if TRUE, this is a server account
77 * set a config bool for an account
79 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
81 gboolean modest_account_mgr_set_bool (ModestAccountMgr *self,
83 const gchar *key, gboolean val,
84 gboolean server_account);
87 * modest_account_mgr_get_bool:
88 * @self: a ModestAccountMgr instance
89 * @name: the name of the account
90 * @key: the key of the value to retrieve
91 * @server_account: if TRUE, this is a server account
93 * get a config boolean from an account
95 * Returns: an boolean with the value for the key, or FALSE in case of
96 * error (but of course FALSE does not necessarily imply an error)
98 gboolean modest_account_mgr_get_bool (ModestAccountMgr *self,
101 gboolean server_account);
105 * modest_account_mgr_get_list:
106 * @self: a ModestAccountMgr instance
107 * @name: the name of the account
108 * @key: the key of the value to get
109 * @list_type: the type of the members of the list
110 * @server_account: if TRUE, this is a server account
112 * get a config list of values of type @list_type of an account
114 * Returns: a newly allocated list of elements
116 GSList* modest_account_mgr_get_list (ModestAccountMgr *self,
119 ModestConfValueType list_type,
120 gboolean server_account);
123 * modest_account_mgr_set_list:
124 * @self: a ModestAccountMgr instance
125 * @name: the name of the account
126 * @key: the key of the value to set
127 * @val: the list with the values to set
128 * @list_type: the type of the members of the list
129 * @server_account: if TRUE, this is a server account
131 * * set a config list of values of type @list_type of an account
133 * returns TRUE if this succeeded, FALSE otherwise
135 gboolean modest_account_mgr_set_list (ModestAccountMgr *self,
139 ModestConfValueType list_type,
140 gboolean server_account);
143 * modest_account_mgr_get_int:
144 * @self: a ModestAccountMgr instance
145 * @name: the name of the account
146 * @key: the key of the value to retrieve
147 * @server_account: if TRUE, this is a server account
149 * get a config int from an account
151 * Returns: an integer with the value for the key, or -1 in case of
152 * error (but of course -1 does not necessarily imply an error)
154 gint modest_account_mgr_get_int (ModestAccountMgr *self,
157 gboolean server_account);
162 * modest_account_mgr_set_int:
163 * @self: a ModestAccountMgr instance
164 * @name: the name of the account
165 * @key: the key of the value to set
166 * @val: the value to set
167 * @server_account: if TRUE, this is a server account
169 * set a config int for an account
171 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
173 gboolean modest_account_mgr_set_int (ModestAccountMgr *self,
175 const gchar *key, gint val,
176 gboolean server_account);
179 * modest_account_mgr_get_string:
180 * @self: self a ModestAccountMgr instance
181 * @name: the name of the account
182 * @key: the key of the value to retrieve
183 * @server_account: if TRUE, this is a server account
185 * get a config string from an account
187 * Returns: a newly allocated string with the value for the key,
188 * or NULL in case of error.
190 gchar* modest_account_mgr_get_string (ModestAccountMgr *self,
193 gboolean server_account);
197 * modest_account_mgr_set_string:
198 * @self: a ModestAccountMgr instance
199 * @name: the name of the account
200 * @key: the key of the value to set
201 * @val: the value to set
202 * @server_account: if TRUE, this is a server account
204 * set a config string for an account.
206 * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
208 gboolean modest_account_mgr_set_string (ModestAccountMgr *self,
210 const gchar *key, const gchar* val,
211 gboolean server_account);
214 #endif /* __MODEST_ACCOUNT_MGR_PRIV_H__ */