Your IP : 18.191.192.250
o
6��f - � @ s\ d dl Z d dlmZ d dlmZ ededd� G dd� de j�ZG d d
� d
�Zdd� Z dS )
� N)�deque)�warnzlThe asynchat module is deprecated and will be removed in Python 3.12. The recommended replacement is asyncio� )�
stacklevelc @ s� e Zd Z dZdZdZdZd'dd�Zdd� Zd d
� Z dd� Z
d
d� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� ZdS )(�
async_chati r zlatin-1Nc C s( d| _ g | _t� | _tj�| ||� d S �N� )�ac_in_buffer�incomingr �
producer_fifo�asyncore�
dispatcher�__init__)�selfZsock�map� r �//opt/alt/python310/lib64/python3.10/asynchat.pyr K s zasync_chat.__init__c C � t d���Nzmust be implemented in subclass��NotImplementedError�r �datar r r �collect_incoming_dataY � z async_chat.collect_incoming_datac C s | j �|� d S �N)r
�appendr r r r �_collect_incoming_data\ s z!async_chat._collect_incoming_datac C s d� | j�}| jd d �= |S r )�joinr
)r �dr r r � _get_data_ s zasync_chat._get_datac C r r r �r r r r �found_terminatord r zasync_chat.found_terminatorc C sD t |t�r| jrt|| j�}n
t |t�r|dk rtd��|| _d S )Nr z-the number of received bytes must be positive)�
isinstance�str�use_encoding�bytes�encoding�int�
ValueError�
terminator)r Ztermr r r �set_terminatorg s
zasync_chat.set_terminatorc C s | j S r )r* r! r r r �get_terminatorr s zasync_chat.get_terminatorc C s� z| � | j�}W n ty Y d S ty | �� Y d S w t|t�r.| jr.tt| j �}| j
| | _
| j
r�t| j
�}| �� }|sL| �
| j
� d| _
n�t|t�r�|}||k rg| �
| j
� d| _
| j| | _np| �
| j
d |� � | j
|d � | _
d| _| �� nVt|�}| j
�|�}|dkr�|dkr�| �
| j
d |� � | j
|| d � | _
| �� n+t| j
|�}|r�||kr�| �
| j
d | � � | j
| d � | _
d S | �
| j
� d| _
| j
s7d S d S )Nr r ���)Zrecv�ac_in_buffer_size�BlockingIOError�OSError�handle_errorr# r$ r% r&