diff options
| author | Huang Peng <shawn.p.huang@gmail.com> | 2008-09-21 16:42:12 +0800 |
|---|---|---|
| committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-09-21 16:42:12 +0800 |
| commit | ae0f70a239508b5be11a73dfe8747531a840836e (patch) | |
| tree | 8b578a8caba3ba0628fb0614c52a2382066858c6 /daemon | |
| parent | 53b7c849475d589d31500953ef4544945c824add (diff) | |
| download | ibus-ae0f70a239508b5be11a73dfe8747531a840836e.tar.gz ibus-ae0f70a239508b5be11a73dfe8747531a840836e.tar.xz ibus-ae0f70a239508b5be11a73dfe8747531a840836e.zip | |
split DBus object from ibusdaemon.py
Diffstat (limited to 'daemon')
| -rw-r--r-- | daemon/Makefile.am | 1 | ||||
| -rw-r--r-- | daemon/_dbus.py | 96 | ||||
| -rw-r--r-- | daemon/ibusdaemon.py | 77 |
3 files changed, 99 insertions, 75 deletions
diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 312e6b6..cb7d7d2 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -20,6 +20,7 @@ # Boston, MA 02111-1307 USA ibusdaemon_PYTHON = \ bus.py \ + _dbus.py \ defaultconfig.py \ config.py \ connection.py \ diff --git a/daemon/_dbus.py b/daemon/_dbus.py new file mode 100644 index 0000000..1b36627 --- /dev/null +++ b/daemon/_dbus.py @@ -0,0 +1,96 @@ +# vim:set et sts=4 sw=4: +# +# ibus - The Input Bus +# +# Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place, Suite 330, +# Boston, MA 02111-1307 USA + +import dbus +import dbus.service +import ibus + +class DBus(dbus.service.Object): + + method = lambda **args: \ + dbus.service.method(dbus_interface = dbus.BUS_DAEMON_IFACE, \ + **args) + + signal = lambda **args: \ + dbus.service.signal(dbus_interface = dbus.BUS_DAEMON_IFACE, \ + **args) + __id = 0 + + def __init__(self, conn): + super(DBus, self).__init__(conn, dbus.BUS_DAEMON_PATH) + + @method(out_signature="s") + def Hello(self): + DBus.__id += 1 + return "%d" % DBus.__id + + @method(out_signature="as") + def ListNames(self): + return [] + + @method(out_signature="as") + def ListActivatableNames(self): + return [] + + @method(in_signature="s", out_signature="as") + def NameHasOwner(self, name): + return [] + + @method(in_signature="si", out_signature="i") + def StartServiceByName(self, name, flags): + pass + + @method(in_signature="s", out_signature="s") + def GetNameOwner(self, name): + if name == dbus.BUS_DAEMON_NAME: + return dbus.BUS_DAEMON_NAME + elif name == ibus.IBUS_NAME: + return ibus.IBUS_NAME + + raise dbus.DBusException( + "org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name '%s': no such name" % name) + @method(in_signature="s", out_signature="i") + def GetConnectionUnixUser(self, connection_name): + pass + + @method(in_signature="s") + def AddMatch(self, rule): + pass + + @method(in_signature="s") + def RemoveMatch(self, rule): + pass + + @method(out_signature="s") + def GetId(self): + pass + + @signal(signature="sss") + def NameOwnerChanged(self, name, old_owner, new_owner): + pass + + @signal(signature="s") + def NameLost(self, name): + pass + + @signal(signature="s") + def NameAcquired(self, name): + pass diff --git a/daemon/ibusdaemon.py b/daemon/ibusdaemon.py index 35e854f..1d670f8 100644 --- a/daemon/ibusdaemon.py +++ b/daemon/ibusdaemon.py @@ -24,85 +24,12 @@ import sys import getopt import getpass import gobject -import dbus import dbus.server -import dbus.service -import dbus.lowlevel import dbus.mainloop.glib import ibus +from _dbus import DBus from bus import IBus -class DBus(dbus.service.Object): - - method = lambda **args: \ - dbus.service.method(dbus_interface = dbus.BUS_DAEMON_IFACE, \ - **args) - - signal = lambda **args: \ - dbus.service.signal(dbus_interface = dbus.BUS_DAEMON_IFACE, \ - **args) - __id = 0 - - def __init__(self, *args, **kargs): - super(DBus, self).__init__(*args, **kargs) - - @method(out_signature="s") - def Hello(self): - DBus.__id += 1 - return "%d" % DBus.__id - - @method(out_signature="as") - def ListNames(self): - return [] - - @method(out_signature="as") - def ListActivatableNames(self): - return [] - - @method(in_signature="s", out_signature="as") - def NameHasOwner(self, name): - return [] - - @method(in_signature="si", out_signature="i") - def StartServiceByName(self, name, flags): - pass - - @method(in_signature="s", out_signature="s") - def GetNameOwner(self, name): - if name == dbus.BUS_DAEMON_NAME: - return dbus.BUS_DAEMON_NAME - elif name == ibus.IBUS_NAME: - return ibus.IBUS_NAME - - raise dbus.DBusException( - "org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name '%s': no such name" % name) - @method(in_signature="s", out_signature="i") - def GetConnectionUnixUser(self, connection_name): - pass - - @method(in_signature="s") - def AddMatch(self, rule): - pass - - @method(in_signature="s") - def RemoveMatch(self, rule): - pass - - @method(out_signature="s") - def GetId(self): - pass - - @signal(signature="sss") - def NameOwnerChanged(self, name, old_owner, new_owner): - pass - - @signal(signature="s") - def NameLost(self, name): - pass - - @signal(signature="s") - def NameAcquired(self, name): - pass class IBusServer(dbus.server.Server): def __init__(self, *args, **kargs): @@ -128,7 +55,7 @@ class IBusServer(dbus.server.Server): def connection_added(self, dbusconn): self.__ibus.new_connection(dbusconn) - DBus(dbusconn, dbus.BUS_DAEMON_PATH) + DBus(dbusconn) def connection_removed(self, dbusconn): # do nothing. |
