U
    ‰dŠ  ã                   @   s^   d dl mZ d dlmZ dddgZdgZG dd„ deƒZdd„ Zdd
d„Z	G dd„ deƒZ
dS )é    )Úabsolute_import)ÚQueueÚClientÚListenerÚPipeNc                   @   sB   e Zd Zddd„Zdd„ Zdd„ Zed	d
„ ƒZdd„ Zdd„ Z	dS )r   Né   c                 C   s   t |ƒ| _d S ©N)r   Ú_backlog_queue)ÚselfÚaddressÚfamilyÚbacklog© r   ú=/tmp/pip-unpacked-wheel-lulkwrw3/billiard/dummy/connection.pyÚ__init__-   s    zListener.__init__c                 C   s   t | j ¡ Ž S r   )Ú
Connectionr	   Úget©r
   r   r   r   Úaccept0   s    zListener.acceptc                 C   s
   d | _ d S r   ©r	   r   r   r   r   Úclose3   s    zListener.closec                 C   s   | j S r   r   r   r   r   r   Ú<lambda>6   ó    zListener.<lambda>c                 C   s   | S r   r   r   r   r   r   Ú	__enter__8   s    zListener.__enter__c                 G   s   |   ¡  d S r   )r   )r
   Úexc_infor   r   r   Ú__exit__;   s    zListener.__exit__)NNr   )
Ú__name__Ú
__module__Ú__qualname__r   r   r   Úpropertyr   r   r   r   r   r   r   r   +   s   
c                 C   s&   t ƒ t ƒ  }}|  ||f¡ t||ƒS r   )r   Úputr   )r   Ú_inÚ_outr   r   r   r   ?   s    Tc                 C   s"   t ƒ t ƒ  }}t||ƒt||ƒfS r   )r   r   )ZduplexÚaÚbr   r   r   r   E   s    c                   @   s&   e Zd Zdd„ Zd	dd„Zdd„ ZdS )
r   c                 C   s,   || _ || _|j | _| _|j | _| _d S r   )r"   r!   r    ÚsendZ
send_bytesr   ÚrecvZ
recv_bytes)r
   r!   r"   r   r   r   r   L   s    zConnection.__init__ç        c                 C   sR   | j  ¡ dkrdS |dkrdS | j j ¡  | j j |¡ | j j ¡  | j  ¡ dkS )Nr   Tr'   F)r!   ÚqsizeÚ	not_emptyÚacquireÚwaitÚrelease)r
   Útimeoutr   r   r   ÚpollR   s    zConnection.pollc                 C   s   d S r   r   r   r   r   r   r   \   s    zConnection.closeN)r'   )r   r   r   r   r.   r   r   r   r   r   r   J   s   

r   )T)Ú
__future__r   Zbilliard.fiver   Ú__all__ZfamiliesÚobjectr   r   r   r   r   r   r   r   Ú<module>"   s   

