~dobey/changeup/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -*- coding: utf-8 -*-
#
# Author: Rodney Dawes <rodney.dawes@canonical.com>
#
# Copyright 2009 Canonical Ltd.
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 3, as published
# by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranties of
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
# PURPOSE.  See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program.  If not, see <http://www.gnu.org/licenses/>.
import dbus

CHANGEUP_BUS_NAME = 'org.freedesktop.ChangeUp'


def register_restart_handler(appname, handler):
    """Register a restart handler for ChangeUp."""
    def restart_handler(app):
        if app == appname:
            handler()

    bus = dbus.SystemBus()
    bus.add_signal_receiver(handler_function=restart_handler,
                            signal_name='RestartDispatched',
                            dbus_interface=CHANGEUP_BUS_NAME)