Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/twisted/protocols/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/twisted/protocols/__pycache__/pcp.cpython-310.pyc
o

�b�@sLdZddlmZddlmZeejej�Gdd�d��ZGdd�de�ZdS)	z
Producer-Consumer Proxy.
�)�implementer)�
interfacesc@szeZdZdZdZdZdZdZdZdZ	dZ
dd�Zdd�Zd	d
�Z
dd�Zd
d�Zdd�Zdd�Zdd�Zdefdd�ZdS)�BasicProducerConsumerProxyaa
    I can act as a man in the middle between any Producer and Consumer.

    @ivar producer: the Producer I subscribe to.
    @type producer: L{IProducer<interfaces.IProducer>}
    @ivar consumer: the Consumer I publish to.
    @type consumer: L{IConsumer<interfaces.IConsumer>}
    @ivar paused: As a Producer, am I paused?
    @type paused: bool
    NTFcCs*g|_|dur||_|�||j�dSdS�N)�_buffer�consumer�registerProducer�iAmStreaming)�selfr�r�7/usr/lib/python3/dist-packages/twisted/protocols/pcp.py�__init__#s
�z#BasicProducerConsumerProxy.__init__cCsd|_|jr
|j��dSdS�NT)�paused�producer�pauseProducing�r
rrrr+s�z)BasicProducerConsumerProxy.pauseProducingcCsXd|_|jr|j�d�|j��g|jdd�<n|jsd|_|jdur*|j��dSdS)NF�T)	rrr�write�joinr	�outstandingPullr�resumeProducingrrrrr0s
�z*BasicProducerConsumerProxy.resumeProducingcCs*|jdur
|j��|jdur|`dSdSr)r�
stopProducingrrrrrr=s



�z(BasicProducerConsumerProxy.stopProducingcCsF|js	|js|js|j�|�dS|jdur!|j�|�d|_dSdS�NF)rr	rr�appendrr�r
�datarrrrEs

�z BasicProducerConsumerProxy.writecCs |jdur
|j��|��dSr)r�finish�unregisterProducerrrrrrNs

z!BasicProducerConsumerProxy.finishcCs||_||_dSr)r�producerIsStreaming�r
r�	streamingrrrrSs
z+BasicProducerConsumerProxy.registerProducercCs*|jdur	|`|`|jr|j��dSdSr)rrrrrrrrrWs
�z-BasicProducerConsumerProxy.unregisterProducer�returncCs"d|j�dt|�d�d|j�d�S)N�<�@�xz around �>)�	__class__�idrrrrr�__repr__^s"z#BasicProducerConsumerProxy.__repr__)�__name__�
__module__�__qualname__�__doc__rrrr	rr�stoppedr
rrrrrrr�strr)rrrrrs$
	rc@sLeZdZdZdZdZdZdd�Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�ZdS)�ProducerConsumerProxyz�ProducerConsumerProxy with a finite buffer.

    When my buffer fills up, I have my parent Producer pause until my buffer
    has room in it again.
    iFcCs
d|_dSr)rrrrrros
z$ProducerConsumerProxy.pauseProducingcCs�d|_|jr5d�|j�}|�|�}|t|�kr-||d�}|jr$Jd��|g|jdd�<n
g|jdd�<nd}|jrI|rI|jsI|jdurI|j��|jsP||_	|j
dur{tdd�|jD��}|jrq||j
krqd|_|j
��dS|j	r}|j
��dSdSdS)NFr�.Streaming producer did not write all its data.rcs��|]}t|�VqdSr��len��.0�srrr�	<genexpr>���z8ProducerConsumerProxy.resumeProducing.<locals>.<genexpr>)rrr�_writeSomeDatar4r	�unregisteredrrrr�sum�producerPaused�
bufferSizer)r
r�	bytesSent�unsent�
bytesBufferedrrrrts@
�����


�
z%ProducerConsumerProxy.resumeProducingcCs�|js	|js|js|j�|�n+|jdur;|jrJd��|�|�}d|_|t|�ks;|jr1Jd��|j�||d��|jdur\|j	r^t
dd�|jD��}||jkr`|j��d|_
dSdSdSdS)Nz9Writing fresh data to consumer before my buffer is empty!Fr1csr2rr3r5rrrr8�r9z.ProducerConsumerProxy.write.<locals>.<genexpr>T)rr	rrrrr:r4rrr<r>rr=)r
rr?rArrrr�s,
��
��


�zProducerConsumerProxy.writecCs(d|_t�|||�|s|��dSdSr)r;rrrr rrrr�s
�z&ProducerConsumerProxy.registerProducercCs:|jdur	|`|`d|_|jr|js|j��dSdSdSr)rrr;rrrrrrrr�s
�z(ProducerConsumerProxy.unregisterProducercCs"|jdurdS|j�|�t|�S)z`Write as much of this data as possible.

        @returns: The number of bytes written.
        Nr)rrr4rrrrr:�s
z$ProducerConsumerProxy._writeSomeDataN)
r*r+r,r-r>r=r;rrrrrr:rrrrr0bs-r0N)	r-�zope.interfacer�twisted.internetr�	IProducer�	IConsumerrr0rrrr�<module>sS

Spamworldpro Mini