ó
L]c           @   sZ  d  Z  d d l Z d d l Z d d l m Z m Z d d l m Z d d l m	 Z	 m
 Z
 d  Z d „  Z d	 „  Z e ƒ  Z e ƒ  Z d
 „  Z d g Z x; e	 D]3 Z e
 e ƒ r¿ e j e ƒ q e j d e ƒ q We j j e ƒ Z e e j j e d ƒ ƒ  Z e j ƒ  Z Wd QXe e j j e d ƒ ƒ  Z e j ƒ  Z Wd QXe j e ƒ e j e e ƒ ƒ yJ e j e d d d e d d e d d e d d e d ƒZ e ƒ  Z Wn# e  k
 rÕZ! e" d e! ƒ ‚ n Xe d! k  rõe" d e ƒ ‚ n  d „  Z# Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, e j- ƒ  Z. d S("   s    The main CFFI wrapping of libzmqiÿÿÿÿN(   t   dirnamet   join(   t   FFI(   t	   all_namest	   no_prefixi   i   c    
      C   sP  d d l  }  t |  j ƒ } t | ƒ } t | d d ƒ } t j j | ƒ rr t | ƒ  } t j	 | ƒ } Wd QXn i  } | j
 d g  ƒ | j
 d g  ƒ | j
 d g  ƒ | j
 d d	 g ƒ g  | d D] } t | ƒ ^ qÆ | d <xg d
 D]_ } g  } xF | | D]: }	 |	 j d	 ƒ r't | |	 ƒ }	 n  | j t |	 ƒ ƒ q W| | | <qé W| S(   s   load pyzmq compiler argumentsiÿÿÿÿNt   utilss   compiler.jsont   include_dirst   library_dirst   runtime_library_dirst	   librariest   zmq(   R   R   R   (   R
   R    t   __file__R   t   ost   patht   existst   opent   jsont   loadt
   setdefaultt   strt
   startswitht   append(
   R
   t   zmq_dirt
   zmq_parentt   fnamet   ft   cfgt   libt   keyt	   abs_pathst   p(    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyt   load_compiler_config   s*    'c          C   sk   t  j d ƒ }  t  j d ƒ } t  j d ƒ } t j |  | | ƒ t |  d ƒ t | d ƒ t | d ƒ f S(   s#   Get libzmq version as tuple of intss   int*i    (   t   ffit   newt   Ct   zmq_versiont   int(   t   majort   minort   patch(    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyt   zmq_version_info1   s
    c         C   s;   g  } x% |  D] } d | } | j  | ƒ q Wd j | ƒ S(   Ns   #define %s ...s   
(   R   R   (   t   namest   _namest   namet   define_line(    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyt   _make_defines?   s
    
t   PYZMQ_DRAFT_APIt   ZMQ_s   _cdefs.hs	   _verify.ct
   modulenamet	   _cffi_extR	   R   R   R   sd   PyZMQ CFFI backend couldn't find zeromq: %s
Please check that you have zeromq headers and libraries.s?   PyZMQ CFFI backend requires zeromq >= 3.2.2, but found %i.%i.%ic         C   s   t  j d |  ƒ S(   Ns   size_t*(   R    R!   (   t   length(    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyt   <lambda>k   t    c           C   s"   t  j d ƒ t t  j d ƒ ƒ f S(   Ns	   uint64_t*t   uint64_t(   R    R!   t   nspt   sizeof(    (    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyR3   m   s   c           C   s"   t  j d ƒ t t  j d ƒ ƒ f S(   Ns   int64_t*t   int64_t(   R    R!   R6   R7   (    (    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyR3   o   s   c           C   s"   t  j d ƒ t t  j d ƒ ƒ f S(   Ns   int*R$   (   R    R!   R6   R7   (    (    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyR3   q   s   c         C   s*   t  j d |  ƒ t t  j d ƒ |  ƒ f S(   Ns   char[%d]t   char(   R    R!   R6   R7   (   R2   (    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyR3   s   s   c         C   s   t  j d |  ƒ t  j d ƒ f S(   Ns	   uint64_t*R5   (   R    R!   R7   (   t   val(    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyR3   v   s   c         C   s   t  j d |  ƒ t  j d ƒ f S(   Ns   int64_t*R8   (   R    R!   R7   (   R:   (    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyR3   x   s   c         C   s   t  j d |  ƒ t  j d ƒ f S(   Ns   int*R$   (   R    R!   R7   (   R:   (    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyR3   z   s   c         C   s+   t  j d | d |  ƒ t  j d ƒ | f S(   Ns   char[%d]i   R9   (   R    R!   R7   (   R:   R2   (    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyR3   |   s   (   i   i   i   (   i   i   i   (/   t   __doc__R   R   t   os.pathR    R   t   cffiR   t   zmq.utils.constant_namesR   R   t   base_zmq_versionR   R(   R   R    R-   t   c_constant_namesR+   R   R   R   t   hereR   R   t   readt   _cdefst   _verifyt   cdeft   verifyR"   t   _version_infot	   Exceptiont   et   ImportErrorR6   t   new_sizet_pointert   new_uint64_pointert   new_int64_pointert   new_int_pointert   new_binary_datat   value_uint64_pointert   value_int64_pointert   value_int_pointert   value_binary_datat   get_ipc_path_max_lent   IPC_PATH_MAX_LEN(    (    (    s5   lib/python2.7/site-packages/zmq/backend/cffi/_cffi.pyt   <module>   s^   						


								