o
    iT                     @  s2   d dl mZ d dlZd dlmZ G dd dZdS )    )annotationsN)webc                   @  sV   e Zd Zddd
dZedddZedddZedddZdddZdddZ	dS )
HttpServerNhoststrportintloop asyncio.AbstractEventLoop | NonereturnNonec                 C  s8   |pt  | _|| _|| _tj| jd| _t  | _	d S )N)r	   )
asyncioget_event_loop_loop_host_portr   Application_appLock_lock)selfr   r   r	    r   b/var/www/html/livekit_bhavya/venv/lib/python3.10/site-packages/livekit/agents/utils/http_server.py__init__	   s
   zHttpServer.__init__web.Applicationc                 C     | j S N)r   r   r   r   r   app      zHttpServer.appc                 C  r   r   )r   r   r   r   r   r      r   zHttpServer.hostc                 C  r   r   )r   r   r   r   r   r      r   zHttpServer.portc              	     s   | j 4 I d H 7 | j }| j|| j| jI d H | _| jdkr,| jjd 	 d | _| j
 I d H  W d   I d H  d S 1 I d H sEw   Y  d S )Nr      )r   r   make_handlerr   create_serverr   r   _serversocketsgetsocknamestart_serving)r   handlerr   r   r   start   s   

.zHttpServer.startc              	     s\   | j 4 I d H  | j  | j I d H  W d   I d H  d S 1 I d H s'w   Y  d S r   )r   r#   closewait_closedr   r   r   r   aclose&   s
   
.zHttpServer.acloser   )r   r   r   r   r	   r
   r   r   )r   r   )r   r   )r   r   )r   r   )
__name__
__module____qualname__r   propertyr   r   r   r(   r+   r   r   r   r   r      s    

r   )
__future__r   r   aiohttpr   r   r   r   r   r   <module>   s    