summaryrefslogtreecommitdiff
path: root/examples/introspection/python/all-async.py
blob: 70a3b2b1f1b5f1e4d7cad0634bbf0eba5cb68497 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python
import gi
from gi.repository import Tracker, GObject


def results_ready_cb (obj, result, user_data):
    cursor = obj.query_finish (result)

    # This can also be done asynchronously
    while (cursor.next (None)):
        print cursor.get_string (0)

    user_data.quit ()

def connection_ready_cb (object, result, user_data):
    assert user_data
    conn = Tracker.SparqlConnection.get_finish (result)

    conn.query_async ("SELECT ?u WHERE { ?u a nie:InformationElement. }",
                      None,
                      results_ready_cb,
                      user_data)


if __name__ == "__main__":
    loop = GObject.MainLoop ()

    Tracker.SparqlConnection.get_async (None, connection_ready_cb, loop)

    loop.run ()