ó
L]c           @   sƒ   d  Z  d d l Z d d l m Z m Z d d l m Z m Z m Z d d l	 m
 Z
 m Z m Z d e f d „  ƒ  YZ d g Z d S(	   s   zmq Context classiÿÿÿÿNi   (   t   Ct   ffi(   t   EINVALt
   IO_THREADSt   LINGER(   t   ZMQErrort   InterruptedSystemCallt	   _check_rct   Contextc           B   sh   e  Z d Z d Z d Z e Z d  d d „ Z e	 d „  ƒ Z
 e	 d „  ƒ Z d „  Z d „  Z d „  Z RS(   i   c         C   s­   | r' t  j d | ƒ |  _ t |  _ n3 t |  _ | d k sK t t ƒ ‚ n  t j	 ƒ  |  _ |  j t  j
 k r t t j ƒ  ƒ ‚ n  | s  t j |  j t | ƒ n  t |  _ d  S(   Ns   void *i    (   R   t   castt   _zmq_ctxt   Truet   _shadowt   FalseR   R   R    t   zmq_ctx_newt   NULLt	   zmq_errnot   zmq_ctx_setR   t   _closed(   t   selft
   io_threadst   shadow(    (    s7   lib/python2.7/site-packages/zmq/backend/cffi/context.pyt   __init__   s    	c         C   s   t  t j d |  j ƒ ƒ S(   s,   The address of the underlying libzmq contextt   size_t(   t   intR   R	   R
   (   R   (    (    s7   lib/python2.7/site-packages/zmq/backend/cffi/context.pyt
   underlying&   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   lib/python2.7/site-packages/zmq/backend/cffi/context.pyt   closed+   s    c         C   s&   t  j |  j | | ƒ } t | ƒ d S(   s>   set a context option
        
        see zmq_ctx_set
        N(   R    R   R
   R   (   R   t   optiont   valuet   rc(    (    s7   lib/python2.7/site-packages/zmq/backend/cffi/context.pyt   set/   s    c         C   s#   t  j |  j | ƒ } t | ƒ | S(   s<   get context option
        
        see zmq_ctx_get
        (   R    t   zmq_ctx_getR
   R   (   R   R   R   (    (    s7   lib/python2.7/site-packages/zmq/backend/cffi/context.pyt   get7   s    
c         C   sW   |  j  r d  St j |  j ƒ } y t | ƒ Wn t k
 r@ n Xd  |  _ t |  _ d  S(   N(	   R   R    t   zmq_ctx_destroyR
   R   R   t   NoneR   R   (   R   R   (    (    s7   lib/python2.7/site-packages/zmq/backend/cffi/context.pyt   term@   s    		N(   t   __name__t
   __module__R"   R
   t
   _iothreadsR   R   R   R   t   propertyR   R   R   R    R#   (    (    (    s7   lib/python2.7/site-packages/zmq/backend/cffi/context.pyR      s   			(   t   __doc__t   weakreft   _cffiR    R   t	   constantsR   R   R   t	   zmq.errorR   R   R   t   objectR   t   __all__(    (    (    s7   lib/python2.7/site-packages/zmq/backend/cffi/context.pyt   <module>   s   @