o
    BŠ]é  ã                   @   s   G d d„ de ƒZdS )c                   @   s>   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ ZdS )ÚCacheé   c                 C   s8   || _ d| _|d | _| jr| jpd| _i | _i | _d S )Né    é
   é   )Ú_Cache__maxSizeÚ_Cache__sizeÚ_Cache__chopSizeÚ_Cache__cacheÚ_Cache__usage)ÚselfZmaxSize© r   ú./usr/lib/python3/dist-packages/pysnmp/cache.pyÚ__init__   s   

zCache.__init__c                 C   s
   || j v S ©N)r	   ©r   Úkr   r   r   Ú__contains__   s   
zCache.__contains__c                 C   s   | j |  d7  < | j| S ©Nr   )r
   r	   r   r   r   r   Ú__getitem__   s   
zCache.__getitem__c                 C   s   | j S r   )r   )r   r   r   r   Ú__len__   s   zCache.__len__c                 C   sˆ   | j | jkr,t| j| jfdd„d}|d | j… D ]
}| j|= | j|= q|  j | j8  _ || jvr=|  j d7  _ d| j|< || j|< d S )Nc                 S   s   ||  S r   r   )ÚxÚdr   r   r   Ú<lambda>    s    z#Cache.__setitem__.<locals>.<lambda>)Úkeyr   r   )r   r   Úsortedr
   r   r	   )r   r   ÚvZ	usageKeysZ_kr   r   r   Ú__setitem__   s   


zCache.__setitem__c                 C   s"   | j |= | j|= |  jd8  _d S r   )r	   r
   r   r   r   r   r   Ú__delitem__*   s   zCache.__delitem__N)r   )	Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r   r      s    
r   N)Úobjectr   r   r   r   r   Ú<module>   s   
