[tracker/tracker-0.10] libtracker-miner, libtracker-sparql: Added introspection examples



commit 87f9959d46b576abaa32d967b1981b9a8668bc5f
Author: Ivan Frade <ivan frade nokia com>
Date:   Mon Mar 28 19:28:49 2011 +0300

    libtracker-miner, libtracker-sparql: Added introspection examples
    
    Miner and Async query are not working as expected yet, but the code
    should be correct.

 examples/introspection/python/all-async.py   |   30 ++++++++++++++++
 examples/introspection/python/miner.py       |   47 ++++++++++++++++++++++++++
 examples/introspection/python/query-async.py |   25 ++++++++++++++
 examples/introspection/python/query-sync.py  |    9 +++++
 4 files changed, 111 insertions(+), 0 deletions(-)
---
diff --git a/examples/introspection/python/all-async.py b/examples/introspection/python/all-async.py
new file mode 100755
index 0000000..70a3b2b
--- /dev/null
+++ b/examples/introspection/python/all-async.py
@@ -0,0 +1,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 ()
diff --git a/examples/introspection/python/miner.py b/examples/introspection/python/miner.py
new file mode 100755
index 0000000..b7944a9
--- /dev/null
+++ b/examples/introspection/python/miner.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+import gi
+from gi.repository import TrackerMiner, GLib, GObject, Gio
+
+
+class MyMiner (TrackerMiner.Miner):
+    __gtype_name__ = 'MyMiner'
+
+    def __init__ (self):
+        TrackerMiner.Miner.__init__ (self,
+                                     name="MyMiner",
+                                     progress=0,
+                                     status="fine")
+        # This shouldn't be needed, but at the moment the
+        # overrided methods are not called
+        self.connect ("started", self.started_cb)
+
+        # Say to initable that we are ok
+        self.init (None)
+
+    def started (self, x):
+        print "override started"
+
+    def started_cb (self, x):
+        print "started as callback"
+
+    def stopped (self):
+        print "override stopped"
+
+    def resumed (self):
+        print "override resumed"
+
+    def paused (self):
+        print "override paused"
+
+    def progress (self):
+        print "override progress"
+
+    def ignore_next_update (self):
+        print "override ignore next updated"
+
+
+if __name__ == "__main__":
+    m = MyMiner ()
+    m.start ()
+
+    GObject.MainLoop().run ()
diff --git a/examples/introspection/python/query-async.py b/examples/introspection/python/query-async.py
new file mode 100755
index 0000000..be5ede5
--- /dev/null
+++ b/examples/introspection/python/query-async.py
@@ -0,0 +1,25 @@
+#!/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 ()
+
+
+if __name__ == "__main__":
+    loop = GObject.MainLoop ()
+
+    # The connection can be requested asynchronously
+    conn = Tracker.SparqlConnection.get (None)
+    conn.query_async ("SELECT ?u WHERE { ?u a nie:InformationElement. }",
+                      None,
+                      results_ready_cb,
+                      loop)
+
+    loop.run ()
diff --git a/examples/introspection/python/query-sync.py b/examples/introspection/python/query-sync.py
new file mode 100755
index 0000000..cf8bfd6
--- /dev/null
+++ b/examples/introspection/python/query-sync.py
@@ -0,0 +1,9 @@
+#!/usr/bin/env python
+import gi
+from gi.repository import Tracker
+
+conn = Tracker.SparqlConnection.get (None)
+cursor = conn.query ("SELECT ?u WHERE { ?u a nie:InformationElement. }", None)
+
+while (cursor.next (None)):
+    print cursor.get_string (0)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]