
    >a                     @    S SK Jr  SSKJrJr  SSKJr   " S S5      rg)    )warn   )MessageTypeHeaderFields)DBusErrorResponsec                   h    \ rS rSrSrSS jr\S 5       r\R                  S 5       rS r	S r
S	 rS
rg)Router   aC  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.
Nc                 F    Xl         X l        SU l        0 U l        0 U l        g )Nr   )handle_factory_on_unhandledoutgoing_serialawaiting_replysignal_callbacks)selfr   on_unhandleds      /lib/python3.13/site-packages/jeepney/routing.py__init__Router.__init__   s&    ,)   "    c                     U R                   $ N)r   )r   s    r   r   Router.on_unhandled   s    !!!r   c                 $    [        SSS9  Xl        g )NzeSetting on_unhandled is deprecated. Please use the filter() method or simple receive() calls instead.   
stacklevel)r   r   )r   values     r   r   r      s     9EF	H"r   c                    U =R                   S-  sl         U R                   UR                  l        UR                  R                  [        R
                  L a5  U R                  5       =U R                  UR                  R                  '   nU$ g)zNSet the serial number in the message & make a handle if a method call
        r   N)r   headerserialmessage_typer   method_callr   r   )r   msghandles      r   outgoingRouter.outgoing   sq     	! 00

::""k&=&==>B>Q>Q>SSD

 1 12VM >r   c                 8    [        SSS9  XR                  X#U4'   g)z%Add a callback for a signal.
        zQThe subscribe_signal() method is deprecated. Please use the filter() API instead.r   r   N)r   r   )r   callbackpath	interfacemembers        r   subscribe_signalRouter.subscribe_signal)   s(     	 4@A	C;Ct78r   c                 n   UR                   nUR                  [        R                  L a  UR                  R                  [        R                  S5      UR                  R                  [        R                  S5      UR                  R                  [        R                  S5      4nU R                  R                  US5      nUb  U" UR                  5        gUR                  R                  [        R                  S5      nU R                  R                  US5      nUbq  UR                  [        R                  L a  UR!                  UR                  5        gUR                  [        R"                  L a  UR%                  ['        U5      5        gU R(                  (       a  U R)                  U5        gg)z#Route an incoming message.
        N)r    r"   r   signalfieldsgetr   r*   r+   r,   r   bodyreply_serialr   popmethod_return
set_resulterrorset_exceptionr   r   )r   r$   hdrkeycbr5   reply_handles          r   incomingRouter.incoming0   sI    jj {111::>>,"3"3T:::>>,"8"8$?::>>,"5"5t<C &&**35B~388 zz~~l&?&?D**..|TB#;#<#<<''1!![%6%66**+<S+ABc" r   )r   r   r   r   r   r   )__name__
__module____qualname____firstlineno____doc__r   propertyr   setterr&   r-   r?   __static_attributes__ r   r   r	   r	      sJ    # " " # #
D#r   r	   N)warningsr   	low_levelr   r   wrappersr   r	   rI   r   r   <module>rM      s     0 'F# F#r   