Sindbad~EG File Manager
�
(ΜgR- � �b � d dl mZ d dlmZ G d� dej � Z G d� d� Zd� Zy) � )�deque)�asyncorec � � e Zd Z dZdZdZdZdd�Zd� Zd� Z d� Z
d � Zd
� Zd� Z
d� Zd
� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zy)�
async_chati r zlatin-1Nc � � d| _ g | _ t � | _ t j
j
| ||� y �N� )�ac_in_buffer�incomingr �
producer_fifor �
dispatcher�__init__)�self�sock�maps �2/usr/local/lib/python3.12/test/support/asynchat.pyr zasync_chat.__init__J s7 � ����
��
� #�W������$�$�T�4��5r c � � t d� ��Nzmust be implemented in subclass��NotImplementedError�r �datas r �collect_incoming_dataz async_chat.collect_incoming_dataX � � �!�"C�D�Dr c �: � | j j |� y �N)r �appendr s r �_collect_incoming_dataz!async_chat._collect_incoming_data[ s � ��
�
���T�"r c �Z � dj | j � }| j d d �= |S r )�joinr )r �ds r � _get_datazasync_chat._get_data^ s% � ��H�H�T�]�]�#���M�M�!���r c � � t d� �r r �r s r �found_terminatorzasync_chat.found_terminatorc r r c �� � t |t � r*| j rt || j � }|| _ y t |t
� r|dk rt
d� �|| _ y )Nr z-the number of received bytes must be positive)�
isinstance�str�use_encoding�bytes�encoding�int�
ValueError�
terminator)r �terms r �set_terminatorzasync_chat.set_terminatorf sY � � � �d�C� �T�%6�%6���t�}�}�-�D� ��� ��c�
"�t�a�x��L�M�M���r c � � | j S r )r. r$ s r �get_terminatorzasync_chat.get_terminatorq s � ����r c � � | j | j � }t |t � r&| j rt t | j � }| j |z | _
| j �r�t | j � }| j � }|s$| j | j � d| _
�n�t |t � r�|}||k r8| j | j � d| _
| j |z
| _ �n4| j | j d | � | j |d | _
d| _ | j! � n�t |� }| j j# |� }|dk7 rK|dkD r| j | j d | � | j ||z d | _
| j! � ntt% | j |� }|r:||k7 r4| j | j d | � | j | d | _
y | j | j � d| _
| j r���y y # t $ r Y y t $ r | j � Y y w xY w)Nr r ���)�recv�ac_in_buffer_size�BlockingIOError�OSError�handle_errorr'