97
98
syncdaemon_metadata_set_server_hash (metadata, g_hash_table_lookup (hash, "server_hash"));
98
99
syncdaemon_metadata_set_share_id (metadata, g_hash_table_lookup (hash, "share_id"));
99
100
syncdaemon_metadata_set_node_id (metadata, g_hash_table_lookup (hash, "node_id"));
100
syncdaemon_metadata_set_is_synced (metadata, g_hash_table_lookup (hash, "quick_tree_synced"));
101
syncdaemon_metadata_set_is_synced (
103
g_strcmp0 (g_hash_table_lookup (hash, "quick_tree_synced"), "synced") == 0);
104
metadata->priv->is_dir = g_strcmp0 (g_hash_table_lookup (hash, "is_dir"), "True") == 0;
101
105
/* FIXME: we ignore the other values in the hash table since none of our
102
106
clients use them for now */
237
241
syncdaemon_metadata_get_is_synced (SyncdaemonMetadata *metadata)
239
const gchar * local, * server;
243
gchar *local, *server;
242
246
g_return_val_if_fail (SYNCDAEMON_IS_METADATA (metadata), FALSE);
244
local = syncdaemon_metadata_get_local_hash (metadata);
245
server = syncdaemon_metadata_get_server_hash (metadata);
247
is_updated = local && server && *local && *server &&
248
strcmp (local, server) == 0;
250
/* we are synced if both is_synced and is_updated are true */
251
return metadata->priv->is_synced && is_updated;
248
/* If it's a dir, we have the 'quick_tree_synced' value */
249
if (metadata->priv->is_dir)
250
return metadata->priv->is_synced;
252
local = metadata->priv->local_hash;
253
server = metadata->priv->server_hash;
255
is_updated = local && server && *local && *server &&
256
g_strcmp0 (local, server) == 0;
255
262
* syncdaemon_metadata_set_is_synced:
258
syncdaemon_metadata_set_is_synced (SyncdaemonMetadata *metadata, const gchar *is_synced)
265
syncdaemon_metadata_set_is_synced (SyncdaemonMetadata *metadata, gboolean is_synced)
260
267
g_return_if_fail (SYNCDAEMON_IS_METADATA (metadata));
262
metadata->priv->is_synced = !is_synced || (is_synced && *is_synced);
269
metadata->priv->is_synced = is_synced;