
    f$                     V    d Z ddlmZ ddlmZ ddlmZ ddlmZ d Z	ddZ
dd	Zg d
Zy)zzmq device functions   )ffi)lib)Socket)_retry_sys_callc                     t        ||      S N)proxy)device_typefrontendbackends      S/var/www/cvtools/html/venv/lib/python3.12/site-packages/zmq/backend/cffi/devices.pydevicer      s    7##    Nc                     t        |t              r|j                  }nt        j                  }t        t        j                  | j                  |j                  |       y r   )
isinstancer   _zmq_socketr   NULLr   C	zmq_proxy)r   r   captures      r   r	   r	      s>    '6"%%((AKK!5!5w7J7JGTr   c                    t        |t              r|j                  }nt        j                  }t        |t              r|j                  }nt        j                  }t        t        j                  | j                  |j                  ||       y)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   controls       r   proxy_steerabler      si    & '6"%%(('6"%%((	r   )r   r	   r   r   )NN)__doc___cffir   r   r   socketr   utilsr   r   r	   r   __all__ r   r   <module>r!      s.    
    "$U#L 1r   