File: //lib64/python3.6/site-packages/zmq/sugar/__pycache__/socket.cpython-36.pyc
3
VS�_;l � @ s* d Z ddlZddlZddlZddlZddlmZ ddlZddlm Z
ddlmZ ddl
mZ ddlmZ dd lmZmZ dd
lmZ ddlmZmZmZ ddlmZmZmZmZmZmZm Z yddl!Z!e!Z"W n dZ!ddl"Z"Y nX y
e"j#Z#W n e$k
�r e"j%Z#Y nX G d
d� de
e�Z dgZ&dS )z0MQ Socket pure Python methods.� N)�contextmanager)�Socket� )�Poller)� constants)�AttributeSetter)�ZMQError�ZMQBindError)�jsonapi)�bytes�unicode�
basestring)�SNDMORE�ENOTSUP�POLLIN�int64_sockopt_names�int_sockopt_names�bytes_sockopt_names�fd_sockopt_namesc s� e Zd ZdZdZdZ� fdd�Zdd� Zdd � Zd
d� Z dUdd
�Z
e
Zedd� �Z
dV� fdd� Zedd� �Zedd� �Z� fdd�Z� fdd�Zedd� �Zdd� ZejZejZ� fdd�Zd d!� Zd"d#� Zd$d%� ZdWd'd(�Z e Z!Z"dXd)d*�Z#e# Z$Z%dYd.d/�Z&d0d1� Z'd2d3� Z(ee'e(d4�Z)dZ� fd7d8� Z*d[d9d:�Z+d\d;d<�Z,d=d>� Z-d]d?d@�Z.d^dAdB�Z/d_dCdD�Z0e0Z1d`dEdF�Z2e2Z3d5e4fdGdH�Z5dadIdJ�Z6dbdKdL�Z7dcdMdN�Z8e9Z:de;fdOdP�Z<dddQdR�Z=dSdT� Z>� Z?S )er z�The ZMQ socket object
To create a Socket, first create a Context::
ctx = zmq.Context.instance()
then call ``ctx.socket(socket_type)``::
s = ctx.socket(zmq.ROUTER)
FNc s, t t| �j||� d|kr"d| _nd| _d S )N�shadowTF)�superr �__init__�_shadow)�self�a�kw)� __class__� �/usr/lib64/python3.6/socket.pyr ; s zSocket.__init__c C s | j s| j� d S )N)r �close)r r r r �__del__B s zSocket.__del__c C s | S )zMSockets are context managers
.. versionadded:: 14.4
r )r r r r � __enter__G s zSocket.__enter__c O s | j � d S )N)r )r �args�kwargsr r r �__exit__N s zSocket.__exit__c C s | j j| j�S )z&Copying a Socket creates a shadow copy)r r Z
underlying)r �memor r r �__copy__U s zSocket.__copy__c C s ddl m} ||�}| |d�S )z�Shadow an existing libzmq socket
address is the integer address of the libzmq socket
or an FFI pointer to it.
.. versionadded:: 14.1
r )�
cast_int_addr)r )Zzmq.utils.interopr'