o ` @s:ddlmZddlmZmZddlmZGdddZdS))warn) MessageType HeaderFields)DBusErrorResponsec@sLeZdZdZdddZeddZejddZdd Zd d Z d d Z dS)Routera[Routing for messages coming back to a client application. :param handle_factory: Constructor for an object like asyncio.Future, with methods *set_result* and *set_exception*. Outgoing method call messages will get a handle associated with them. :param on_unhandled: Callback for messages not otherwise dispatched. NcCs"||_||_d|_i|_i|_dS)Nr)handle_factory _on_unhandledoutgoing_serialawaiting_replysignal_callbacks)selfr on_unhandledr1/usr/lib/python3/dist-packages/jeepney/routing.py__init__s  zRouter.__init__cCs|jSN)r )r rrrrszRouter.on_unhandledcCstddd||_dS)NzeSetting on_unhandled is deprecated. Please use the filter() method or simple receive() calls instead. stacklevel)rr )r valuerrrrs cCsD|jd7_|j|j_|jjtjur ||j|jj<}|SdS)zNSet the serial number in the message & make a handle if a method call rN)r headerserial message_typer method_callrr )r msghandlerrroutgoings  zRouter.outgoingcCs tddd||j|||f<dS)z%Add a callback for a signal. zQThe subscribe_signal() method is deprecated. Please use the filter() API instead.rrN)rr )r callbackpath interfacememberrrrsubscribe_signal)szRouter.subscribe_signalcCs|j}|jtjur2|jtjd|jtjd|jtj df}|j |d}|dur2||j dS|jtj d}|j |d}|durb|jtjurS||j dS|jtjurb|t|dS|jrl||dSdS)z#Route an incoming message. N)rrrsignalfieldsgetrrr r!r body reply_serialr pop method_return set_resulterror set_exceptionrr)r rhdrkeycbr( reply_handlerrrincoming0s,     zRouter.incomingr) __name__ __module__ __qualname____doc__rpropertyrsetterrr"r2rrrrrs    rN)warningsr low_levelrrwrappersrrrrrrs