4
* Authors: Rodrigo Moya <rodrigo.moya@canonical.com>
6
* Copyright 2010-2012 Canonical Ltd.
8
* This program is free software: you can redistribute it and/or modify it
9
* under the terms of the GNU General Public License version 3, as published
10
* by the Free Software Foundation.
12
* This program is distributed in the hope that it will be useful, but
13
* WITHOUT ANY WARRANTY; without even the implied warranties of
14
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
15
* PURPOSE. See the GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License along
18
* with this program. If not, see <http://www.gnu.org/licenses/>.
20
* In addition, as a special exception, the copyright holders give
21
* permission to link the code of portions of this program with the
22
* OpenSSL library under certain conditions as described in each
23
* individual source file, and distribute linked combinations
25
* You must obey the GNU General Public License in all respects
26
* for all of the code used other than OpenSSL. If you modify
27
* file(s) with this exception, you may extend this exception to your
28
* version of the file(s), but you are not obligated to do so. If you
29
* do not wish to do so, delete this exception statement from your
30
* version. If you delete this exception statement from all source
31
* files in the program, then also delete it here.
35
#include "syncdaemon-share-info.h"
37
G_DEFINE_TYPE(SyncdaemonShareInfo, syncdaemon_share_info, G_TYPE_OBJECT)
39
struct _SyncdaemonShareInfoPrivate {
41
SyncdaemonShareInfoType type;
44
gchar *user_visible_name;
48
gboolean allow_modifications;
52
syncdaemon_share_info_finalize (GObject *object)
54
SyncdaemonShareInfo *sinfo = SYNCDAEMON_SHARE_INFO (object);
56
if (sinfo->priv != NULL) {
57
if (sinfo->priv->name != NULL)
58
g_free (sinfo->priv->name);
60
if (sinfo->priv->path != NULL)
61
g_free (sinfo->priv->path);
63
if (sinfo->priv->username != NULL)
64
g_free (sinfo->priv->username);
66
if (sinfo->priv->user_visible_name != NULL)
67
g_free (sinfo->priv->user_visible_name);
69
if (sinfo->priv->node_id != NULL)
70
g_free (sinfo->priv->node_id);
72
if (sinfo->priv->volume_id != NULL)
73
g_free (sinfo->priv->volume_id);
78
G_OBJECT_CLASS (syncdaemon_share_info_parent_class)->finalize (object);
82
syncdaemon_share_info_class_init (SyncdaemonShareInfoClass *klass)
84
GObjectClass *object_class = G_OBJECT_CLASS (klass);
86
object_class->finalize = syncdaemon_share_info_finalize;
90
syncdaemon_share_info_init (SyncdaemonShareInfo *sinfo)
92
sinfo->priv = g_new0 (SyncdaemonShareInfoPrivate, 1);
96
* syncdaemon_share_info_new:
99
syncdaemon_share_info_new (void)
101
return g_object_new (SYNCDAEMON_TYPE_SHARE_INFO, NULL);
105
* syncdaemon_share_info_new_from_hash_table:
107
SyncdaemonShareInfo *
108
syncdaemon_share_info_new_from_hash_table (GHashTable *hash)
110
SyncdaemonShareInfo *sinfo;
112
sinfo = g_object_new (SYNCDAEMON_TYPE_SHARE_INFO, NULL);
116
syncdaemon_share_info_set_name (sinfo, g_hash_table_lookup (hash, "name"));
117
syncdaemon_share_info_set_path (sinfo, g_hash_table_lookup (hash, "path"));
118
syncdaemon_share_info_set_username (sinfo, g_hash_table_lookup (hash, "other_username"));
119
syncdaemon_share_info_set_user_visible_name (
121
g_hash_table_lookup (hash, "other_visible_name"));
122
syncdaemon_share_info_set_node_id (sinfo, g_hash_table_lookup (hash, "node_id"));
123
syncdaemon_share_info_set_volume_id (sinfo, g_hash_table_lookup (hash, "volume_id"));
124
syncdaemon_share_info_set_accepted (
126
g_strcmp0 (g_hash_table_lookup (hash, "accepted"), "True") == 0);
127
syncdaemon_share_info_set_allow_modifications (
129
g_strcmp0 (g_hash_table_lookup (hash, "access_level"), "Modify") == 0);
131
str = g_hash_table_lookup (hash, "type");
132
if (g_strcmp0 (str, "Shared") == 0)
133
syncdaemon_share_info_set_share_type (sinfo, SYNCDAEMON_SHARE_INFO_TYPE_SHARED);
134
else if (g_strcmp0 (str, "Share") == 0)
135
syncdaemon_share_info_set_share_type (sinfo, SYNCDAEMON_SHARE_INFO_TYPE_SHARE);
137
syncdaemon_share_info_set_share_type (sinfo, SYNCDAEMON_SHARE_INFO_TYPE_UNKNOWN);
144
* syncdameon_share_info_get_name:
147
syncdaemon_share_info_get_name (SyncdaemonShareInfo *sinfo)
149
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), NULL);
151
return (const gchar *) sinfo->priv->name;
155
* syncdameon_share_info_set_name:
158
syncdaemon_share_info_set_name (SyncdaemonShareInfo *sinfo, const gchar *name)
160
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
162
if (sinfo->priv->name != NULL)
163
g_free (sinfo->priv->name);
165
sinfo->priv->name = g_strdup (name);
169
* syncdameon_share_info_get_share_type:
171
SyncdaemonShareInfoType
172
syncdaemon_share_info_get_share_type (SyncdaemonShareInfo *sinfo)
174
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), SYNCDAEMON_SHARE_INFO_TYPE_UNKNOWN);
176
return sinfo->priv->type;
180
* syncdameon_share_info_set_share_type:
183
syncdaemon_share_info_set_share_type (SyncdaemonShareInfo *sinfo, SyncdaemonShareInfoType type)
185
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
187
sinfo->priv->type = type;
191
* syncdameon_share_info_get_path:
194
syncdaemon_share_info_get_path (SyncdaemonShareInfo *sinfo)
196
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), NULL);
198
return (const gchar *) sinfo->priv->path;
202
* syncdameon_share_info_set_path:
205
syncdaemon_share_info_set_path (SyncdaemonShareInfo *sinfo, const gchar *path)
207
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
209
if (sinfo->priv->path != NULL)
210
g_free (sinfo->priv->path);
212
sinfo->priv->path = g_strdup (path);
216
* syncdameon_share_info_get_username:
219
syncdaemon_share_info_get_username (SyncdaemonShareInfo *sinfo)
221
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), NULL);
223
return (const gchar *) sinfo->priv->username;
227
* syncdameon_share_info_set_username:
230
syncdaemon_share_info_set_username (SyncdaemonShareInfo *sinfo, const gchar *username)
232
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
234
if (sinfo->priv->username != NULL)
235
g_free (sinfo->priv->username);
237
sinfo->priv->username = g_strdup (username);
241
* syncdameon_share_info_get_user_visible_name:
244
syncdaemon_share_info_get_user_visible_name (SyncdaemonShareInfo *sinfo)
246
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), NULL);
248
return (const gchar *) sinfo->priv->user_visible_name;
252
* syncdameon_share_info_set_user_visible_name:
255
syncdaemon_share_info_set_user_visible_name (SyncdaemonShareInfo *sinfo, const gchar *user_visible_name)
257
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
259
if (sinfo->priv->user_visible_name != NULL)
260
g_free (sinfo->priv->user_visible_name);
262
sinfo->priv->user_visible_name = g_strdup (user_visible_name);
266
* syncdameon_share_info_get_node_id:
269
syncdaemon_share_info_get_node_id (SyncdaemonShareInfo *sinfo)
271
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), NULL);
273
return (const gchar *) sinfo->priv->node_id;
277
* syncdameon_share_info_set_node_id:
280
syncdaemon_share_info_set_node_id (SyncdaemonShareInfo *sinfo, const gchar *node_id)
282
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
284
if (sinfo->priv->node_id != NULL)
285
g_free (sinfo->priv->node_id);
287
sinfo->priv->node_id = g_strdup (node_id);
291
* syncdameon_share_info_get_volume_id:
294
syncdaemon_share_info_get_volume_id (SyncdaemonShareInfo *sinfo)
296
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), NULL);
298
return (const gchar *) sinfo->priv->volume_id;
302
* syncdameon_share_info_set_volume_id:
305
syncdaemon_share_info_set_volume_id (SyncdaemonShareInfo *sinfo, const gchar *volume_id)
307
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
309
if (sinfo->priv->volume_id != NULL)
310
g_free (sinfo->priv->volume_id);
312
sinfo->priv->volume_id = g_strdup (volume_id);
316
* syncdameon_share_info_get_accepted:
319
syncdaemon_share_info_get_accepted (SyncdaemonShareInfo *sinfo)
321
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), FALSE);
323
return sinfo->priv->accepted;
327
* syncdameon_share_info_set_accepted:
330
syncdaemon_share_info_set_accepted (SyncdaemonShareInfo *sinfo, gboolean accepted)
332
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
334
sinfo->priv->accepted = accepted;
338
* syncdameon_share_info_get_allow_modifications:
341
syncdaemon_share_info_get_allow_modifications (SyncdaemonShareInfo *sinfo)
343
g_return_val_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo), FALSE);
345
return sinfo->priv->allow_modifications;
349
* syncdameon_share_info_set_allow_modifications:
352
syncdaemon_share_info_set_allow_modifications (SyncdaemonShareInfo *sinfo, gboolean allow_modifications)
354
g_return_if_fail (SYNCDAEMON_IS_SHARE_INFO (sinfo));
356
sinfo->priv->allow_modifications = allow_modifications;