1 /* Copyright (c) 2007, 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 #include <modest-protocol-registry.h>
31 #include <modest-server-account-settings.h>
33 /* 'private'/'protected' functions */
34 static void modest_server_account_settings_class_init (ModestServerAccountSettingsClass *klass);
35 static void modest_server_account_settings_finalize (GObject *obj);
36 static void modest_server_account_settings_instance_init (ModestServerAccountSettings *obj);
38 typedef struct _ModestServerAccountSettingsPrivate ModestServerAccountSettingsPrivate;
39 struct _ModestServerAccountSettingsPrivate {
42 ModestProtocolType protocol;
45 ModestProtocolType security_protocol;
46 ModestProtocolType auth_protocol;
51 #define MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
52 MODEST_TYPE_SERVER_ACCOUNT_SETTINGS, \
53 ModestServerAccountSettingsPrivate))
56 static GObjectClass *parent_class = NULL;
59 modest_server_account_settings_get_type (void)
61 static GType my_type = 0;
64 static const GTypeInfo my_info = {
65 sizeof(ModestServerAccountSettingsClass),
67 NULL, /* base finalize */
68 (GClassInitFunc) modest_server_account_settings_class_init,
69 NULL, /* class finalize */
70 NULL, /* class data */
71 sizeof(ModestServerAccountSettings),
73 (GInstanceInitFunc) modest_server_account_settings_instance_init,
77 my_type = g_type_register_static (G_TYPE_OBJECT,
78 "ModestServerAccountSettings",
85 modest_server_account_settings_class_init (ModestServerAccountSettingsClass *klass)
87 GObjectClass *gobject_class;
88 gobject_class = (GObjectClass *) klass;
90 parent_class = g_type_class_peek_parent (klass);
91 gobject_class->finalize = modest_server_account_settings_finalize;
93 g_type_class_add_private (gobject_class,
94 sizeof(ModestServerAccountSettingsPrivate));
98 modest_server_account_settings_instance_init (ModestServerAccountSettings *obj)
100 ModestServerAccountSettingsPrivate *priv;
102 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (obj);
104 priv->hostname = NULL;
105 priv->protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
107 priv->username = NULL;
108 priv->password = NULL;
109 priv->security_protocol = MODEST_PROTOCOLS_CONNECTION_NONE;
110 priv->auth_protocol = MODEST_PROTOCOLS_AUTH_NONE;
111 priv->account_name = NULL;
116 modest_server_account_settings_finalize (GObject *obj)
118 ModestServerAccountSettings *settings = MODEST_SERVER_ACCOUNT_SETTINGS (obj);
119 ModestServerAccountSettingsPrivate *priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
120 g_free (priv->hostname);
121 priv->hostname = NULL;
122 g_free (priv->username);
123 priv->username = NULL;
124 g_free (priv->password);
125 priv->password = NULL;
126 priv->protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
128 priv->security_protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
129 priv->auth_protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
130 g_free (priv->account_name);
131 priv->account_name = NULL;
135 G_OBJECT_CLASS (parent_class)->finalize (obj);
138 ModestServerAccountSettings*
139 modest_server_account_settings_new (void)
141 return g_object_new (MODEST_TYPE_SERVER_ACCOUNT_SETTINGS, NULL);
145 modest_server_account_settings_get_hostname (ModestServerAccountSettings *settings)
147 ModestServerAccountSettingsPrivate *priv;
149 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
151 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
152 return priv->hostname;
156 modest_server_account_settings_set_hostname (ModestServerAccountSettings *settings,
157 const gchar *hostname)
159 ModestServerAccountSettingsPrivate *priv;
161 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
163 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
164 g_free (priv->hostname);
165 priv->hostname = g_strdup (hostname);
169 modest_server_account_settings_get_uri (ModestServerAccountSettings *settings)
171 ModestServerAccountSettingsPrivate *priv;
173 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
175 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
180 modest_server_account_settings_set_uri (ModestServerAccountSettings *settings,
183 ModestServerAccountSettingsPrivate *priv;
185 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
187 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
189 priv->uri = g_strdup (uri);
194 modest_server_account_settings_get_username (ModestServerAccountSettings *settings)
196 ModestServerAccountSettingsPrivate *priv;
198 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
200 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
201 return priv->username;
205 modest_server_account_settings_set_username (ModestServerAccountSettings *settings,
206 const gchar *username)
208 ModestServerAccountSettingsPrivate *priv;
210 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
212 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
213 g_free (priv->username);
214 priv->username = g_strdup (username);
218 modest_server_account_settings_get_password (ModestServerAccountSettings *settings)
220 ModestServerAccountSettingsPrivate *priv;
222 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
224 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
225 return priv->password;
229 modest_server_account_settings_set_password (ModestServerAccountSettings *settings,
230 const gchar *password)
232 ModestServerAccountSettingsPrivate *priv;
234 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
236 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
237 g_free (priv->password);
238 priv->password = g_strdup (password);
242 modest_server_account_settings_get_account_name (ModestServerAccountSettings *settings)
244 ModestServerAccountSettingsPrivate *priv;
246 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
248 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
249 return priv->account_name;
253 modest_server_account_settings_set_account_name (ModestServerAccountSettings *settings,
254 const gchar *account_name)
256 ModestServerAccountSettingsPrivate *priv;
258 /* be careful. This method should only be used internally in #ModestAccountMgr and
259 * #ModestAccountSettings. */
261 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
263 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
264 g_free (priv->account_name);
265 priv->account_name = g_strdup (account_name);
269 modest_server_account_settings_get_protocol (ModestServerAccountSettings *settings)
271 ModestServerAccountSettingsPrivate *priv;
273 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
275 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
276 return priv->protocol;
280 modest_server_account_settings_set_protocol (ModestServerAccountSettings *settings,
281 ModestProtocolType protocol)
283 ModestServerAccountSettingsPrivate *priv;
285 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
287 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
288 priv->protocol = protocol;
293 modest_server_account_settings_get_port (ModestServerAccountSettings *settings)
295 ModestServerAccountSettingsPrivate *priv;
297 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), 0);
299 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
304 modest_server_account_settings_set_port (ModestServerAccountSettings *settings,
307 ModestServerAccountSettingsPrivate *priv;
309 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
311 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
316 modest_server_account_settings_get_security_protocol (ModestServerAccountSettings *settings)
318 ModestServerAccountSettingsPrivate *priv;
320 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
322 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
323 return priv->security_protocol;
327 modest_server_account_settings_set_security_protocol (ModestServerAccountSettings *settings,
328 ModestProtocolType security_protocol)
330 ModestServerAccountSettingsPrivate *priv;
332 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
334 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
335 priv->security_protocol = security_protocol;
339 modest_server_account_settings_get_auth_protocol (ModestServerAccountSettings *settings)
341 ModestServerAccountSettingsPrivate *priv;
343 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
345 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
346 return priv->auth_protocol;
350 modest_server_account_settings_set_auth_protocol (ModestServerAccountSettings *settings,
351 ModestProtocolType auth_protocol)
353 ModestServerAccountSettingsPrivate *priv;
355 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
357 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
358 priv->auth_protocol = auth_protocol;