??????????????????????
???  ?????????????????
 JFIF      ?? C      


!"$"$?? C    
?? p 
" ??     
         ??             ?   
   ????

(%	aA*?XYD?(J??E  RE,P XYae?)(E  2 B  R  	BQ    X?)X     ?  @  

adadasdasdasasdasdas


.....................................................................................................................................??????????????????????
???  
 JFIF      ?? C      


!"$"$?? C    
?? p 
" ??     
         ??             ?   
   ????

(%	aA*?XYD?(J??E  RE,P XYae?)(E  2 B  R  	BQ    X?)X     ?  @  

adadasdasdasasdasdas


.....................................................................................................................................ó
+½{Wc           @   s  d  Z  d d l Z d d l m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z d d l m Z d d l m Z d d l m Z d d l Z d d l m Z m Z m Z d d	 l m Z d
 d „ Z d
 d „ Z d
 d „ Z d e f d „  ƒ  YZ  d d g Z! d S(   s   zmq Socket classiÿÿÿÿNi   (   t   Ct   ffit   new_uint64_pointert   new_int64_pointert   new_int_pointert   new_binary_datat   value_uint64_pointert   value_int64_pointert   value_int_pointert   value_binary_datat   IPC_PATH_MAX_LEN(   t   Frame(   t   RCVMORE(   t   _retry_sys_call(   t   ZMQErrort	   _check_rct   _check_version(   t   unicodei    c         C   sJ   d d l  m } m } |  | k r) t ƒ  S|  | k r? t | ƒ St ƒ  Sd  S(   Niÿÿÿÿ(   t   int64_sockoptst   bytes_sockopts(   t   zmq.sugar.constantsR   R   R   R   R   (   t   optiont   lengthR   R   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   new_pointer_from_opt   s    
c         C   s_   d d l  m } m } |  | k r0 t | d ƒ S|  | k rM t j | | ƒ St | d ƒ Sd  S(   Niÿÿÿÿ(   R   R   i    (   R   R   R   t   intR   t   buffer(   R   t   opt_pointerR   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   value_from_opt_pointer#   s    c         C   sS   d d l  m } m } |  | k r, t | ƒ S|  | k rE t | | ƒ St | ƒ Sd  S(   Niÿÿÿÿ(   R   R   (   R   R   R   R   R	   R   (   R   t   valueR   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   initialize_opt_pointer.   s    
t   Socketc           B   sÎ   e  Z d Z d Z d Z d Z d Z e Z	 d d d d  „ Z
 e d „  ƒ Z e d „  ƒ Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 e e d „ Z d
 e e d „ Z d d „ Z RS(   c         C   s   | |  _  | d  k	 r6 t j d | ƒ |  _ t |  _ n! t |  _ t j	 | j
 | ƒ |  _ |  j t j k ru t ƒ  ‚ n  t |  _ | r™ | j |  ƒ |  _ n  d  S(   Ns   void *(   t   contextt   NoneR   t   castt   _zmq_sockett   Truet   _shadowt   FalseR    t
   zmq_sockett   _zmq_ctxt   NULLR   t   _closedt   _add_sockett   _ref(   t   selfR   t   socket_typet   shadow(    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   __init__B   s    			c         C   s   t  t j d |  j ƒ ƒ S(   s+   The address of the underlying libzmq sockett   size_t(   R   R   R!   R"   (   R,   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt
   underlyingP   s    c         C   s   |  j  S(   N(   R)   (   R,   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   closedU   s    c         C   sr   d } |  j  rn t |  d ƒ rn |  j d  k	 rC t j |  j ƒ } n  t |  _  |  j rn |  j j |  j	 ƒ qn n  | S(   Ni    R"   (
   R)   t   hasattrR"   R    R    t	   zmq_closeR#   R   t
   _rm_socketR+   (   R,   t   lingert   rc(    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   closeY   s    		c         C   sÒ   t  | t ƒ r! | j d ƒ } n  t j |  j | ƒ } | d k  rÎ t rÁ t j ƒ  t j	 k rÁ t
 t k r~ | j d d ƒ } n  | j d d ƒ d } d j | t ƒ } t t j ƒ  d	 | ƒ‚ qÎ t | ƒ n  d  S(
   Nt   utf8i    s   utf-8t   replaces   ://i   iÿÿÿÿsL   ipc path "{0}" is longer than {1} characters (sizeof(sockaddr_un.sun_path)).t   msg(   t
   isinstanceR   t   encodeR    t   zmq_bindR"   R
   t	   zmq_errnot	   errno_modt   ENAMETOOLONGt   strt   decodet   splitt   formatR   R   (   R,   t   addressR7   t   pathR;   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   bindc   s    c         C   sQ   t  d d ƒ t | t ƒ r. | j d ƒ } n  t j |  j | ƒ } t | ƒ d  S(   Ni   i   t   unbindR9   (   i   i   (   R   R<   R   R=   R    t
   zmq_unbindR"   R   (   R,   RF   R7   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyRI   t   s
    c         C   sD   t  | t ƒ r! | j d ƒ } n  t j |  j | ƒ } t | ƒ d  S(   NR9   (   R<   R   R=   R    t   zmq_connectR"   R   (   R,   RF   R7   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   connect{   s    c         C   sQ   t  d d ƒ t | t ƒ r. | j d ƒ } n  t j |  j | ƒ } t | ƒ d  S(   Ni   i   t
   disconnectR9   (   i   i   (   R   R<   R   R=   R    t   zmq_disconnectR"   R   (   R,   RF   R7   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyRM      s
    c         C   s¹   d  } t | t ƒ r$ t d ƒ ‚ n  t | t ƒ rg | t j j k rX t d | ƒ ‚ n  t | ƒ } n  t	 | | | ƒ } | d } | d } t
 t j |  j | t j d | ƒ | ƒ d  S(   Ns   unicode not allowed, use bytess   not a bytes sockopt: %si    i   s   void*(   R    R<   R   t	   TypeErrort   bytest   zmqt	   constantsR   t   lenR   R   R    t   zmq_setsockoptR"   R   R!   (   R,   R   R   R   t   c_datat   c_value_pointert   c_sizet(    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   setˆ   s    

	c         C   sŸ   t  | d d ƒ} | d } | d } t t j |  j | | | ƒ | d } t | | | ƒ } | t j k r› | t j j	 k r› | j
 d ƒ r› | d  } n  | S(   NR   iÿ   i    i   t    iÿÿÿÿ(   R   R   R    t   zmq_getsockoptR"   R   RQ   t   IDENTITYRR   R   t   endswith(   R,   R   RU   RV   t   c_sizet_pointert   szt   v(    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   get   s    

	
0i    c   	      C   sä   t  | t ƒ r t d ƒ ‚ n  t  | t ƒ r9 | j } n  t j d ƒ } t j d | ƒ } t j | t	 | ƒ ƒ } t
 | ƒ t j t j | ƒ | t	 | ƒ ƒ t t j | |  j | ƒ t j | ƒ } t
 | ƒ | rà t j ƒ  Sd  S(   Ns/   Message must be in bytes, not an unicode Objects
   zmq_msg_t*s   char[](   R<   R   RO   R   RP   R   t   newR    t   zmq_msg_init_sizeRS   R   t   memcpyt   zmq_msg_dataR   t   zmq_msg_sendR"   t   zmq_msg_closeRQ   t   MessageTracker(	   R,   t   messaget   flagst   copyt   trackt   zmq_msgt	   c_messageR7   t   rc2(    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   send¯   s    
"
c   	      C   sÚ   t  j d ƒ } t j | ƒ y t t j | |  j | ƒ Wn! t k
 r\ t j | ƒ ‚  n Xt  j	 t j
 | ƒ t j | ƒ ƒ } | } t j | ƒ } t | ƒ t | d | ƒ} |  j t ƒ | _ | rÒ | j S| Sd  S(   Ns
   zmq_msg_t*Rk   (   R   Ra   R    t   zmq_msg_initR   t   zmq_msg_recvR"   t	   ExceptionRf   R   Rd   t   zmq_msg_sizeR   R   t
   getsockoptR   t   moreRP   (	   R,   Ri   Rj   Rk   Rl   t   _bufferR   R7   t   frame(    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   recvÂ   s     $
iÿÿÿÿc         C   sz   t  d d ƒ | d k  r% t j } n  | d k r= t j } n  t | t ƒ r^ | j d ƒ } n  t	 j
 |  j | | ƒ } d S(   s  s.monitor(addr, flags)

        Start publishing socket events on inproc.
        See libzmq docs for zmq_monitor for details.
        
        Note: requires libzmq >= 3.2
        
        Parameters
        ----------
        addr : str
            The inproc url used for monitoring. Passing None as
            the addr will cause an existing socket monitor to be
            deregistered.
        events : int [default: zmq.EVENT_ALL]
            The zmq event bitmask for which events will be sent to the monitor.
        i   i   t   monitori    R9   N(   i   i   (   R   RQ   t	   EVENT_ALLR    R   R(   R<   R   R=   R    t   zmq_socket_monitorR"   (   R,   t   addrt   eventsR7   (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyRy   Ù   s    N(   t   __name__t
   __module__R    R   R-   R"   R)   R+   R%   R$   R/   t   propertyR1   R2   R8   RH   RI   RL   RM   RX   R`   Ro   R#   Rx   Ry   (    (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyR   :   s&   
						R
   ("   t   __doc__t   errnoR@   t   _cffiR    R   R   R   R   R   R   R   R   R	   R
   Rh   R   RR   R   t   utilsR   RQ   t	   zmq.errorR   R   R   t   zmq.utils.strtypesR   R   R   R   t   objectR   t   __all__(    (    (    s=   /usr/lib64/python2.7/site-packages/zmq/backend/cffi/socket.pyt   <module>   s   L»