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-server-account-settings.h>
32 /* 'private'/'protected' functions */
33 static void modest_server_account_settings_class_init (ModestServerAccountSettingsClass *klass);
34 static void modest_server_account_settings_finalize (GObject *obj);
35 static void modest_server_account_settings_instance_init (ModestServerAccountSettings *obj);
37 typedef struct _ModestServerAccountSettingsPrivate ModestServerAccountSettingsPrivate;
38 struct _ModestServerAccountSettingsPrivate {
41 ModestTransportStoreProtocol protocol;
44 ModestConnectionProtocol security;
45 ModestAuthProtocol auth_protocol;
50 #define MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
51 MODEST_TYPE_SERVER_ACCOUNT_SETTINGS, \
52 ModestServerAccountSettingsPrivate))
55 static GObjectClass *parent_class = NULL;
58 modest_server_account_settings_get_type (void)
60 static GType my_type = 0;
63 static const GTypeInfo my_info = {
64 sizeof(ModestServerAccountSettingsClass),
66 NULL, /* base finalize */
67 (GClassInitFunc) modest_server_account_settings_class_init,
68 NULL, /* class finalize */
69 NULL, /* class data */
70 sizeof(ModestServerAccountSettings),
72 (GInstanceInitFunc) modest_server_account_settings_instance_init,
76 my_type = g_type_register_static (G_TYPE_OBJECT,
77 "ModestServerAccountSettings",
84 modest_server_account_settings_class_init (ModestServerAccountSettingsClass *klass)
86 GObjectClass *gobject_class;
87 gobject_class = (GObjectClass *) klass;
89 parent_class = g_type_class_peek_parent (klass);
90 gobject_class->finalize = modest_server_account_settings_finalize;
92 g_type_class_add_private (gobject_class,
93 sizeof(ModestServerAccountSettingsPrivate));
97 modest_server_account_settings_instance_init (ModestServerAccountSettings *obj)
99 ModestServerAccountSettingsPrivate *priv;
101 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (obj);
103 priv->hostname = NULL;
104 priv->protocol = MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN;
106 priv->username = NULL;
107 priv->password = NULL;
108 priv->security = MODEST_PROTOCOL_CONNECTION_NORMAL;
109 priv->auth_protocol = MODEST_PROTOCOL_AUTH_NONE;
110 priv->account_name = NULL;
115 modest_server_account_settings_finalize (GObject *obj)
117 ModestServerAccountSettings *settings = MODEST_SERVER_ACCOUNT_SETTINGS (obj);
118 ModestServerAccountSettingsPrivate *priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
119 g_free (priv->hostname);
120 priv->hostname = NULL;
121 g_free (priv->username);
122 priv->username = NULL;
123 g_free (priv->password);
124 priv->password = NULL;
125 priv->protocol = MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN;
127 priv->security = MODEST_PROTOCOL_CONNECTION_NORMAL;
128 priv->auth_protocol = MODEST_PROTOCOL_AUTH_NONE;
129 g_free (priv->account_name);
130 priv->account_name = NULL;
134 G_OBJECT_CLASS (parent_class)->finalize (obj);
137 ModestServerAccountSettings*
138 modest_server_account_settings_new (void)
140 return g_object_new (MODEST_TYPE_SERVER_ACCOUNT_SETTINGS, NULL);
144 modest_server_account_settings_get_hostname (ModestServerAccountSettings *settings)
146 ModestServerAccountSettingsPrivate *priv;
148 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
150 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
151 return priv->hostname;
155 modest_server_account_settings_set_hostname (ModestServerAccountSettings *settings,
156 const gchar *hostname)
158 ModestServerAccountSettingsPrivate *priv;
160 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
162 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
163 g_free (priv->hostname);
164 priv->hostname = g_strdup (hostname);
168 modest_server_account_settings_get_uri (ModestServerAccountSettings *settings)
170 ModestServerAccountSettingsPrivate *priv;
172 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
174 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
179 modest_server_account_settings_set_uri (ModestServerAccountSettings *settings,
182 ModestServerAccountSettingsPrivate *priv;
184 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
186 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
188 priv->uri = g_strdup (uri);
190 /* we set the protocol to a NULL equivalent value. We should use uri in case
191 * protocol has this value. */
192 priv->protocol = MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN;
196 modest_server_account_settings_get_username (ModestServerAccountSettings *settings)
198 ModestServerAccountSettingsPrivate *priv;
200 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
202 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
203 return priv->username;
207 modest_server_account_settings_set_username (ModestServerAccountSettings *settings,
208 const gchar *username)
210 ModestServerAccountSettingsPrivate *priv;
212 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
214 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
215 g_free (priv->username);
216 priv->username = g_strdup (username);
220 modest_server_account_settings_get_password (ModestServerAccountSettings *settings)
222 ModestServerAccountSettingsPrivate *priv;
224 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
226 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
227 return priv->password;
231 modest_server_account_settings_set_password (ModestServerAccountSettings *settings,
232 const gchar *password)
234 ModestServerAccountSettingsPrivate *priv;
236 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
238 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
239 g_free (priv->password);
240 priv->password = g_strdup (password);
244 modest_server_account_settings_get_account_name (ModestServerAccountSettings *settings)
246 ModestServerAccountSettingsPrivate *priv;
248 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
250 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
251 return priv->account_name;
255 modest_server_account_settings_set_account_name (ModestServerAccountSettings *settings,
256 const gchar *account_name)
258 ModestServerAccountSettingsPrivate *priv;
260 /* be careful. This method should only be used internally in #ModestAccountMgr and
261 * #ModestAccountSettings. */
263 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
265 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
266 g_free (priv->account_name);
267 priv->account_name = g_strdup (account_name);
270 ModestTransportStoreProtocol
271 modest_server_account_settings_get_protocol (ModestServerAccountSettings *settings)
273 ModestServerAccountSettingsPrivate *priv;
275 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN);
277 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
278 return priv->protocol;
282 modest_server_account_settings_set_protocol (ModestServerAccountSettings *settings,
283 ModestTransportStoreProtocol protocol)
285 ModestServerAccountSettingsPrivate *priv;
287 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
289 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
290 priv->protocol = protocol;
292 /* we also set the uri to NULL, as setting a protocol implies disabling uri setting type */
298 modest_server_account_settings_get_port (ModestServerAccountSettings *settings)
300 ModestServerAccountSettingsPrivate *priv;
302 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), 0);
304 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
309 modest_server_account_settings_set_port (ModestServerAccountSettings *settings,
312 ModestServerAccountSettingsPrivate *priv;
314 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
316 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
320 ModestConnectionProtocol
321 modest_server_account_settings_get_security (ModestServerAccountSettings *settings)
323 ModestServerAccountSettingsPrivate *priv;
325 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_CONNECTION_NORMAL);
327 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
328 return priv->security;
332 modest_server_account_settings_set_security (ModestServerAccountSettings *settings,
333 ModestConnectionProtocol security)
335 ModestServerAccountSettingsPrivate *priv;
337 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
339 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
340 priv->security = security;
344 modest_server_account_settings_get_auth_protocol (ModestServerAccountSettings *settings)
346 ModestServerAccountSettingsPrivate *priv;
348 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_AUTH_NONE);
350 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
351 return priv->auth_protocol;
355 modest_server_account_settings_set_auth_protocol (ModestServerAccountSettings *settings,
356 ModestAuthProtocol auth_protocol)
358 ModestServerAccountSettingsPrivate *priv;
360 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
362 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
363 priv->auth_protocol = auth_protocol;