4
* Authors: Rodrigo Moya <rodrigo.moya@canonical.com>
6
* Copyright 2010 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/>.
22
#include "syncdaemon-folder-info.h"
24
G_DEFINE_TYPE(SyncdaemonFolderInfo, syncdaemon_folder_info, G_TYPE_OBJECT)
26
struct _SyncdaemonFolderInfoPrivate {
33
syncdaemon_folder_info_finalize (GObject *object)
35
SyncdaemonFolderInfo *finfo = SYNCDAEMON_FOLDER_INFO (object);
37
if (finfo->priv != NULL) {
38
if (finfo->priv->path != NULL)
39
g_free (finfo->priv->path);
41
if (finfo->priv->volume_id != NULL)
42
g_free (finfo->priv->volume_id);
47
G_OBJECT_CLASS (syncdaemon_folder_info_parent_class)->finalize (object);
51
syncdaemon_folder_info_class_init (SyncdaemonFolderInfoClass *klass)
53
GObjectClass *object_class = G_OBJECT_CLASS (klass);
55
object_class->finalize = syncdaemon_folder_info_finalize;
59
syncdaemon_folder_info_init (SyncdaemonFolderInfo *finfo)
61
finfo->priv = g_new0 (SyncdaemonFolderInfoPrivate, 1);
65
* syncdaemon_folder_info_new:
67
SyncdaemonFolderInfo *
68
syncdaemon_folder_info_new (void)
70
return g_object_new (SYNCDAEMON_TYPE_FOLDER_INFO, NULL);
74
* syncdaemon_folder_info_new_from_hash_table:
76
SyncdaemonFolderInfo *
77
syncdaemon_folder_info_new_from_hash_table (GHashTable *hash)
79
SyncdaemonFolderInfo *finfo;
81
finfo = g_object_new (SYNCDAEMON_TYPE_FOLDER_INFO, NULL);
83
syncdaemon_folder_info_set_path (finfo, g_hash_table_lookup (hash, "path"));
84
syncdaemon_folder_info_set_subscribed (
86
g_strcmp0 (g_hash_table_lookup (hash, "subscribed"), "True") == 0);
87
syncdaemon_folder_info_set_volume_id (finfo, g_hash_table_lookup (hash, "volume_id"));
94
* syncdaemon_folder_info_get_path:
97
syncdaemon_folder_info_get_path (SyncdaemonFolderInfo *finfo)
99
g_return_val_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo), NULL);
101
return (const gchar *) finfo->priv->path;
105
* syncdaemon_folder_info_set_path:
108
syncdaemon_folder_info_set_path (SyncdaemonFolderInfo *finfo, const gchar *path)
110
g_return_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo));
112
if (finfo->priv->path != NULL)
113
g_free (finfo->priv->path);
115
finfo->priv->path = g_strdup (path);
119
* syncdaemon_folder_info_get_subscribed:
122
syncdaemon_folder_info_get_subscribed (SyncdaemonFolderInfo *finfo)
124
g_return_val_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo), FALSE);
126
return finfo->priv->subscribed;
130
* syncdaemon_folder_info_set_subscribed:
133
syncdaemon_folder_info_set_subscribed (SyncdaemonFolderInfo *finfo, gboolean subscribed)
135
g_return_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo));
137
finfo->priv->subscribed = subscribed;
141
* syncdaemon_folder_info_get_volume_id:
144
syncdaemon_folder_info_get_volume_id (SyncdaemonFolderInfo *finfo)
146
g_return_val_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo), NULL);
148
return (const gchar *) finfo->priv->volume_id;
152
* syncdaemon_folder_info_set_volume_id:
155
syncdaemon_folder_info_set_volume_id (SyncdaemonFolderInfo *finfo, const gchar *volume_id)
157
g_return_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo));
159
if (finfo->priv->volume_id != NULL)
160
g_free (finfo->priv->volume_id);
162
finfo->priv->volume_id = g_strdup (volume_id);