コード例 #1
0
ファイル: async-connection.c プロジェクト: Codeminded/tracker
static void
connection_cb (GObject      *object,
               GAsyncResult *res,
               gpointer      user_data)
{
	MyData *md = user_data;
	GError *error = NULL;

	md->connection = tracker_sparql_connection_get_finish (res, &error);
	g_print ("Async connection took: %.6f\n", g_timer_elapsed (md->timer, NULL));

	g_timer_start (md->timer);

	if (!error) {
		tracker_sparql_connection_query_async (md->connection,
		                                       "SELECT ?r { ?r a rdfs:Resource }",
		                                       md->cancellable,
		                                       query_cb,
		                                       md);
	} else {
		g_critical ("Could not connect: %s", error->message);
		g_error_free (error);
		g_main_loop_quit (md->loop);
	}
}
コード例 #2
0
static void
do_sparql_query_async_connection_cb (GObject      *const object,
                                     GAsyncResult *const result,
                                     GTask        *const task)
{

  g_autoptr(GError) error = NULL;

  TrackerSparqlConnection *const conn = tracker_sparql_connection_get_finish (
    result,
    &error
  );

  if (error) {
    g_task_return_error (task, g_error_copy (error));
    return;
  }

  SparqlQueryWork *const work = sparql_query_work_get (task);
  work->connection = conn;

  tracker_sparql_connection_query_async (
    conn,
    work->sparql,
    g_task_get_cancellable (task),
    (GAsyncReadyCallback) do_sparql_query_async_cursor_cb,
    task
  );

}