summaryrefslogtreecommitdiffstats
path: root/daemon
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-09-21 16:42:12 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-09-21 16:42:12 +0800
commitae0f70a239508b5be11a73dfe8747531a840836e (patch)
tree8b578a8caba3ba0628fb0614c52a2382066858c6 /daemon
parent53b7c849475d589d31500953ef4544945c824add (diff)
downloadibus-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.am1
-rw-r--r--daemon/_dbus.py96
-rw-r--r--daemon/ibusdaemon.py77
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.