File: //opt/alt/python37/lib/python3.7/site-packages/exabgp/bgp/__pycache__/timer.cpython-37.pyc
B
RP�e� � @ s` d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ G dd� de�Z G d d
� d
e�Z
dS )z�
timer.py
Created by Thomas Mangin on 2012-07-21.
Copyright (c) 2009-2017 Exa Networks. All rights reserved.
License: 3-clause BSD. (See the COPYRIGHT file)
� N)�Logger)�_NOP)� KeepAlive)�Notifyc @ s6 e Zd Zd dd�Zeejfdd�Zeejfdd�ZdS )
�ReceiveTimer� c C sD t � | _|| _|| _d| _tt�� �| _|| _|| _ || _
d| _d S )Nr F)r �logger�session�holdtime�
last_print�int�time� last_read�code�subcode�message�single)�selfr r
r r r � r �A/opt/alt/python37/lib/python3.7/site-packages/exabgp/bgp/timer.py�__init__ s zReceiveTimer.__init__c C s� | j dkr|jtjkS tt�� �}|j|kr2|| _|| j }|| j krXt| j| j| j ��| j
|kr�| j | }| jjd| d| �
� d� || _
dS )Nr zreceive-timer %d second(s) leftzka-)�sourceT)r
�TYPEr r r
r r r r r r r �debugr )r r �ignore�now�elapsed�leftr r r �check_ka_timer# s
zReceiveTimer.check_ka_timerc C s, | � ||�rd S | jr"tddd��d| _d S )N� � zLNegotiated holdtime was zero, it was invalid to send us a keepalive messagesT)r r r )r r r r r r �check_ka2 s
zReceiveTimer.check_kaN)r )�__name__�
__module__�__qualname__r r r r r! r r r r r s
r c @ s e Zd Zdd� Zdd� ZdS )� SendTimerc C s8 t � | _|| _|�� | _tt�� �| _tt�� �| _d S )N)r r r � keepaliver r
r � last_sent)r r r
r r r r ; s
zSendTimer.__init__c C sh | j s
dS tt�� �}| j| j | }|| jkrR| jjd| d| �� d� || _|dkrd|| _dS dS )NFzsend-timer %d second(s) leftzka-)r r T)r&