
    2BfZ                     .    d dl Z ddlmZ  G d de      Zy)    N   )BaseManagerc                   :     e Zd ZdZd Z	 	 ddZ fdZd Z xZS )AsyncManagerz+Manage a client list for an asyncio server.c                 .   K   | j                  ||      S w)N)is_connected)selfsid	namespaces      X/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/socketio/asyncio_manager.pycan_disconnectzAsyncManager.can_disconnect   s       i00s   c           
        K   || j                   vs|| j                   |   vryg }t        |t              s|g}| j                  ||      D ]O  \  }	}
|	|vs|| j	                  |	|      }nd}|j                  | j                  j                  |
||||             Q |g k(  ryt        j                  |       d{    y7 w)zEmit a message to a single client, a room, or all the clients
        connected to the namespace.

        Note: this method is a coroutine.
        N)
rooms
isinstancelistget_participants_generate_ack_idappendserver_emit_internalasynciowait)r	   eventdatar   roomskip_sidcallbackkwargstasksr
   eio_sidids               r   emitzAsyncManager.emit   s      DJJ&$djj6K*K(D) zH 11)TB 	HLC("'..sH=BBT[[778A2G H	H B;ll5!!!s   ACA%C:C ;Cc                 ,   K   t         |   ||      S w)zXRemove all participants from a room.

        Note: this method is a coroutine.
        )super
close_room)r	   r   r   	__class__s      r   r%   zAsyncManager.close_room#   s     
 w!$	22s   c                 :  K   d}	 | j                   |   |   }| j                   |   |= |' || }t	        j
                  |      r	 | d{    yyy# t        $ r" | j                         j                  d       Y Tw xY w7 5# t        j                  $ r Y yw xY ww)zSInvoke an application callback.

        Note: this method is a coroutine.
        Nz$Unknown callback received, ignoring.)	callbacksKeyError_get_loggerwarningr   iscoroutineCancelledError)r	   r
   r!   r   r   rets         r   trigger_callbackzAsyncManager.trigger_callback*   s     
 	(~~c*2.H
 s#B'D/C""3'II (    	O&&'MN	O -- s]   BA ,BB 
B B B(A=:B<A==B B BBBB)NNN)	__name__
__module____qualname____doc__r   r"   r%   r/   __classcell__)r&   s   @r   r   r      s$    51 FJ "03    r   )r   base_managerr   r    r5   r   <module>r8      s     %7; 7r5   