§
    ðžîd  ã                   óH   — d dl mZ ddlmZmZ ddlmZ  G d„ d¦  «        ZdS )é    )Úwarné   )ÚMessageTypeÚHeaderFields)ÚDBusErrorResponsec                   ób   — e Zd ZdZd	d„Zed„ ¦   «         Zej        d„ ¦   «         Zd„ Zd„ Z	d„ Z
dS )
Ú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.
    Nc                 óL   — || _         || _        d| _        i | _        i | _        d S )Nr   )Úhandle_factoryÚ_on_unhandledÚoutgoing_serialÚawaiting_replyÚsignal_callbacks)Úselfr   Úon_unhandleds      úS/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/jeepney/routing.pyÚ__init__zRouter.__init__   s0   € Ø,ˆÔØ)ˆÔØ ˆÔØ ˆÔØ "ˆÔÐÐó    c                 ó   — | j         S ©N)r   )r   s    r   r   zRouter.on_unhandled   s   € àÔ!Ð!r   c                 ó6   — t          dd¬¦  «         || _        d S )NzeSetting on_unhandled is deprecated. Please use the filter() method or simple receive() calls instead.é   ©Ú
stacklevel)r   r   )r   Úvalues     r   r   zRouter.on_unhandled   s3   € åð 9ØEFð	Hñ 	Hô 	Hð 	Hà"ˆÔÐÐr   c                 óÌ   — | xj         dz  c_         | j         |j        _        |j        j        t          j        u r*|                      ¦   «         x| j        |j        j        <   }|S dS )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   ÚoutgoingzRouter.outgoing   sh   € ð 	ÐÔ Ñ!ÐÔØ Ô0ˆŒ
ÔàŒ:Ô"¥kÔ&=Ð=Ð=Ø>B×>QÒ>QÑ>SÔ>SÐSˆDÔ ¤
Ô 1Ñ2°VØˆMð >Ð=r   c                 óB   — t          dd¬¦  «         || j        |||f<   dS )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_signalzRouter.subscribe_signal)   sA   € õ 	ð 4Ø@Að	Cñ 	Cô 	Cð 	Cà;CˆÔ˜t Y°Ð7Ñ8Ð8Ð8r   c                 ó   — |j         }|j        t          j        u r|j                             t          j        d¦  «        |j                             t          j        d¦  «        |j                             t          j	        d¦  «        f}| j
                             |d¦  «        }| ||j        ¦  «         dS |j                             t          j        d¦  «        }| j                             |d¦  «        }|f|j        t          j        u r|                     |j        ¦  «         dS |j        t          j        u r$|                     t'          |¦  «        ¦  «         dS | j        r|                      |¦  «         dS dS )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Úcbr0   Úreply_handles          r   ÚincomingzRouter.incoming0   s`  € ð Œjˆð Ô{Ô1Ð1Ð1Ø”:—>’>¥,Ô"3°TÑ:Ô:Ø”:—>’>¥,Ô"8¸$Ñ?Ô?Ø”:—>’>¥,Ô"5°tÑ<Ô<ðˆCð Ô&×*Ò*¨3°Ñ5Ô5ˆBØˆ~Ø3”8‘”Øð ”z—~’~¥lÔ&?ÀÑDÔDˆØÔ*×.Ò.¨|¸TÑBÔBˆØÐ#ØÔ¥;Ô#<Ð<Ð<Ø×'Ò'¨¬Ñ1Ô1Ð1ØØÔ!¥[Ô%6Ð6Ð6Ø×*Ò*Õ+<¸SÑ+AÔ+AÑBÔBÐBØàÔð 	#Ø×Ò˜cÑ"Ô"Ð"Ð"Ð"ð	#ð 	#r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   Úsetterr#   r)   r:   © r   r   r	   r	      sœ   € € € € € ðð ð#ð #ð #ð #ð ð"ð "ñ „Xð"ð Ôð#ð #ñ Ôð#ð
ð ð ðDð Dð Dð#ð #ð #ð #ð #r   r	   N)Úwarningsr   Ú	low_levelr   r   Úwrappersr   r	   rA   r   r   ú<module>rE      s}   ðØ Ð Ð Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðF#ð F#ð F#ð F#ð F#ñ F#ô F#ð F#ð F#ð F#r   