Ejemplo n.º 1
0
static void
gom_repository_find_one_fetch_cb (GObject      *object,
                                  GAsyncResult *result,
                                  gpointer      user_data)
{
   GSimpleAsyncResult *simple = user_data;
   GomResourceGroup *group = (GomResourceGroup *)object;
   GomResource *resource;
   GError *error = NULL;

   g_return_if_fail(GOM_IS_RESOURCE_GROUP(group));
   g_return_if_fail(G_IS_SIMPLE_ASYNC_RESULT(simple));

   if (!gom_resource_group_fetch_finish(group, result, &error)) {
      g_simple_async_result_take_error(simple, error);
      g_simple_async_result_complete_in_idle(simple);
      g_object_unref(simple);
      return;
   }

   resource = gom_resource_group_get_index(group, 0);
   g_simple_async_result_set_op_res_gpointer(simple,
                                             g_object_ref(resource),
                                             g_object_unref);
   g_simple_async_result_complete_in_idle(simple);
   g_object_unref(simple);
}
Ejemplo n.º 2
0
static void
catch_resource_group_set_group (CatchResourceGroup *group,
                                GomResourceGroup   *gom_group)
{
   CatchResourceGroupPrivate *priv;

   ENTRY;

   g_return_if_fail(CATCH_IS_RESOURCE_GROUP(group));
   g_return_if_fail(!gom_group || GOM_IS_RESOURCE_GROUP(gom_group));

   priv = group->priv;

   g_clear_object(&priv->group);
   priv->count = 0;

   if (gom_group) {
      priv->group = g_object_ref(gom_group);
      priv->count = gom_resource_group_get_count(gom_group);
   }

   g_object_notify_by_pspec(G_OBJECT(group), gParamSpecs[PROP_COUNT]);
   g_object_notify_by_pspec(G_OBJECT(group), gParamSpecs[PROP_GROUP]);

   EXIT;
}