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-folder-info.h"
37
G_DEFINE_TYPE(SyncdaemonFolderInfo, syncdaemon_folder_info, G_TYPE_OBJECT)
39
struct _SyncdaemonFolderInfoPrivate {
46
syncdaemon_folder_info_finalize (GObject *object)
48
SyncdaemonFolderInfo *finfo = SYNCDAEMON_FOLDER_INFO (object);
50
if (finfo->priv != NULL) {
51
if (finfo->priv->path != NULL)
52
g_free (finfo->priv->path);
54
if (finfo->priv->volume_id != NULL)
55
g_free (finfo->priv->volume_id);
60
G_OBJECT_CLASS (syncdaemon_folder_info_parent_class)->finalize (object);
64
syncdaemon_folder_info_class_init (SyncdaemonFolderInfoClass *klass)
66
GObjectClass *object_class = G_OBJECT_CLASS (klass);
68
object_class->finalize = syncdaemon_folder_info_finalize;
72
syncdaemon_folder_info_init (SyncdaemonFolderInfo *finfo)
74
finfo->priv = g_new0 (SyncdaemonFolderInfoPrivate, 1);
78
* syncdaemon_folder_info_new:
80
SyncdaemonFolderInfo *
81
syncdaemon_folder_info_new (void)
83
return g_object_new (SYNCDAEMON_TYPE_FOLDER_INFO, NULL);
87
* syncdaemon_folder_info_new_from_hash_table:
89
SyncdaemonFolderInfo *
90
syncdaemon_folder_info_new_from_hash_table (GHashTable *hash)
92
SyncdaemonFolderInfo *finfo;
94
finfo = g_object_new (SYNCDAEMON_TYPE_FOLDER_INFO, NULL);
96
syncdaemon_folder_info_set_path (finfo, g_hash_table_lookup (hash, "path"));
97
syncdaemon_folder_info_set_subscribed (
99
g_strcmp0 (g_hash_table_lookup (hash, "subscribed"), "True") == 0);
100
syncdaemon_folder_info_set_volume_id (finfo, g_hash_table_lookup (hash, "volume_id"));
107
* syncdaemon_folder_info_get_path:
110
syncdaemon_folder_info_get_path (SyncdaemonFolderInfo *finfo)
112
g_return_val_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo), NULL);
114
return (const gchar *) finfo->priv->path;
118
* syncdaemon_folder_info_set_path:
121
syncdaemon_folder_info_set_path (SyncdaemonFolderInfo *finfo, const gchar *path)
123
g_return_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo));
125
if (finfo->priv->path != NULL)
126
g_free (finfo->priv->path);
128
finfo->priv->path = g_strdup (path);
132
* syncdaemon_folder_info_get_subscribed:
135
syncdaemon_folder_info_get_subscribed (SyncdaemonFolderInfo *finfo)
137
g_return_val_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo), FALSE);
139
return finfo->priv->subscribed;
143
* syncdaemon_folder_info_set_subscribed:
146
syncdaemon_folder_info_set_subscribed (SyncdaemonFolderInfo *finfo, gboolean subscribed)
148
g_return_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo));
150
finfo->priv->subscribed = subscribed;
154
* syncdaemon_folder_info_get_volume_id:
157
syncdaemon_folder_info_get_volume_id (SyncdaemonFolderInfo *finfo)
159
g_return_val_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo), NULL);
161
return (const gchar *) finfo->priv->volume_id;
165
* syncdaemon_folder_info_set_volume_id:
168
syncdaemon_folder_info_set_volume_id (SyncdaemonFolderInfo *finfo, const gchar *volume_id)
170
g_return_if_fail (SYNCDAEMON_IS_FOLDER_INFO (finfo));
172
if (finfo->priv->volume_id != NULL)
173
g_free (finfo->priv->volume_id);
175
finfo->priv->volume_id = g_strdup (volume_id);