Part of twisted.internet.interfaces View Source View In Hierarchy
Known subclasses: twisted.internet.interfaces.IFinishableConsumer, twisted.protocols.ftp.IFinishableConsumer
Known implementations: twisted.internet._dumbwin32proc.Process, twisted.internet._pollingfile._PollableWritePipe, twisted.internet._posixstdio.StandardIO, twisted.internet._win32stdio.StandardIO, twisted.internet.abstract.FileDescriptor, twisted.internet.iocpreactor.abstract.FileHandle, twisted.internet.protocol.ProtocolToConsumerAdapter, twisted.mail.maildir._MaildirMailboxAppendMessageTask, twisted.protocols.ftp.DTP, twisted.protocols.ftp.FileConsumer, twisted.protocols.loopback._LoopbackTransport, twisted.protocols.loopback.LoopbackRelay, twisted.protocols.pcp.BasicProducerConsumerProxy, twisted.spread.util.FilePager, twisted.web._newclient.ChunkedEncoder, twisted.web.http.Request
Method | registerProducer | Register to receive data from a producer. |
Method | unregisterProducer | Stop consuming data from a producer, without disconnecting. |
Method | write | The producer will write data by calling this method. |
This sets self to be a consumer for a producer. When this object runs out of data (as when a send(2) call on a socket succeeds in moving the last data from a userspace buffer into a kernelspace buffer), it will ask the producer to resumeProducing().
For IPullProducer
providers, resumeProducing
will be called once each time data
is required.
For IPushProducer
providers, pauseProducing
will be called whenever the write
buffer fills up and resumeProducing
will only be called when
it empties.
Parameters | streaming | True if producer provides IPushProducer ,
False if producer provides IPullProducer . (type: bool ) |
Returns | None | |
Raises | RuntimeError | If a producer is already registered. |
The implementation must be non-blocking and perform whatever buffering
is necessary. If the producer has provided enough data for now and it is a
IPushProducer
,
the consumer may call its pauseProducing
method.