~didrocks/ubuntuone-client/dont-suffer-zg-crash

« back to all changes in this revision

Viewing changes to libsyncdaemon/syncdaemon-shares-interface.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:
214
214
                                 G_TYPE_INVALID);
215
215
}
216
216
 
217
 
/* FIXME: need API for get_shared/get_shares */
 
217
static void
 
218
got_shared_cb (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
 
219
{
 
220
        GSList *shared_list;
 
221
        SyncdaemonSharesInterface *interface = SYNCDAEMON_SHARES_INTERFACE (user_data);
 
222
        SyncdaemonDaemon *daemon = NULL;
 
223
        GError *error = NULL;
 
224
 
 
225
        g_object_get (G_OBJECT (interface), "daemon", &daemon, NULL);
 
226
 
 
227
        if (!dbus_g_proxy_end_call (proxy, call_id, &error,
 
228
                                    dbus_g_type_get_collection ("GSList",
 
229
                                                                dbus_g_type_get_map (
 
230
                                                                        "GHashTable",
 
231
                                                                        G_TYPE_STRING,
 
232
                                                                        G_TYPE_STRING)),
 
233
                                    &shared_list,
 
234
                                    G_TYPE_INVALID)) {
 
235
                if (daemon != NULL) {
 
236
                        g_signal_emit_by_name (daemon, "error", error->message, NULL);
 
237
                        g_error_free (error);
 
238
 
 
239
                        return;
 
240
                }
 
241
        }
 
242
 
 
243
        while (shared_list != NULL) {
 
244
                GHashTable *share_info = shared_list->data;
 
245
 
 
246
                share_created_cb (proxy, share_info, interface);
 
247
 
 
248
                shared_list = g_slist_remove (shared_list, share_info);
 
249
                g_hash_table_unref (share_info);
 
250
        }
 
251
}
 
252
 
 
253
/**
 
254
 * syncdaemon_shares_interface_get_shared:
 
255
 */
 
256
void
 
257
syncdaemon_shares_interface_get_shared (SyncdaemonSharesInterface *interface)
 
258
{
 
259
        g_return_if_fail (SYNCDAEMON_IS_SHARES_INTERFACE (interface));
 
260
 
 
261
        dbus_g_proxy_begin_call (DBUS_G_PROXY (interface->priv->proxy), "get_shared",
 
262
                                 got_shared_cb, interface, NULL,
 
263
                                 G_TYPE_INVALID);
 
264
}
218
265
 
219
266
/**
220
267
 * syncdaemon_shares_interface_refresh: