o
    ͷ6i
                     @   sp   d dl mZ d dlmZ d dlmZmZ ddlmZ G dd dZ	G dd	 d	Z
G d
d dZG dd dZdS )    )
SSLContext)TracebackType)OptionalType   )TimeoutDictc                   @   s|   e Zd ZdZdefddZdedededd fdd	Z	d
e
dedefddZdededdfddZdddZdefddZdS )AsyncSocketStreamz
    A socket stream with read/write operations. Abstracts away any asyncio-specific
    interfaces into a more generic base class, that we can use with alternate
    backends, or for stand-alone test cases.
    returnc                 C      t  NNotImplementedErrorself r   \/var/www/hoanhtaovolam_webdjango/env/lib/python3.10/site-packages/httpcore/_backends/base.pyget_http_version      z"AsyncSocketStream.get_http_versionhostnamessl_contexttimeoutc                       t  r   r   )r   r   r   r   r   r   r   	start_tls   s   zAsyncSocketStream.start_tlsnc                    r   r   r   )r   r   r   r   r   r   read      zAsyncSocketStream.readdataNc                    r   r   r   )r   r   r   r   r   r   write   r   zAsyncSocketStream.writec                    r   r   r   r   r   r   r   aclose   r   zAsyncSocketStream.aclosec                 C   r
   r   r   r   r   r   r   is_connection_dropped    r   z'AsyncSocketStream.is_connection_droppedr	   N)__name__
__module____qualname____doc__strr   bytesr   r   r   intr   r   r   boolr   r   r   r   r   r      s     

r   c                	   @   sT   e Zd ZdZdddZ			ddee dededdfd	d
ZdddZ	dddZ
dS )	AsyncLockz1
    An abstract interface for Lock classes.
    r	   Nc                    s   |   I d H  d S r   )acquirer   r   r   r   
__aenter__)   s   zAsyncLock.__aenter__exc_type	exc_value	tracebackc                    s   |    d S r   )release)r   r,   r-   r.   r   r   r   	__aexit__,   s   zAsyncLock.__aexit__c                 C   r
   r   r   r   r   r   r   r/   4   r   zAsyncLock.releasec                    r   r   r   r   r   r   r   r*   7   r   zAsyncLock.acquirer    )NNN)r!   r"   r#   r$   r+   r   BaseExceptionr   r0   r/   r*   r   r   r   r   r)   $   s"    


r)   c                   @   s.   e Zd ZdZd	deddfddZd
ddZdS )AsyncSemaphorezj
    An abstract interface for Semaphore classes.
    Abstracts away any asyncio-specific interfaces.
    Nr   r	   c                    r   r   r   )r   r   r   r   r   r*   A   r   zAsyncSemaphore.acquirec                 C   r
   r   r   r   r   r   r   r/   D   r   zAsyncSemaphore.releaser   r    )r!   r"   r#   r$   floatr*   r/   r   r   r   r   r2   ;   s    r2   c                
   @   s`   e Zd Zdededee dedef
ddZ	de
fdd	Zd
ededefddZdefddZdS )AsyncBackendr   portr   r   r	   c                    r   r   r   )r   r   r5   r   r   r   r   r   open_tcp_streamI   s   zAsyncBackend.open_tcp_streamc                 C   r
   r   r   r   r   r   r   create_lockR   r   zAsyncBackend.create_lock	max_value	exc_classc                 C   r
   r   r   )r   r8   r9   r   r   r   create_semaphoreU   r   zAsyncBackend.create_semaphorec                 C   r
   r   r   r   r   r   r   timeX   r   zAsyncBackend.timeN)r!   r"   r#   r&   r'   r   r   r   r   r6   r)   r7   typer2   r:   r3   r;   r   r   r   r   r4   H   s    
	r4   N)sslr   typesr   typingr   r   _typesr   r   r)   r2   r4   r   r   r   r   <module>   s    