def call_method(self, path, member, interface=None, format=None, args=None, destination=None, callback=None, timeout=None): """Call a method.""" if '.' in member: member, interface = self._split_member(member) if interface is None: raise Exception('you need to specify the interface') message = _tdbus.Message(_tdbus.DBUS_MESSAGE_TYPE_METHOD_CALL, path=path, member=member, interface=interface, destination=destination) if format is not None: message.set_args(format, args) if callback is None: message.set_no_reply(True) self._connection.send(message) else: if timeout is None: timeout = -1 else: timeout = int(1000 * timeout) deferred = self._connection.send_with_reply(message, timeout) deferred.set_notify(callback)
def send_method_return(self, message, format=None, args=None): """Send a method call return.""" reply = _tdbus.Message(_tdbus.DBUS_MESSAGE_TYPE_METHOD_RETURN, reply_serial=message.get_serial(), destination=message.get_sender()) if format is not None: reply.set_args(format, args) self._connection.send(reply)
def send_error(self, message, error_name, format=None, args=None): """Send an error reply.""" reply = _tdbus.Message(_tdbus.DBUS_MESSAGE_TYPE_ERROR, reply_serial=message.get_serial(), destination=message.get_sender(), error_name=error_name) if format is not None: reply.set_args(format, args) self._connection.send(reply)
def send_signal(self, path, member, interface=None, format=None, args=None, destination=None): """Send a signal.""" if '.' in member: member, interface = self._split_member(member) if interface is None: raise Exception('you need to specify the interface') message = _tdbus.Message(_tdbus.DBUS_MESSAGE_TYPE_SIGNAL, member=member, interface=interface, path=path) if destination is not None: message.set_destination(destination) if format is not None: message.set_args(format, args) self._connection.send(message)