File: //usr/lib/python3/dist-packages/twisted/test/__pycache__/proto_helpers.cpython-38.pyc
U
W[p � @ sP d Z ddlmZmZ ddlmZmZ ddlmZ ddl m
Z
mZ ddlm
Z
ddlmZ ddlmZmZmZ dd lmZ dd
lmZmZmZmZmZmZmZmZmZm Z m!Z! ddl"m#Z# ddl$m%Z% dd
l&m'Z' ddl(m)Z)m*Z*m+Z+m,Z, ddl-m.Z. ddl/m0Z0m1Z1m2Z2 ddl3m4Z4 G dd� de)j5�Z6G dd� de'j7�Z8G dd� d�Z9e
eee�G dd� d��Z:G dd� de:�Z;G dd� de�Z<e
e �G dd� de=��Z>e
e�G d d!� d!e=��Z?e
eeeeee!�G d"d#� d#e=��Z@ee@�D ]ZAe
eAe@� �q�G d$d%� d%e@e.�ZBe
eeee�G d&d'� d'e=��ZCG d(d)� d)e=�ZDd*d+� ZEe
e4�G d,d-� d-e��ZFd.S )/zJ
Assorted functionality which is commonly useful when writing unit tests.
� )�division�absolute_import)�AF_INET�AF_INET6)�BytesIO)�implementer�
implementedBy)�verifyClass)�failure)�unicode�
intToBytes�Sequence)�Deferred)�
ITransport� IConsumer�
IPushProducer�
IConnector�IReactorCore�IReactorTCP�IReactorSSL�IReactorUNIX�IReactorSocket�IListeningPort�
IReactorFDSet)�
isIPv6Address)�UnsupportedAddressFamily)�basic)�protocol�error�address�task)�Clock)�IPv4Address�UNIXAddress�IPv6Address)�ILogObserverc @ s@ e Zd ZdZd ZZdZdZdZdZ dd� Z
dd� Zd d
� ZdS )�AccumulatingProtocolad
L{AccumulatingProtocol} is an L{IProtocol} implementation which collects
the data delivered to it and can fire a Deferred when it is connected or
disconnected.
@ivar made: A flag indicating whether C{connectionMade} has been called.
@ivar data: Bytes giving all the data passed to C{dataReceived}.
@ivar closed: A flag indicated whether C{connectionLost} has been called.
@ivar closedReason: The value of the I{reason} parameter passed to
C{connectionLost}.
@ivar closedDeferred: If set to a L{Deferred}, this will be fired when
C{connectionLost} is called.
r N� c C s: d| _ | jd k r6| jjd k r6| jj}d | j_|�| � d S �N� )�made�factoryZprotocolConnectionMade�callback��self�d� r0 �</usr/lib/python3/dist-packages/twisted/test/proto_helpers.py�connectionMade: s
�z#AccumulatingProtocol.connectionMadec C s | j |7 _ d S �N)�data�r. r4 r0 r0 r1 �dataReceivedB s z!AccumulatingProtocol.dataReceivedc C s2 d| _ || _| jd k r.| jd }| _|�d � d S r( )�closed�closedReason�closedDeferredr, )r. �reasonr/ r0 r0 r1 �connectionLostE s
z#AccumulatingProtocol.connectionLost)
�__name__�
__module__�__qualname__�__doc__r* r7 r8 r9 r4 r+ r2 r6 r; r0 r0 r0 r1 r&