ó
d˜ Rc           @   s™   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l  m Z m Z m Z m Z m	 Z	 m
 Z
 d d d d g Z e Z e Z e Z d d d „  ƒ  YZ d S(	   iÿÿÿÿN(   t
   WHAT_ENTERt	   WHAT_EXITt   WHAT_LINENOt   WHAT_DEFINE_FILEt   WHAT_DEFINE_FUNCt   WHAT_ADD_INFOt	   LogReadert   ENTERt   EXITt   LINEc           B   sw   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d d	 „ Z
 d
 „  Z d „  Z d „  Z RS(   c         C   s˜   i  |  _  i  |  _ t j | ƒ |  _ |  j j |  _ |  j j |  _ d |  j k rd |  j d |  _	 n	 d  |  _	 g  |  _ |  j j |  _ |  j j |  _ d  S(   Ns   current-directory(   t   _filemapt   _funcmapt   _hotshott	   logreadert   _readert   nextt	   _nextitemt   infot   _infot   cwdt   Nonet   _stackt   appendt   _appendt   popt   _pop(   t   selft   logfn(    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyt   __init__   s    				c         C   s   |  j  j ƒ  d  S(   N(   R   t   close(   R   (    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyR   /   s    c         C   s   |  j  j ƒ  S(   s8   Return the file descriptor of the log reader's log file.(   R   t   fileno(   R   (    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyR   2   s    c         C   s   d S(   sò  This method is called for each additional ADD_INFO record.

        This can be overridden by applications that want to receive
        these events.  The default implementation does not need to be
        called by alternate implementations.

        The initial set of ADD_INFO records do not pass through this
        mechanism; this is only needed to receive notification when
        new values are added.  Subclasses can inspect self._info after
        calling LogReader.__init__().
        N(    (   R   t   keyt   value(    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyt   addinfo6   s    c         C   s0   y |  j  | SWn t k
 r+ t d ‚ n Xd  S(   Ns   unknown fileno(   R
   t   KeyErrort
   ValueError(   R   R   (    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyt   get_filenameD   s    c         C   s   |  j  j ƒ  S(   N(   R
   t   values(   R   (    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyt   get_filenamesJ   s    c         C   s[   t  j j t  j j | ƒ ƒ } x- |  j j ƒ  D] \ } } | | k r. | Sq. Wt d ‚ d  S(   Ns   unknown filename(   t   ost   patht   normcaset   normpathR
   t   itemsR#   (   R   t   filenameR   t   name(    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyt
   get_filenoM   s
    c         C   s6   y |  j  | | f SWn t k
 r1 t d ‚ n Xd  S(   Ns   unknown function location(   R   R"   R#   (   R   R   t   lineno(    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyt   get_funcnameT   s    i    c   
      C   s–  x|  j  ƒ  \ } } } } | t k rh |  j | | ƒ \ } } | | | f } |  j | ƒ | | | f S| t k r¨ y | |  j ƒ  | f SWq¨ t k
 r¤ t ‚ q¨ Xn  | t k rà |  j	 d \ } }	 } | | | | f | f S| t
 k rt j j t j j | ƒ ƒ } | |  j | <q | t k rO|  j | } | | f |  j | | f <q | t k r†| d k rs| |  _ n  |  j | | ƒ q t d ‚ q d  S(   Niÿÿÿÿs   current-directorys   unknown event type(   R   R    t   _decode_locationR   R   R   t
   IndexErrort   StopIterationR   R   R   R'   R(   R)   R*   R
   R   R   R   R   R!   R#   (
   R   t   indext   whatt   tdeltaR   R/   R,   t   funcnamet   tt   firstlineno(    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyR   _   s4    c         C   s   |  S(   N(    (   R   (    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyt   __iter__†   s    c         C   s±   y |  j  | | f SWn t k
 r¦ |  j | ƒ rA d  } } n  y |  j  | | f \ } } Wq§ t k
 r¢ |  j j | ƒ } d  } | | f |  j  | | f <q§ Xn X| | f S(   N(   R   R"   t	   _loadfileR   R
   t   get(   R   R   R/   R,   R7   (    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyR1      s    !c         C   s’  y |  j  | } Wn t k
 r. d G| GHd SX| d  k r? d St j j t j j |  j | ƒ ƒ } y t | ƒ } Wn t	 k
 r‡ d  SXt
 j | j ƒ  ƒ } | j ƒ  t j } t j } | j d ƒ g } xÀ | r| j ƒ  }	 y |	 d }
 Wn t t f k
 r
qÎ n X|
 | k rC| |	 d d f |  j | |	 d d f <n0 |
 | k rs| d f |  j | |	 d d f <n  | j t |	 d ƒ ƒ qÎ Wd  S(   Ns   Could not identify fileIdi   i    i   s   <lambda>(   R
   R"   R   R'   R(   R)   t   joinR   t   opent   IOErrort   parsert   suitet   readR   t   symbolt   funcdeft   lambdeft   totupleR   R2   t	   TypeErrorR   t   extendt   list(   R   R   R,   t   absnamet   fpt   stRD   RE   t   stackt   treet   sym(    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyR;       s8    	$
			,$(   t   __name__t
   __module__R   R   R   R!   R$   R&   R.   R0   R   R:   R1   R;   (    (    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyR      s   								'		(    (   R   t   os.pathR'   R@   RC   R    R   R   R   R   R   t   __all__R   R   R	   R   (    (    (    sV   /tmp/ndk-andrewhsieh/buildhost/install/prebuilt/linux-x86/lib/python2.7/hotshot/log.pyt   <module>   s   .	