~ubuntu-branches/ubuntu/oneiric/ubuntuone-client/oneiric

« back to all changes in this revision

Viewing changes to libsyncdaemon/syncdaemon-transfer-info.c

  • Committer: Bazaar Package Importer
  • Author(s): Rodrigo Moya
  • Date: 2010-06-23 23:08:15 UTC
  • mto: This revision was merged to the branch mainline in revision 34.
  • Revision ID: james.westby@ubuntu.com-20100623230815-4m3ugh10u9x9xzw5
Tags: upstream-1.3.2
ImportĀ upstreamĀ versionĀ 1.3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Syncdaemon API
 
3
 *
 
4
 * Authors: Rodrigo Moya <rodrigo.moya@canonical.com>
 
5
 *
 
6
 * Copyright 2010 Canonical Ltd.
 
7
 *
 
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.
 
11
 *
 
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.
 
16
 *
 
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/>.
 
19
 *
 
20
 */
 
21
 
 
22
#include "syncdaemon-transfer-info.h"
 
23
 
 
24
G_DEFINE_TYPE(SyncdaemonTransferInfo, syncdaemon_transfer_info, G_TYPE_OBJECT)
 
25
 
 
26
struct _SyncdaemonTransferInfoPrivate {
 
27
        gchar *path;
 
28
        gchar *share_id;
 
29
        gchar *node_id;
 
30
        glong bytes_transferred;
 
31
        glong total_size;
 
32
};
 
33
 
 
34
static void
 
35
syncdaemon_transfer_info_finalize (GObject *object)
 
36
{
 
37
        SyncdaemonTransferInfo *tinfo = SYNCDAEMON_TRANSFER_INFO (object);
 
38
 
 
39
        if (tinfo->priv != NULL) {
 
40
                if (tinfo->priv->path != NULL)
 
41
                        g_free (tinfo->priv->path);
 
42
 
 
43
                if (tinfo->priv->share_id != NULL)
 
44
                        g_free (tinfo->priv->share_id);
 
45
 
 
46
                if (tinfo->priv->node_id != NULL)
 
47
                        g_free (tinfo->priv->node_id);
 
48
 
 
49
                g_free (tinfo->priv);
 
50
        }
 
51
 
 
52
        G_OBJECT_CLASS (syncdaemon_transfer_info_parent_class)->finalize (object);
 
53
}
 
54
 
 
55
static void
 
56
syncdaemon_transfer_info_class_init (SyncdaemonTransferInfoClass *klass)
 
57
{
 
58
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
59
 
 
60
        object_class->finalize = syncdaemon_transfer_info_finalize;
 
61
}
 
62
 
 
63
static void
 
64
syncdaemon_transfer_info_init (SyncdaemonTransferInfo *tinfo)
 
65
{
 
66
        tinfo->priv = g_new0 (SyncdaemonTransferInfoPrivate, 1);
 
67
}
 
68
 
 
69
/**
 
70
 * syncdaemon_transfer_info_new:
 
71
 * @path: Local path of the file being transferred.
 
72
 *
 
73
 * Return value: A new #SyncdaemonTransferInfo object.
 
74
 */
 
75
SyncdaemonTransferInfo *
 
76
syncdaemon_transfer_info_new (const gchar *path)
 
77
{
 
78
        SyncdaemonTransferInfo *tinfo;
 
79
 
 
80
        tinfo = g_object_new (SYNCDAEMON_TYPE_TRANSFER_INFO, NULL);
 
81
        if (path != NULL)
 
82
                syncdaemon_transfer_info_set_path (tinfo, path);
 
83
 
 
84
        return tinfo;
 
85
}
 
86
 
 
87
/**
 
88
 * syncdaemon_transfer_info_new_from_hash_table:
 
89
 */
 
90
SyncdaemonTransferInfo *
 
91
syncdaemon_transfer_info_new_from_hash_table (GHashTable *hash)
 
92
{
 
93
        SyncdaemonTransferInfo *tinfo;
 
94
 
 
95
        tinfo = g_object_new (SYNCDAEMON_TYPE_TRANSFER_INFO, NULL);
 
96
        if (hash != NULL) {
 
97
                gchar *str;
 
98
 
 
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"));
 
102
 
 
103
                str = g_hash_table_lookup (hash, "n_bytes_read");
 
104
                if (str != NULL)
 
105
                        syncdaemon_transfer_info_set_bytes_transferred (tinfo, atol (str));
 
106
 
 
107
                str = g_hash_table_lookup (hash, "deflated_size");
 
108
                if (str != NULL)
 
109
                        syncdaemon_transfer_info_set_total_size (tinfo, atol (str));
 
110
        }
 
111
 
 
112
        return tinfo;
 
113
}
 
