o
    Ìv›a  ã                   @   sL   d Z ddlmZ ddlmZ i add„ ZG dd„ deƒZG dd	„ d	eƒZd
S )zThe timer manager.é    )Útime)Údatetimec                 C   s.   t ƒ }t | ¡}|sd}n|| }|t| < |S )z*Return the elapsed time since last update.é   )r   Úlast_update_timesÚget)ZIOTypeZcurrent_timeZ	last_timeZtime_since_update© r   ú//usr/lib/python3/dist-packages/glances/timer.pyÚgetTimeSinceLastUpdate   s   
r	   c                   @   sB   e Zd ZdZdd„ Zdd„ Zddd„Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTimerz&The timer class. A simple chronometer.c                 C   s   || _ |  ¡  d S ©N)ÚdurationÚstart©Úselfr   r   r   r   Ú__init__/   s   zTimer.__init__c                 C   s   t ƒ | j | _d S r   )r   r   Útarget©r   r   r   r   r   3   ó   zTimer.startNc                 C   s   |d ur	|   |¡ |  ¡  d S r   )Úsetr   r   r   r   r   Úreset6   s   
zTimer.resetc                 C   s   | j | jtƒ   S r   )r   r   r   r   r   r   r   r   ;   r   z	Timer.getc                 C   s
   || _ d S r   )r   r   r   r   r   r   >   s   
z	Timer.setc                 C   s   t ƒ | jkS r   )r   r   r   r   r   r   ÚfinishedA   ó   zTimer.finishedr   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r   r   r
   +   s    
r
   c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚCounterzThe counter class.c                 C   ó   |   ¡  d S r   ©r   r   r   r   r   r   I   r   zCounter.__init__c                 C   s   t  ¡ | _d S r   )r   Únowr   r   r   r   r   r   L   s   zCounter.startc                 C   r   r   r   r   r   r   r   r   O   r   zCounter.resetc                 C   s   t  ¡ | j  ¡ S r   )r   r   r   Ztotal_secondsr   r   r   r   r   R   r   zCounter.getN)r   r   r   r   r   r   r   r   r   r   r   r   r   E   s    r   N)r   r   r   r   r	   Úobjectr
   r   r   r   r   r   Ú<module>   s   