
Qc           @   s   d  d l  Z  d  d l Z d  d l Z d d	 d     YZ d   Z e d k r d  d l Z e j e j e j  Z	 e	 j
 d
  e	 j   Z e e  Z e j e j e j  Z e j
 d  e j   Z e j e g g  g  d e  e j   Z e e  GHn  d S(   iNt   NonBlockingFilec           B   s8   e  Z d    Z d   Z d d  Z d   Z d   Z RS(   c         C   s\   | |  _  t j |  j  j   t j t j  g  |  _ g  |  _ g  |  _ d  |  _
 d  |  _ d  S(   N(   t   fdt   fcntlt   filenot   F_SETFLt   ost   O_NDELAYt   read_fd_sett   write_fd_sett
   exc_fd_sett   Nonet	   user_datat   callback(   t   selfR   (    (    s3   /usr/lib/python2.7/site-packages/rhn/nonblocking.pyt   __init__   s    	"				c         C   sd   | |  _  x0 |  j  D]% } t j | j   t j t j  q W| |  _ | |  _ | |  _ | |  _	 d  S(   N(
   R   R   R   R   R   R   R   R	   R   R   (   R   R   R   R	   R   R   t   f(    (    s3   /usr/lib/python2.7/site-packages/rhn/nonblocking.pyt   set_callback   s    	#			i    c         C   s   x d } |  j  |  j g } |  j } |  j } d G| GHt j | | |  \ } } } d G| G| G| GH|  j | k r d } | j |  j  n  |  j r | s | s | r |  j | | | |  j  n  | r Pq q d GH|  j j |  S(   Ni    s   Calling selects   Select returnedi   t	   Returning(	   R   R   R   R	   t   selectt   removeR   R   t   read(   R   t   amtt   status_changedt   readfdst   writefdst   excfds(    (    s3   /usr/lib/python2.7/site-packages/rhn/nonblocking.pyR   "   s"    			c         C   s   |  j  j |  S(   N(   R   t   write(   R   t   data(    (    s3   /usr/lib/python2.7/site-packages/rhn/nonblocking.pyR   8   s    c         C   s   t  |  j |  S(   N(   t   getattrR   (   R   t   name(    (    s3   /usr/lib/python2.7/site-packages/rhn/nonblocking.pyt   __getattr__;   s    (   t   __name__t
   __module__R   R   R   R   R   (    (    (    s3   /usr/lib/python2.7/site-packages/rhn/nonblocking.pyR    
   s
   			c         C   s$   d G|  G| G| GH|  d j    GHd  S(   Ns   Callback calledi    (   R   (   t   rt   wt   eR   (    (    s3   /usr/lib/python2.7/site-packages/rhn/nonblocking.pyR   >   s    t   __main__t	   localhosti  i  (    (   R%   i  (   R%   i  (   R   R   R   R    R   R   t   sockett   AF_INETt   SOCK_STREAMt   st   connectt   makefileR   t   sst   s2R   R
   R   t   xxt   len(    (    (    s3   /usr/lib/python2.7/site-packages/rhn/nonblocking.pyt   <module>   s    4	