o
    ªZh$  ã                   @   s\   d Z ddlmZ ddlmZ ddlmZ ddlmZ dd„ Z	dd	d
„Z
ddd„Zg d¢ZdS )zzmq device functionsé   )Úffi)Úlib)ÚSocket)Ú_retry_sys_callc                 C   s
   t ||ƒS ©N)Úproxy)Zdevice_typeÚfrontendÚbackend© r
   úO/var/www/html/lang_env/lib/python3.10/site-packages/zmq/backend/cffi/devices.pyÚdevice   s   
r   Nc                 C   s0   t |tƒr	|j}ntj}ttj| j|j|ƒ d S r   )Ú
isinstancer   Ú_zmq_socketr   ÚNULLr   ÚCZ	zmq_proxy)r   r	   Úcapturer
   r
   r   r      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   Zzmq_proxy_steerable)r   r	   r   Úcontrolr
   r
   r   Úproxy_steerable   s   

ûr   )r   r   r   r   )NN)Ú__doc__Z_cffir   r   r   Úsocketr   Úutilsr   r   r   r   Ú__all__r
   r
   r
   r   Ú<module>   s    

	&