Blame test/dbus/monitor_contents_changes.py

Packit Service ce9802
# monitor_contents_changes
Packit Service ce9802
#
Packit Service ce9802
# Copyright (C) 2012-2017 Intel Corporation. All rights reserved.
Packit Service ce9802
#
Packit Service ce9802
# This program is free software; you can redistribute it and/or modify it
Packit Service ce9802
# under the terms and conditions of the GNU Lesser General Public License,
Packit Service ce9802
# version 2.1, as published by the Free Software Foundation.
Packit Service ce9802
#
Packit Service ce9802
# This program is distributed in the hope it will be useful, but WITHOUT
Packit Service ce9802
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
Packit Service ce9802
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
Packit Service ce9802
# for more details.
Packit Service ce9802
#
Packit Service ce9802
# You should have received a copy of the GNU Lesser General Public License
Packit Service ce9802
# along with this program; if not, write to the Free Software Foundation, Inc.,
Packit Service ce9802
# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
Packit Service ce9802
#
Packit Service ce9802
# Regis Merlino <regis.merlino@intel.com>
Packit Service ce9802
#
Packit Service ce9802
Packit Service ce9802
import gobject
Packit Service ce9802
import dbus
Packit Service ce9802
import dbus.mainloop.glib
Packit Service ce9802
import json
Packit Service ce9802
Packit Service ce9802
def print_properties(props):
Packit Service ce9802
    print json.dumps(props, indent=4, sort_keys=True)
Packit Service ce9802
Packit Service ce9802
def properties_changed(iface, changed, invalidated, path):
Packit Service ce9802
    print "PropertiesChanged signal from {%s} [%s]" % (iface, path)
Packit Service ce9802
    print "Changed:"
Packit Service ce9802
    print_properties(changed)
Packit Service ce9802
    print "Invalidated:"
Packit Service ce9802
    print_properties(invalidated)
Packit Service ce9802
Packit Service ce9802
def container_update(id_list, path, interface):
Packit Service ce9802
    iface = interface[interface.rfind(".") + 1:]
Packit Service ce9802
    print "ContainerUpdateIDs signal from {%s} [%s]" % (iface, path)
Packit Service ce9802
    for (id_path, sys_id) in id_list:
Packit Service ce9802
        print "-->\t %s : %u" % (id_path, sys_id)
Packit Service ce9802
Packit Service ce9802
if __name__ == '__main__':
Packit Service ce9802
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
Packit Service ce9802
Packit Service ce9802
    bus = dbus.SessionBus()
Packit Service ce9802
Packit Service ce9802
    bus.add_signal_receiver(properties_changed,
Packit Service ce9802
                            bus_name="com.intel.dleyna-server",
Packit Service ce9802
                            signal_name = "PropertiesChanged",
Packit Service ce9802
                            path_keyword="path")
Packit Service ce9802
    bus.add_signal_receiver(container_update,
Packit Service ce9802
                            bus_name="com.intel.dleyna-server",
Packit Service ce9802
                            signal_name = "ContainerUpdateIDs",
Packit Service ce9802
                            path_keyword="path",
Packit Service ce9802
                            interface_keyword="interface")
Packit Service ce9802
Packit Service ce9802
    mainloop = gobject.MainLoop()
Packit Service ce9802
    mainloop.run()