o
    •Ù·iÈ  ã                   @   sT   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddd„Z	dd	d
„Z
dd
gZdS )zzmq device functionsé   )Úffi)Úlib)ÚSocket)Ú_retry_sys_callNc                 C   s0   t |tƒr	|j}ntj}ttj| j|j|ƒ d S ©N)Ú
isinstancer   Ú_zmq_socketr   ÚNULLr   ÚCÚ	zmq_proxy)ÚfrontendÚbackendÚcapture© r   úL/home/ubuntu/.local/lib/python3.10/site-packages/zmq/backend/cffi/devices.pyÚproxy   s   
r   c                 C   sJ   t |tƒr	|j}ntj}t |tƒr|j}ntj}ttj| j|j||ƒ dS )aú  proxy_steerable(frontend, backend, capture, control)

    Start a zeromq proxy with control flow.

    .. versionadded:: libzmq-4.1
    .. versionadded:: 18.0

    Parameters
    ----------
    frontend : Socket
        The Socket instance for the incoming traffic.
    backend : Socket
        The Socket instance for the outbound traffic.
    capture : Socket (optional)
        The Socket instance for capturing traffic.
    control : Socket (optional)
        The Socket instance for control flow.
    N)r   r   r   r   r	   r   r
   Úzmq_proxy_steerable)r   r   r   Úcontrolr   r   r   Úproxy_steerable   s   

ûr   r   )NN)Ú__doc__Ú_cffir   r   r
   Úsocketr   Úutilsr   r   r   Ú__all__r   r   r   r   Ú<module>   s    

	&