# ``twisted`.`spread`.`util`.`FilePager``

class documentation

`class FilePager(Pager): (source)`

Implements interfaces: `twisted.internet.interfaces.IConsumer`

View In Hierarchy

Reads a file in chunks and sends the chunks as they come.

Method | `__init__` | Create a pager with a Reference to a remote collector and an optional callable to invoke upon completion.
Method | `registerProducer` | Register to receive data from a producer.
Method | `sendNextPage` | Get the first chunk read and send it to collector.
Method | `startProducing` | Undocumented
Method | `unregisterProducer` | Stop consuming data from a producer, without disconnecting.
Method | `write` | The producer will write data by calling this method.
Instance Variable | `chunks` | Undocumented
Instance Variable | `deferred` | Undocumented
Instance Variable | `producer` | Undocumented

Inherited from `Pager`:

Method | `nextPage` | Override this to return an object to be sent to my collector.
Method | `stillPaging` | (internal) Method called by Broker.
Method | `stopPaging` | Call this when you're done paging.
Instance Variable | `callback` | Undocumented
Instance Variable | `callbackArgs` | Undocumented
Instance Variable | `callbackKeyword` | Undocumented
Instance Variable | `collector` | Undocumented
Instance Variable | `_stillPaging` | Undocumented

def __init__(self, collector, fd, callback=None, *args, **kw): (source)
overrides `twisted.spread.util.Pager.__init__`
Create a pager with a Reference to a remote collector and an optional callable to invoke upon completion.
def registerProducer(self, producer, streaming): (source)
from `twisted.internet.interfaces.IConsumer`

Register to receive data from a producer.

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. The consumer will only call `resumeProducing` to balance a previous `pauseProducing` call; the producer is assumed to start in an un-paused state.

Parameters
producer | Undocumented
streaming | `True` if `producer` provides `IPushProducer`, `False` if `producer` provides `IPullProducer`.
Raises
`RuntimeError` | If a producer is already registered.

def sendNextPage(self): (source)
overrides `twisted.spread.util.Pager.sendNextPage`
Get the first chunk read and send it to collector.
def startProducing(self, fd): (source)

Undocumented

def unregisterProducer(self): (source)
from `twisted.internet.interfaces.IConsumer`
Stop consuming data from a producer, without disconnecting.
def write(self, chunk): (source)
from `twisted.internet.interfaces.IConsumer`

The producer will write data by calling this method.

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.

chunks: `list` = (source)

Undocumented

deferred = (source)

Undocumented

producer = (source)

Undocumented