use constants for DBUS busname and object path

This commit is contained in:
Patrick Ulbrich
2013-06-13 16:30:01 +02:00
parent 68d4f92825
commit 47fdd466d0
2 changed files with 15 additions and 15 deletions

View File

@@ -24,30 +24,33 @@
import dbus
import dbus.service
DBUS_BUS_NAME = 'mailnag.MailnagService'
DBUS_OBJ_PATH = '/mailnag/MailnagService'
# DBUS server that exports mailnag signals end methods
class DBUSService(dbus.service.Object):
def __init__(self, shutdown_cb):
self._mails = []
self._shutdown_cb = shutdown_cb
bus_name = dbus.service.BusName('mailnag.MailnagService', bus = dbus.SessionBus())
dbus.service.Object.__init__(self, bus_name, '/mailnag/MailnagService')
bus_name = dbus.service.BusName(DBUS_BUS_NAME, bus = dbus.SessionBus())
dbus.service.Object.__init__(self, bus_name, DBUS_OBJ_PATH)
def set_mails(self, mails):
self._mails = mails
@dbus.service.signal(dbus_interface = 'mailnag.MailnagService', signature = 'u')
@dbus.service.signal(dbus_interface = DBUS_BUS_NAME, signature = 'u')
def MailsAdded(self, new_count):
pass
@dbus.service.signal(dbus_interface = 'mailnag.MailnagService', signature = 'u')
@dbus.service.signal(dbus_interface = DBUS_BUS_NAME, signature = 'u')
def MailsRemoved(self, new_count):
pass
@dbus.service.method(dbus_interface = 'mailnag.MailnagService', out_signature = 'aa{sv}')
@dbus.service.method(dbus_interface = DBUS_BUS_NAME, out_signature = 'aa{sv}')
def GetMails(self):
mails = []
for m in self._mails:
@@ -62,11 +65,11 @@ class DBUSService(dbus.service.Object):
return mails
@dbus.service.method(dbus_interface = 'mailnag.MailnagService', out_signature = 'u')
@dbus.service.method(dbus_interface = DBUS_BUS_NAME, out_signature = 'u')
def GetMailCount(self):
return len(self._mails)
@dbus.service.method(dbus_interface = 'mailnag.MailnagService')
@dbus.service.method(dbus_interface = DBUS_BUS_NAME)
def Shutdown(self):
self._shutdown_cb()

View File

@@ -36,7 +36,7 @@ from common.config import read_cfg, cfg_exists, cfg_folder
from common.utils import set_procname, is_online
from common.accountlist import AccountList
from daemon.mailchecker import MailChecker
from daemon.dbusservice import DBUSService
from daemon.dbusservice import DBUSService, DBUS_BUS_NAME, DBUS_OBJ_PATH
from daemon.idlers import Idlers
mainloop = None
@@ -60,22 +60,19 @@ def wait_for_inet_connection():
def shutdown_existing_instance():
BUS_NAME = 'mailnag.MailnagService'
OBJ_PATH = '/mailnag/MailnagService'
bus = dbus.SessionBus()
if bus.name_has_owner(BUS_NAME):
if bus.name_has_owner(DBUS_BUS_NAME):
sys.stdout.write('Shutting down existing Mailnag process...')
sys.stdout.flush()
try:
proxy = bus.get_object(BUS_NAME, OBJ_PATH)
shutdown = proxy.get_dbus_method('Shutdown', BUS_NAME)
proxy = bus.get_object(DBUS_BUS_NAME, DBUS_OBJ_PATH)
shutdown = proxy.get_dbus_method('Shutdown', DBUS_BUS_NAME)
shutdown()
while bus.name_has_owner(BUS_NAME):
while bus.name_has_owner(DBUS_BUS_NAME):
time.sleep(2)
sys.stdout.write('OK\n')