dbus/python/examples gconf-proxy-client.py, NONE, 1.1 gconf-proxy-service.py, NONE, 1.1 Makefile.am, 1.1, 1.2

Seth Nickell seth at pdx.freedesktop.org
Sat May 29 19:26:50 PDT 2004


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

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

	* python/dbus.py:

	Add ObjectTree class which allows implementation
	of trees of "virtual" objects. Basically the python
	wrapper for "register_fallback".
	
	* python/examples/Makefile.am
	* python/examples/gconf-proxy-client.py:
	* python/examples/gconf-proxy-service.py:

	Implement a simple GConf proxy service that supports
	get/set on string and int GConf keys using the ObjectTree.
	


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

gconf_key = "/desktop/gnome/file_views/icon_theme"

bus = dbus.SessionBus()
gconf_service = bus.get_service("org.gnome.GConf")
gconf_key_object = gconf_service.get_object("/org/gnome/GConf" + gconf_key, "org.gnome.GConf")

value = gconf_key_object.getString()

print ("Value of GConf key %s is %s" % (gconf_key, value))

--- NEW FILE: gconf-proxy-service.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))

            return_value = None

            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])

            return return_value

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.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- a/Makefile.am	28 May 2004 18:43:55 -0000	1.1
+++ b/Makefile.am	30 May 2004 02:26:48 -0000	1.2
@@ -4,6 +4,8 @@
 	example-service.py 	\
 	example-client.py	\
 	example-signal.py	\
+	gconf-proxy-client.py	\
+	gconf-proxy-service.py	\
 	list-system-services.py \
 	$(NULL)
 




More information about the dbus-commit mailing list