Show a generic error (instead of the one from Tinymail) when
[modest] / src / modest-account-mgr-priv.h
1 /* Copyright (c) 2006, Nokia Corporation
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
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.
16  *
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.
28  */
29
30 #ifndef __MODEST_ACCOUNT_MGR_PRIV_H__
31 #define __MODEST_ACCOUNT_MGR_PRIV_H__
32
33 #include <glib.h>
34 #include <modest-conf.h>
35
36 /*
37  * private functions, only for use in modest-account-mgr and
38  * modest-account-mgr-helpers
39  */
40
41 G_BEGIN_DECLS
42
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);
47
48 /* below is especially very _private_ stuff */
49 typedef struct _ModestAccountMgrPrivate ModestAccountMgrPrivate;
50 struct _ModestAccountMgrPrivate {
51         ModestConf        *modest_conf;
52         
53         /* We store these as they change, and send notifications every X seconds: */
54         gulong key_changed_handler_uid;
55         GSList* busy_accounts;
56
57         GSList* change_queue; /* list with all accounts that are changed */
58         guint timeout;
59         
60         GHashTable *notification_id_accounts;
61         GHashTable *server_account_key_hash;
62         GHashTable *account_key_hash;
63         
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
66          */
67         gboolean has_accounts;
68         gboolean has_enabled_accounts;
69 };
70 #define MODEST_ACCOUNT_MGR_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
71                                                     MODEST_TYPE_ACCOUNT_MGR, \
72                                                 ModestAccountMgrPrivate))
73         
74 /**
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
81  * 
82  * set a config bool for an account
83  *
84  * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
85  */
86 gboolean        modest_account_mgr_set_bool       (ModestAccountMgr *self,
87                                                    const gchar *name,
88                                                    const gchar *key, gboolean val,
89                                                    gboolean server_account);
90
91 /**
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
97  * 
98  * get a config boolean from an account
99  *
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)
102  */
103 gboolean        modest_account_mgr_get_bool       (ModestAccountMgr *self,
104                                                    const gchar *name,
105                                                    const gchar *key,
106                                                    gboolean server_account);
107
108
109 /**
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
116  * 
117  * get a config list of values of type @list_type of an account
118  *
119  * Returns: a newly allocated list of elements
120  */
121 GSList*         modest_account_mgr_get_list       (ModestAccountMgr *self,
122                                                    const gchar *name,
123                                                    const gchar *key,
124                                                    ModestConfValueType list_type,
125                                                    gboolean server_account);
126
127 /**
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
135  *
136  * * set a config list of values of type @list_type of an account
137  * 
138  * returns TRUE if this succeeded, FALSE otherwise 
139  */
140 gboolean                modest_account_mgr_set_list       (ModestAccountMgr *self,
141                                                            const gchar *name,
142                                                            const gchar *key,
143                                                            GSList *val,
144                                                            ModestConfValueType list_type,
145                                                            gboolean server_account);
146
147 /**
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
153  * 
154  * get a config int from an account
155  *
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)
158  */
159 gint            modest_account_mgr_get_int        (ModestAccountMgr *self,
160                                                    const gchar *name,
161                                                    const gchar *key,
162                                                    gboolean server_account);
163
164
165
166 /**
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
173  * 
174  * set a config int for an account
175  *
176  * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
177  */
178 gboolean        modest_account_mgr_set_int        (ModestAccountMgr *self,
179                                                    const gchar *name,
180                                                    const gchar *key, gint val,
181                                                    gboolean server_account);
182
183 /**
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
189  * 
190  * get a config string from an account
191  *
192  * Returns: a newly allocated string with the value for the key,
193  * or NULL in case of error. 
194  */
195 gchar*          modest_account_mgr_get_string     (ModestAccountMgr *self,
196                                                    const gchar *name,
197                                                    const gchar *key,
198                                                    gboolean server_account);
199
200
201 /**
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
208  * 
209  * set a config string for an account.
210  *
211  * Returns: TRUE if setting the value succeeded, or FALSE in case of error.
212  */
213 gboolean        modest_account_mgr_set_string     (ModestAccountMgr *self,
214                                                    const gchar *name,
215                                                    const gchar *key, const gchar* val,
216                                                    gboolean server_account);
217
218 G_END_DECLS
219 #endif /* __MODEST_ACCOUNT_MGR_PRIV_H__ */