� ���g��x�ddlZddlmZddlmZddlmZejd��ZGd�dej��Z dS)�N)�packet�)� base_manager�socketioc�D�eZdZdZd�Z d d�Zd�Zd d�Zd�Zd�Z d �Z dS) �Managera]Manage client connections. This class keeps track of all the clients and the rooms they are in, to support the broadcasting of messages. The data used by this class is stored in a memory structure, making it appropriate only for single process services. More sophisticated storage backends can be implemented by subclasses. c�.�|�||��S�N)� is_connected)�self�sid� namespaces �`/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/socketio/manager.py�can_disconnectzManager.can_disconnects��� � ��i�0�0�0�Nc ���|p|}||jvrdSt|t��rt|��}n|�|g}ng}t|t��s|g}|s�|j�t j||g|z���} | ���} t| t��s| g} d�| D��} |� ||��D])\} } | |vr | D]}|j� | |����*dS|� ||��D]f\} } | |vr]|� | |��}|j�t j||g|z|���} |j� | | ���gdS)zaEmit a message to a single client, a room, or all the clients connected to the namespace.N)r�datac�L�g|]!}tjtj|����"S�)� eio_packet�Packet�MESSAGE)�.0�ps r� <listcomp>z Manager.emit.<locals>.<listcomp>/s8��0�0�0��"�(��);�Q�?�?�0�0�0r)rr�id) �rooms� isinstance�tuple�list�server� packet_classr�EVENT�encode�get_participants�_send_eio_packet�_generate_ack_id� _send_packet)r �eventrr�room�skip_sid�callback�to�kwargs�pkt�encoded_packet�eio_pktr �eio_sidrrs r�emitz Manager.emits����z�T�� �D�J� &� &� �F� �d�E� "� "� ���:�:�D�D� � ��6�D�D��D��(�D�)�)� "� �z�H�� ;��+�*�*�� � ���$��+�H�H�C� �Z�Z�\�\�N��n�d�3�3� 2�"0�!1��0�0� .�0�0�0�G� $� 5� 5�i�� F� F� A� A� ��W��h�&�&�$�A�A��� �4�4�W�a�@�@�@�@�� A� A�!%� 5� 5�i�� F� F� ;� ;� ��W��h�&�&��.�.�s�H�=�=�B��+�2�2�� � ���$���3���C��K�,�,�W�c�:�:�:��  ;� ;rc �.�|�||��S)z.Register a client disconnect from a namespace.)�basic_disconnect)r r rr.s r� disconnectzManager.disconnectBs���$�$�S�)�4�4�4rc�4�|�||||���S)zAdd a client to a room.)r2)�basic_enter_room)r r rr*r2s r� enter_roomzManager.enter_roomFs���$�$�S�)�T�7�$�K�K�Krc�0�|�|||��S)zRemove a client from a room.)�basic_leave_room)r r rr*s r� leave_roomzManager.leave_roomJs���$�$�S�)�T�:�:�:rc�.�|�||��S)z$Remove all participants from a room.)�basic_close_room)r r*rs r� close_roomzManager.close_roomNs���$�$�T�9�5�5�5rc���d} |j||}|j||=n7#t$r*|����d��YnwxYw|�||�dSdS)zInvoke an application callback.Nz$Unknown callback received, ignoring.)� callbacks�KeyError� _get_logger�warning)r r rrr,s r�trigger_callbackzManager.trigger_callbackRs����� (��~�c�*�2�.�H� ��s�#�B�'�'�� � O� O� O� � � � � � &� &�'M� N� N� N� N� N� O���� � � �H�d�O�O�O�O� � s�&�1A�A)NNNNr ) �__name__� __module__� __qualname__�__doc__rr3r6r9r<r?rErrrrr s���������1�1�1�@D�#�*;�*;�*;�*;�X5�5�5�L�L�L�L�;�;�;�6�6�6� � � � � rr) �logging�engineiorr�r� getLogger�default_logger� BaseManagerrrrr�<module>rPs�������)�)�)�)�)�)�������������"��"�:�.�.��S�S�S�S�S�l�&�S�S�S�S�Sr
Memory