114
 
 
115
/**
 
116
 * syncdaemon_transfer_info_get_path:
 
117
 */
 
118
const gchar *
 
119
syncdaemon_transfer_info_get_path (SyncdaemonTransferInfo *tinfo)
 
120
{
 
121
        g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), NULL);
 
122
 
 
123
        return (const gchar *) tinfo->priv->path;
 
124
}
 
125
 
 
126
/**
 
127
 * syncdaemon_transfer_info_set_path:
 
128
 */
 
129
void
 
130
syncdaemon_transfer_info_set_path (SyncdaemonTransferInfo *tinfo, const gchar *path)
 
131
{
 
132
        g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
 
133
 
 
134
        if (tinfo->priv->path != NULL)
 
135
                g_free (tinfo->priv->path);
 
136
 
 
137
        tinfo->priv->path = g_strdup (path);
 
138
}
 
139
 
 
140
/**
 
141
 * syncdaemon_transfer_info_get_share_id:
 
142
 */
 
143
const gchar *
 
144
syncdaemon_transfer_info_get_share_id (SyncdaemonTransferInfo *tinfo)
 
145
{
 
146
        g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), NULL);
 
147
 
 
148
        return (const gchar *) tinfo->priv->share_id;
 
149
}
 
150
 
 
151
/**
 
152
 * syncdaemon_transfer_info_set_share_id:
 
153
 */
 
154
void
 
155
syncdaemon_transfer_info_set_share_id (SyncdaemonTransferInfo *tinfo, const gchar *share_id)
 
156
{
 
157
        g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
 
158
 
 
159
        if (tinfo->priv->share_id != NULL)
 
160
                g_free (tinfo->priv->share_id);
 
161
 
 
162
        tinfo->priv->share_id = g_strdup (share_id);
 
163
}
 
164
 
 
165
/**
 
166
 * syncdaemon_transfer_info_get_path:
 
167
 */
 
168
const gchar *
 
169
syncdaemon_transfer_info_get_node_id (SyncdaemonTransferInfo *tinfo)
 
170
{
 
171
        g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), NULL);
 
172
 
 
173
        return (const gchar *) tinfo->priv->node_id;
 
174
}
 
175
 
 
176
/**
 
177
 * syncdaemon_transfer_info_set_node_id:
 
178
 */
 
179
void
 
180
syncdaemon_transfer_info_set_node_id (SyncdaemonTransferInfo *tinfo, const gchar *node_id)
 
181
{
 
182
        g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
 
183
 
 
184
        if (tinfo->priv->node_id != NULL)
 
185
                g_free (tinfo->priv->node_id);
 
186
 
 
187
        tinfo->priv->node_id = g_strdup (node_id);
 
188
}
 
189
 
 
190
/**
 
191
 * syncdaemon_transfer_info_get_bytes_transferred:
 
192
 */
 
193
glong
 
194
syncdaemon_transfer_info_get_bytes_transferred (SyncdaemonTransferInfo *tinfo)
 
195
{
 
196
        g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), 0);
 
197
 
 
198
        return tinfo->priv->bytes_transferred;
 
199
}
 
200
 
 
201
/**
 
202
 * syncdaemon_transfer_info_set_bytes_transferred:
 
203
 */
 
204
void
 
205
syncdaemon_transfer_info_set_bytes_transferred (SyncdaemonTransferInfo *tinfo, glong bytes)
 
206
{
 
207
        g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
 
208
 
 
209
        tinfo->priv->bytes_transferred = bytes;
 
210
}
 
211
 
 
212
/**
 
213
 * syncdaemon_transfer_info_get_total_size:
 
214
 */
 
215
glong
 
216
syncdaemon_transfer_info_get_total_size (SyncdaemonTransferInfo *tinfo)
 
217
{
 
218
        g_return_val_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo), 0);
 
219
 
 
220
        return tinfo->priv->total_size;
 
221
}
 
222
 
 
223
/**
 
224
 * syncdaemon_transfer_info_set_total_size:
 
225
 */
 
226
void
 
227
syncdaemon_transfer_info_set_total_size (SyncdaemonTransferInfo *tinfo, glong bytes)
 
228
{
 
229
        g_return_if_fail (SYNCDAEMON_IS_TRANSFER_INFO (tinfo));
 
230
 
 
231
        tinfo->priv->total_size = bytes;
 
232
}