o
    BŠ]²  ã                   @   s$   d dl Z e  ¡  G dd„ deƒZdS )é    Nc                   @   s*   e Zd ZdZd
dd„Zdd„ Zdd„ Zd	S )ÚIntegerz2Return a next value in a reasonably MT-safe manneré   c                 C   sN   || _ ||kr	|}|| _|d | _t | j | j ¡}tt||| j ƒƒ| _d S )Né   )Ú_Integer__maximumÚ_Integer__incrementÚ_Integer__thresholdÚrandomZ	randrangeÚlistÚrangeÚ_Integer__bank)ÚselfZmaximumZ	incrementÚe© r   ú//usr/lib/python3/dist-packages/pysnmp/nextid.pyÚ__init__   s   
zInteger.__init__c                 C   s   d| j j| j| jf S )Nz
%s(%d, %d))Ú	__class__Ú__name__r   r   )r   r   r   r   Ú__repr__   s
   ýzInteger.__repr__c                 C   sR   | j  d¡}|| j r|S | j d d }|| jkrd}| j  t||| j ƒ¡ |S )Nr   éÿÿÿÿé   )r   Úpopr   r   Úextendr
   )r   Úvr   r   r   r   Ú__call__   s   

zInteger.__call__N)r   )r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r      s
    
	r   )r   ZseedÚobjectr   r   r   r   r   Ú<module>   s   