dbus/python/examples gconf-proxy-service2.py, NONE, 1.1 Makefile.am, 1.2, 1.3 example-service.py, 1.4, 1.5 gconf-proxy-service.py, 1.1, 1.2

Seth Nickell seth at pdx.freedesktop.org
Sun May 30 01:21:00 PDT 2004


Update of /cvs/dbus/dbus/python/examples
In directory pdx:/tmp/cvs-serv3242/python/examples

Modified Files:
	Makefile.am example-service.py gconf-proxy-service.py 
Added Files:
	gconf-proxy-service2.py 
Log Message:
2004-05-30  Seth Nickell  <seth at gnome.org>

	* python/dbus.py:

	Add a nicer-but-less-flexible alternate API for handling 
	calls to virtual objects in dbus.ObjectTree.

	Screw up the argument order to the dbus.Object constructor
	for consistency with dbus.ObjectTree (and to make dbus_methods
	optional for future extension)
	
	* python/examples/Makefile.am:
	* python/examples/gconf-proxy-service.py:
	* python/examples/gconf-proxy-service2.py:

	Alternate implementation of gconf-proxy-service using the
	nicer dbus.ObjectTree API.
	
	* python/examples/example-service.py:
	* python/tests/test-server.py

	Reverse the argument order to deal with dbus.Object constructor
	changes.


--- NEW FILE: gconf-proxy-service2.py ---
import dbus

import gtk
import gconf

class GConfService(dbus.Service):

    def __init__(self):
        dbus.Service.__init__(self, "org.gnome.GConf", dbus.SessionBus())

        gconf_object_tree = self.GConfObjectTree(self)
        
    class GConfObjectTree(dbus.ObjectTree):
        def __init__(self, service):
            dbus.ObjectTree.__init__(self, "/org/gnome/GConf", service)

            self.client = gconf.client_get_default()

        def object_method_called(self, object_path, method_name, argument_list):
            print ("Method %s called on GConf key %s" % (method_name, object_path))

            if "getString" == method_name:
                return self.client.get_string(object_path)
            elif "setString" == method_name:
                self.client.set_int(object_path, argument_list[0])
            elif "getInt" == method_name:
                return self.client.get_int(object_path)                
            elif "setInt" == method_name:
                self.client.set_int(object_path, argument_list[0])

gconf_service = GConfService()

print ("GConf Proxy service started.")
print ("Run 'gconf-proxy-client.py' to fetch a GConf key through the proxy...")

gtk.main()

Index: Makefile.am
===================================================================
RCS file: /cvs/dbus/dbus/python/examples/Makefile.am,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- a/Makefile.am	30 May 2004 02:26:48 -0000	1.2
+++ b/Makefile.am	30 May 2004 08:20:58 -0000	1.3
@@ -6,6 +6,7 @@
 	example-signal.py	\
 	gconf-proxy-client.py	\
 	gconf-proxy-service.py	\
+	gconf-proxy-service2.py	\
 	list-system-services.py \
 	$(NULL)
 

Index: example-service.py
===================================================================
RCS file: /cvs/dbus/dbus/python/examples/example-service.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- a/example-service.py	30 May 2004 06:26:24 -0000	1.4
+++ b/example-service.py	30 May 2004 08:20:58 -0000	1.5
@@ -5,7 +5,7 @@
 
 class SomeObject(dbus.Object):
     def __init__(self, service):
-        dbus.Object.__init__(self, "/SomeObject", [self.HelloWorld], service)
+        dbus.Object.__init__(self, "/SomeObject", service, [self.HelloWorld])
 
     def HelloWorld(self, hello_message):
         print (hello_message)

Index: gconf-proxy-service.py
===================================================================
RCS file: /cvs/dbus/dbus/python/examples/gconf-proxy-service.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- a/gconf-proxy-service.py	30 May 2004 02:26:48 -0000	1.1
+++ b/gconf-proxy-service.py	30 May 2004 08:20:58 -0000	1.2
@@ -11,35 +11,27 @@
         gconf_object_tree = self.GConfObjectTree(self)
         
     class GConfObjectTree(dbus.ObjectTree):
-
         def __init__(self, service):
-            dbus.ObjectTree.__init__(self, "/org/gnome/GConf", service)
+            dbus.ObjectTree.__init__(self, "/org/gnome/GConf", service, dbus_methods=[ self.getString, self.setString, self.getInt, self.setInt ])
 
             self.client = gconf.client_get_default()
-            
-        def object_method_called(self, object_path, method_name, argument_list):
-            print ("Method %s called on GConf key %s" % (method_name, object_path))
 
-            return_value = None
+        def getString(self, object_path):
+            print ("getString called on GConf key %s" % (object_path))
+            return self.client.get_string(object_path)
 
-            if "getString" == method_name:
-                assert(len(argument_list) == 0)
-                return_value = self.client.get_string (object_path)
-                
-            elif "setString" == method_name:
-                assert(len(argument_list) == 1)
-                self.client.set_string(object_path, argument_list[0])
-                
-            elif "getInt" == method_name:
-                assert(len(argument_list) == 0)
-                return_value = self.client.get_int(object_path)
-                
-            elif "setInt" == method_name:
-                assert(len(argument_list) == 1)
-                self.client.set_int(object_path, argument_list[0])
+        def setString(self, object_path, new_value):
+            print ("setString called on GConf key %s" % (object_path))            
+            self.client.set_string(object_path, new_value)
 
-            return return_value
+        def getInt(self, object_path):
+            print ("getInt called on GConf key %s" % (object_path))
+            return self.client.get_int(object_path)
 
+        def setInt(self, object_path, new_value):
+            print ("setInt called on GConf key %s" % (object_path))
+            self.client.set_int(object_path, new_value)
+            
 gconf_service = GConfService()
 
 print ("GConf Proxy service started.")




More information about the dbus-commit mailing list