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   U/home/ubuntu/veenaModal/venv/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    

	&