File: //lib/python3/dist-packages/twisted/protocols/__pycache__/stateful.cpython-310.pyc
o
�b� � @ s. d dl mZ d dlmZ G dd� dej�ZdS )� )�BytesIO)�protocolc @ s, e Zd ZdZdZdd� Zdd� Zdd� Zd S )
�StatefulProtocola- A Protocol that stores state for you.
state is a pair (function, num_bytes). When num_bytes bytes of data arrives
from the network, function is called. It is expected to return the next
state or None to keep same state. Initial state is returned by
getInitialState (override it).
)NNr c C s$ t j�| |� | �� t� df| _d S )Nr )r �Protocol�makeConnection�getInitialStater �
_sful_data)�self� transport� r �</usr/lib/python3/dist-packages/twisted/protocols/stateful.pyr s zStatefulProtocol.makeConnectionc C s t �)N)�NotImplementedError)r r r r r s z StatefulProtocol.getInitialStatec C s� | j \}}}|�dd� |�|� |�� }|�|� || |d krG|�|d �}||d 7 }|d |�}| jjr;d S |r?|}|| |d ks"|dkr_|�� }|�d� |�� |�|� d}|||f| _ d S )Nr � � )r �seek�write�tell�readr
�
disconnecting�truncate) r �data�state�buffer�offset�blen�d�next�br r r �dataReceived s,
��
zStatefulProtocol.dataReceivedN)�__name__�
__module__�__qualname__�__doc__r r r r r r r r r s r N)�ior �twisted.internetr r r r r r r �<module> s