class documentation

class _PullToPush: (source)

Implements interfaces: twisted.internet.interfaces.IPushProducer

View In Hierarchy

An adapter that converts a non-streaming to a streaming producer.

Because of limitations of the producer API, this adapter requires the cooperation of the consumer. When the consumer's registerProducer is called with a non-streaming producer, it must wrap it with _PullToPush and then call startStreaming on the resulting object. When the consumer's unregisterProducer is called, it must call stopStreaming on the _PullToPush instance.

If the underlying producer throws an exception from resumeProducing, the producer will be unregistered from the consumer.

Method __init__ Undocumented
Method pause​Producing
Method resume​Producing
Method start​Streaming This should be called by the consumer when the producer is registered.
Method stop​Producing
Method stop​Streaming This should be called by the consumer when the producer is unregistered.
Method _pull A generator that calls resumeProducing on the underlying producer forever.
Instance Variable _consumer the consumer with which the underlying producer was registered.
Instance Variable _coop​Task the result of calling cooperate, the task driving the streaming producer.
Instance Variable _finished bool indicating whether the producer has finished.
Instance Variable _producer the underling non-streaming producer.
def __init__(self, pullProducer, consumer): (source)

Undocumented

def pauseProducing(self): (source)
See Also
IPushProducer.pauseProducing
def resumeProducing(self): (source)
See Also
IPushProducer.resumeProducing
def startStreaming(self): (source)

This should be called by the consumer when the producer is registered.

Start streaming data to the consumer.

def stopProducing(self): (source)
See Also
IPushProducer.stopProducing
def stopStreaming(self): (source)

This should be called by the consumer when the producer is unregistered.

Stop streaming data to the consumer.

def _pull(self): (source)

A generator that calls resumeProducing on the underlying producer forever.

If resumeProducing throws an exception, the producer is unregistered, which should result in streaming stopping.

_consumer = (source)
the consumer with which the underlying producer was registered.
_coopTask = (source)
the result of calling cooperate, the task driving the streaming producer.
_finished: bool = (source)
bool indicating whether the producer has finished.
_producer = (source)
the underling non-streaming producer.