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-transfer-info.h"
24
G_DEFINE_TYPE(SyncdaemonTransferInfo, syncdaemon_transfer_info, G_TYPE_OBJECT)
26
struct _SyncdaemonTransferInfoPrivate {
30
glong bytes_transferred;
35
syncdaemon_transfer_info_finalize (GObject *object)
37
SyncdaemonTransferInfo *tinfo = SYNCDAEMON_TRANSFER_INFO (object);
39
if (tinfo->priv != NULL) {
40
if (tinfo->priv->path != NULL)
41
g_free (tinfo->priv->path);
43
if (tinfo->priv->share_id != NULL)
44
g_free (tinfo->priv->share_id);
46
if (tinfo->priv->node_id != NULL)
47
g_free (tinfo->priv->node_id);
52
G_OBJECT_CLASS (syncdaemon_transfer_info_parent_class)->finalize (object);
56
syncdaemon_transfer_info_class_init (SyncdaemonTransferInfoClass *klass)
58
GObjectClass *object_class = G_OBJECT_CLASS (klass);
60
object_class->finalize = syncdaemon_transfer_info_finalize;
64
syncdaemon_transfer_info_init (SyncdaemonTransferInfo *tinfo)
66
tinfo->priv = g_new0 (SyncdaemonTransferInfoPrivate, 1);
70
* syncdaemon_transfer_info_new:
71
* @path: Local path of the file being transferred.
73
* Return value: A new #SyncdaemonTransferInfo object.
75
SyncdaemonTransferInfo *
76
syncdaemon_transfer_info_new (const gchar *path)
78
SyncdaemonTransferInfo *tinfo;
80
tinfo = g_object_new (SYNCDAEMON_TYPE_TRANSFER_INFO, NULL);
82
syncdaemon_transfer_info_set_path (tinfo, path);
88
* syncdaemon_transfer_info_new_from_hash_table:
90
SyncdaemonTransferInfo *
91
syncdaemon_transfer_info_new_from_hash_table (GHashTable *hash)
93
SyncdaemonTransferInfo *tinfo;
95
tinfo = g_object_new (SYNCDAEMON_TYPE_TRANSFER_INFO, NULL);
99
syncdaemon_transfer_info_set_path (tinfo, g_hash_table_lookup (hash, "path"));
100
syncdaemon_transfer_info_set_share_id (tinfo, g_hash_table_lookup (hash, "share_id"));
101
syncdaemon_transfer_info_set_node_id (tinfo, g_hash_table_lookup (hash, "node_id"));
103
str = g_hash_table_lookup (hash, "n_bytes_read");
105
syncdaemon_transfer_info_set_bytes_transferred (tinfo, atol (str));
107
str = g_hash_table_lookup (hash, "deflated_size");
109
syncdaemon_transfer_info_set_total_size (tinfo, atol (str));
116
* syncdaemon_transfer_info_get_path:
119
syncdaemon_transfer_info_get_path (SyncdaemonTransferInfo *tinfo)
121
g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), NULL);
123
return (const gchar *) tinfo->priv->path;
127
* syncdaemon_transfer_info_set_path:
130
syncdaemon_transfer_info_set_path (SyncdaemonTransferInfo *tinfo, const gchar *path)
132
g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
134
if (tinfo->priv->path != NULL)
135
g_free (tinfo->priv->path);
137
tinfo->priv->path = g_strdup (path);
141
* syncdaemon_transfer_info_get_share_id:
144
syncdaemon_transfer_info_get_share_id (SyncdaemonTransferInfo *tinfo)
146
g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), NULL);
148
return (const gchar *) tinfo->priv->share_id;
152
* syncdaemon_transfer_info_set_share_id:
155
syncdaemon_transfer_info_set_share_id (SyncdaemonTransferInfo *tinfo, const gchar *share_id)
157
g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
159
if (tinfo->priv->share_id != NULL)
160
g_free (tinfo->priv->share_id);
162
tinfo->priv->share_id = g_strdup (share_id);
166
* syncdaemon_transfer_info_get_path:
169
syncdaemon_transfer_info_get_node_id (SyncdaemonTransferInfo *tinfo)
171
g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), NULL);
173
return (const gchar *) tinfo->priv->node_id;
177
* syncdaemon_transfer_info_set_node_id:
180
syncdaemon_transfer_info_set_node_id (SyncdaemonTransferInfo *tinfo, const gchar *node_id)
182
g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
184
if (tinfo->priv->node_id != NULL)
185
g_free (tinfo->priv->node_id);
187
tinfo->priv->node_id = g_strdup (node_id);
191
* syncdaemon_transfer_info_get_bytes_transferred:
194
syncdaemon_transfer_info_get_bytes_transferred (SyncdaemonTransferInfo *tinfo)
196
g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), 0);
198
return tinfo->priv->bytes_transferred;
202
* syncdaemon_transfer_info_set_bytes_transferred:
205
syncdaemon_transfer_info_set_bytes_transferred (SyncdaemonTransferInfo *tinfo, glong bytes)
207
g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
209
tinfo->priv->bytes_transferred = bytes;
213
* syncdaemon_transfer_info_get_total_size:
216
syncdaemon_transfer_info_get_total_size (SyncdaemonTransferInfo *tinfo)
218
g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), 0);
220
return tinfo->priv->total_size;
224
* syncdaemon_transfer_info_set_total_size:
227
syncdaemon_transfer_info_set_total_size (SyncdaemonTransferInfo *tinfo, glong bytes)
229
g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
231
tinfo->priv->total_size = bytes;