#!/usr/bin/python import gobject import sys import dbus import dbus.service import dbus.mainloop.glib class Agent(dbus.service.Object): def __init__(self, conn=None, obj_path=None): dbus.service.Object.__init__(self, conn, obj_path) @dbus.service.method("org.openobex.Agent", in_signature="o", out_signature="s") def Request(self, path): print "Transfer started" transfer = dbus.Interface(bus.get_object("org.openobex.client", path), "org.openobex.Transfer") properties = transfer.GetProperties() for key in properties.keys(): print " %s = %s" % (key, properties[key]) return "" @dbus.service.method("org.openobex.Agent", in_signature="ot", out_signature="") def Progress(self, path, transferred): print "Transfer progress (%d bytes)" % (transferred) return @dbus.service.method("org.openobex.Agent", in_signature="o", out_signature="") def Complete(self, path): print "Transfer finished" return @dbus.service.method("org.openobex.Agent", in_signature="os", out_signature="") def Error(self, path, error): print "Transfer finished with an error: %s" % (error) return @dbus.service.method("org.openobex.Agent", in_signature="", out_signature="") def Release(self): mainloop.quit() return if __name__ == '__main__': dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SessionBus() client = dbus.Interface(bus.get_object("org.openobex.client", "/"), "org.openobex.Client") if (len(sys.argv) < 3): print "Usage: %s [file*]" % (sys.argv[0]) sys.exit(1) path = "/test/agent" agent = Agent(bus, path) mainloop = gobject.MainLoop() client.SendFiles({ "Destination": sys.argv[1] }, sys.argv[2:], path) mainloop.run()