File: //lib64/python3.6/site-packages/zmq/devices/__pycache__/proxydevice.cpython-36.opt-1.pyc
3
VS�_I � @ st d Z ddlZddlmZmZmZ G dd� de�ZG dd� dee�ZG dd � d ee�Z G d
d� dee�Z
dd dgZdS )zProxy classes and functions.� N)�Device�ThreadDevice�
ProcessDevicec @ sN e Zd ZdZejfdd�Zdd� Zdd� Zdd � Z d
d� Z
dd
� Zdd� ZdS )� ProxyBasez"Base class for overriding methods.c C s, t j| ||d� || _g | _g | _g | _d S )N)�in_type�out_type)r �__init__�mon_type�
_mon_binds�
_mon_connects�
_mon_sockopts)�selfr r r � r �#/usr/lib64/python3.6/proxydevice.pyr
s
zProxyBase.__init__c C s | j j|� dS )zaEnqueue ZMQ address for binding on mon_socket.
See zmq.Socket.bind for details.
N)r
�append)r
�addrr r r �bind_mon s zProxyBase.bind_monc O s( | j |f|�|�}| jd||f � |S )z�Enqueue a random port on the given interface for binding on
mon_socket.
See zmq.Socket.bind_to_random_port for details.
.. versionadded:: 18.0
z%s:%i)Z_reserve_random_portr )r
r �args�kwargsZportr r r �bind_mon_to_random_port s z!ProxyBase.bind_mon_to_random_portc C s | j j|� dS )zgEnqueue ZMQ address for connecting on mon_socket.
See zmq.Socket.connect for details.
N)r r )r
r r r r �connect_mon* s zProxyBase.connect_monc C s | j j||f� dS )zfEnqueue setsockopt(opt, value) for mon_socket
See zmq.Socket.setsockopt for details.
N)r r )r
�opt�valuer r r �setsockopt_mon1 s zProxyBase.setsockopt_monc C s~ t j| �\}}| j}|j| j�}x| jD ]\}}|j||� q(W x| jD ]}|j|� qHW x| j D ]}|j
|� qbW |||fS )N)r �_setup_socketsZ_contextZsocketr r Z
setsockoptr
Zbindr Zconnect)r
�ins�outsZctx�monsr r Zifacer r r r 8 s zProxyBase._setup_socketsc C s | j � \}}}tj|||� d S )N)r �zmq�proxy)r
r r r r r r �
run_deviceI s zProxyBase.run_deviceN)
�__name__�
__module__�__qualname__�__doc__r ZPUBr r r r r r r r r r r r
s r c @ s e Zd ZdZdS )�Proxya� Threadsafe Proxy object.
See zmq.devices.Device for most of the spec. This subclass adds a
<method>_mon version of each <method>_{in|out} method, for configuring the
monitor socket.
A Proxy is a 3-socket ZMQ Device that functions just like a
QUEUE, except each message is also sent out on the monitor socket.
A PUB socket is the most logical choice for the mon_socket, but it is not required.
N)r! r"