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_CONF_H__
31 #define __MODEST_CONF_H__
33 #include <glib-object.h>
34 #include "modest-conf-keys.h"
38 /* convenience macros */
39 #define MODEST_TYPE_CONF (modest_conf_get_type())
40 #define MODEST_CONF(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_CONF,ModestConf))
41 #define MODEST_CONF_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_CONF,GObject))
42 #define MODEST_IS_CONF(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_CONF))
43 #define MODEST_IS_CONF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_CONF))
44 #define MODEST_CONF_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_CONF,ModestConfClass))
46 typedef struct _ModestConf ModestConf;
47 typedef struct _ModestConfClass ModestConfClass;
48 typedef enum _ModestConfEvent ModestConfEvent;
50 enum _ModestConfEvent {
51 MODEST_CONF_EVENT_KEY_CHANGED,
52 MODEST_CONF_EVENT_KEY_UNSET
59 struct _ModestConfClass {
60 GObjectClass parent_class;
61 void (* key_changed) (ModestConf* self, const gchar *key, ModestConfEvent event);
65 * modest_conf_get_type:
67 * get the GType for ModestConf
71 GType modest_conf_get_type (void) G_GNUC_CONST;
77 * create a new modest ModestConf object.
79 * Returns: a new ModestConf instance, or NULL in case
82 ModestConf* modest_conf_new (void);
86 * modest_conf_get_string:
87 * @self: a ModestConf instance
88 * @key: the key of the value to retrieve
89 * @err: a GError ptr, or NULL to ignore.
91 * get a string from the configuration system
93 * Returns: a newly allocated string with the value for the key,
94 * or NULL in case of error. @err gives details in case of error
96 gchar* modest_conf_get_string (ModestConf* self, const gchar* key, GError **err);
100 * modest_conf_get_int:
101 * @self: a ModestConf instance
102 * @key: the key of the value to retrieve
103 * @err: a GError ptr, or NULL to ignore.
105 * get an integer from the configuration system
107 * Returns: an integer with the value for the key, or -1 in case of error
108 * (of course, -1 can also be returned in non-error cases).
109 * @err gives details in case of error
111 gint modest_conf_get_int (ModestConf* self, const gchar* key, GError **err);
115 * modest_conf_get_bool:
116 * @self: a ModestConf instance
117 * @key: the key of the value to retrieve
118 * @err: a GError ptr, or NULL to ignore.
120 * get a boolean value from the configuration system
122 * Returns: a boolean value with the value for the key, or FALSE in case of error
123 * (of course, FALSE can also be returned in non-error cases).
124 * @err gives details in case of error
126 gboolean modest_conf_get_bool (ModestConf* self, const gchar* key, GError **err);
131 * modest_conf_get_string_or_default:
132 * @self: a ModestConf instance
133 * @key: the key of the value to retrieve
134 * @err: a GError ptr, or NULL to ignore.
136 * get a string from the configuration system; if the value is not set,
137 * or some error occurs, return @defaultval (copied)
139 * Returns: a newly allocated string with the value for the key,
140 * or the @defaultval in case of any error
142 gchar* modest_conf_get_string_or_default (ModestConf* self, const gchar* key,
143 const gchar *defaultval);
147 * modest_conf_get_int_or_default:
148 * @self: a ModestConf instance
149 * @key: the key of the value to retrieve
150 * @err: a GError ptr, or NULL to ignore.
152 * get an integer from the configuration system; if the value is not set,
153 * or some error occurs, return @defaultval.
155 * Returns: an integer with the value for the key, or the @defaultval in case
158 gint modest_conf_get_int_or_default (ModestConf* self, const gchar* key,
163 * modest_conf_set_string:
164 * @self: a ModestConf instance
165 * @key: the key of the value to set
166 * @val: the value to set
167 * @err: a GError ptr, or NULL if not interested.
169 * store a string value in the configuration system
171 * Returns: TRUE if succeeded or FALSE in case of error.
172 * @err gives details in case of error
174 gboolean modest_conf_set_string (ModestConf* self, const gchar* key, const gchar *val,
178 * modest_conf_set_int:
179 * @self: a ModestConf instance
180 * @key: the key of the value to set
181 * @val: the value to set
182 * @err: a GError ptr, or NULL if not interested.
184 * store an integer value in the configuration system
186 * Returns: TRUE if succeeded or FALSE in case of error.
187 * @err gives details in case of error
189 gboolean modest_conf_set_int (ModestConf* self, const gchar* key, int val,
193 * modest_conf_set_bool:
194 * @self: a ModestConf instance
195 * @key: the key of the value to set
196 * @val: the value to set
197 * @err: a GError ptr, or NULL if not interested.
199 * store a boolean value in the configuration system
201 * Returns: TRUE if succeeded or FALSE in case of error.
202 * @err gives details in case of error
204 gboolean modest_conf_set_bool (ModestConf* self, const gchar* key, gboolean val,
209 * modest_conf_list_subkeys:
210 * @self: a ModestConf instance
211 * @key: the key whose subkeys will be listed
212 * @err: a GError ptr, or NULL if not interested.
214 * list all the subkeys for a given key
216 * Returns: a newly allocated list or NULL in case of error
217 * the returned GSList must be freed by the caller
218 * @err gives details in case of error
220 GSList* modest_conf_list_subkeys (ModestConf* self, const gchar* key,
225 * modest_conf_remove_key:
226 * @self: a ModestConf instance
227 * @key: the key to remove
228 * @err: a GError ptr, or NULL if not interested.
230 * attempts to remove @key and all its subkeys
232 * Returns: TRUE if succeeded or FALSE in case of error.
233 * @err gives details in case of error
235 gboolean modest_conf_remove_key (ModestConf* self, const gchar* key, GError **err);
239 * modest_conf_key_exists:
240 * @self: a ModestConf instance
241 * @key: the key to remove
242 * @err: a GError ptr, or NULL if not interested.
244 * checks if the given key exists in the configuration system
246 * Returns: TRUE if it exists, FALSE otherwise.
247 * @err gives details in case of error
249 gboolean modest_conf_key_exists (ModestConf* self, const gchar* key, GError **err);
253 * modest_conf_key_escape:
254 * @self: a ModestConf instance. Not used, but for consistency with other ModestConf funcs
255 * @str: a string to escape
257 * returns an escaped version of @str, ie. something suitable as a key
259 * Returns: a newly allocated string with the escaped version
261 gchar* modest_conf_key_escape (ModestConf *self, const gchar* str);
265 * modest_conf_key_escape:
266 * @self: a ModestConf instance. Not used, but for consistency with other ModestConf funcs
267 * @str: a string to escape
269 * returns an unescaped version of @str
271 * Returns: a newly allocated string with the unescaped version
273 gchar* modest_conf_key_unescape (ModestConf *self, const gchar* str);
279 #endif /* __MODEST_CONF_H__ */