class documentation

class twisted.internet.process.ProcessWriter(abstract.FileDescriptor): (source)

View In Hierarchy

(Internal) Helper class to write into a Process's input pipe.

I am a helper which describes a selectable asynchronous writer to a process's input pipe, including stdin.

Instance Variable enableReadHack A flag which determines how readability on this write descriptor will be handled. If True, then readability may indicate the reader for this write descriptor has been closed (ie, the connection has been lost). If False, then readability events are ignored.
Class Variable connected Undocumented
Class Variable ic Undocumented
Method __init__ Initialize, specifying a Process instance to connect to.
Instance Variable proc Undocumented
Instance Variable name Undocumented
Instance Variable fd Undocumented
Method fileno Return the fileno() of my process's stdin.
Method writeSomeData Write some data to the open process.
Method write Reliably write some data.
Method doRead The only way a write pipe can become "readable" is at EOF, because the child has closed it, and we're using a reactor which doesn't distinguish between readable and closed (such as the select reactor).
Method connectionLost See abstract.FileDescriptor.connectionLost.

Inherited from FileDescriptor:

Instance Variable disconnected Undocumented
Instance Variable disconnecting Undocumented
Instance Variable dataBuffer Undocumented
Instance Variable offset Undocumented
Class Variable SEND_LIMIT Undocumented
Instance Variable reactor Undocumented
Instance Variable producer Undocumented
Method doWrite Called when data can be written.
Instance Variable producerPaused Undocumented
Method writeConnectionLost Undocumented
Method readConnectionLost Undocumented
Method getHost Undocumented
Method getPeer Undocumented
Method writeSequence Reliably write a sequence of data.
Method loseConnection Close the connection at the next available opportunity.
Method loseWriteConnection Undocumented
Method stopReading Stop waiting for read availability.
Method stopWriting Stop waiting for write availability.
Method startReading Start waiting for read availability.
Method startWriting Start waiting for write availability.
Class Variable bufferSize Undocumented
Method stopConsuming Stop consuming data.
Method resumeProducing Undocumented
Method pauseProducing Undocumented
Method stopProducing Undocumented
Instance Variable _writeDisconnecting Undocumented
Instance Variable _writeDisconnected Undocumented
Instance Variable _tempDataBuffer Undocumented
Instance Variable _tempDataLen Undocumented
Method _postLoseConnection Called after a loseConnection(), when all data has been written.
Method _closeWriteConnection Undocumented
Method _isSendBufferFull Determine whether the user-space send buffer for this transport is full or not.
Method _maybePauseProducer Possibly pause a producer, if there is one and the send buffer is full.

Inherited from _ConsumerMixin (via FileDescriptor):

Instance Variable streamingProducer bool or int
Method registerProducer Register to receive data from a producer.
Method unregisterProducer Stop consuming data from a producer, without disconnecting.

Inherited from _LogOwner (via FileDescriptor):

Method logPrefix Override this method to insert custom logging behavior. Its return value will be inserted in front of every line. It may be called more times than the number of output lines.
Method _getLogPrefix Determine the log prefix to use for messages related to applicationObject, which may or may not be an interfaces.ILoggingContext provider.
enableReadHack = (source)
A flag which determines how readability on this write descriptor will be handled. If True, then readability may indicate the reader for this write descriptor has been closed (ie, the connection has been lost). If False, then readability events are ignored.
(type: bool)

Undocumented

(type: int)
def __init__(self, reactor, proc, name, fileno, forceReadHack=False): (source)

Initialize, specifying a Process instance to connect to.

proc = (source)

Undocumented

name = (source)

Undocumented

Undocumented

def fileno(self): (source)

Return the fileno() of my process's stdin.

def writeSomeData(self, data): (source)

Write some data to the open process.

def write(self, data): (source)

Reliably write some data.

The data is buffered until the underlying file descriptor is ready for writing. If there is more than self.bufferSize data in the buffer and this descriptor has a registered streaming producer, its pauseProducing() method will be called.

def doRead(self): (source)

The only way a write pipe can become "readable" is at EOF, because the child has closed it, and we're using a reactor which doesn't distinguish between readable and closed (such as the select reactor).

Except that's not true on linux < 2.6.11. It has the following characteristics: write pipe is completely empty => POLLOUT (writable in select), write pipe is not completely empty => POLLIN (readable in select), write pipe's reader closed => POLLIN|POLLERR (readable and writable in select)

That's what this funky code is for. If linux was not broken, this function could be simply "return CONNECTION_LOST".

def connectionLost(self, reason): (source)

See abstract.FileDescriptor.connectionLost.

API Documentation for Twisted, generated by pydoctor 20.12.1 at 2021-02-28 19:53:36.