class documentation

class LineReceiver(protocol.Protocol, _PauseableMixin): (source)

Known subclasses: twisted.conch.scripts.cftp.StdioClient, twisted.conch.telnet.StatefulTelnetProtocol, twisted.internet.testing.LineSendingProtocol, twisted.mail.imap4.IMAP4Client, twisted.mail.imap4.IMAP4Server, twisted.mail.smtp.SMTPClient, twisted.positioning.nmea.NMEAProtocol, twisted.protocols.dict.DictClient, twisted.protocols.finger.Finger, twisted.protocols.ftp.FTP, twisted.protocols.ftp.FTPClientBasic, twisted.protocols.ftp.FTPFileListProtocol, twisted.protocols.ftp.FTPOverflowProtocol, twisted.protocols.memcache.MemCacheProtocol, twisted.protocols.postfix.PostfixTCPMapServer, twisted.protocols.sip.MessagesParser, twisted.runner.procmon.LineLogger, twisted.web._newclient.HTTPParser, twisted.web.http.HTTPChannel, twisted.web.http.HTTPClient, twisted.words.protocols.irc.DccChat, twisted.words.protocols.irc.IRCClient

View In Hierarchy

A protocol that receives lines and/or raw data, depending on mode.

In line mode, each line that's received becomes a callback to lineReceived. In raw data mode, each chunk of raw data becomes a callback to LineReceiver.rawDataReceived. The setLineMode and setRawMode methods switch between the two modes.

This is useful for line-oriented protocols such as IRC, HTTP, POP, etc.

Method clear​Line​Buffer Clear buffered data.
Method data​Received Protocol.dataReceived. Translates bytes into lines, and calls lineReceived (or rawDataReceived, depending on mode.)
Method line​Length​Exceeded Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.
Method line​Received Override this for when each line is received.
Method raw​Data​Received Override this for when raw data is received.
Method send​Line Sends a line to the other end of the connection.
Method set​Line​Mode Sets the line-mode of this receiver.
Method set​Raw​Mode Sets the raw mode of this receiver. Further data received will be sent to rawDataReceived rather than lineReceived.
Constant MAX​_LENGTH The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped). Default is 16384.
Class Variable delimiter The line-ending delimiter to use. By default this is b'\r\n'.
Instance Variable line​_mode Undocumented
Instance Variable _buffer Undocumented
Instance Variable _busy​Receiving Undocumented

Inherited from Protocol:

Method connection​Lost Called when the connection is shut down.
Method log​Prefix Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable factory Undocumented

Inherited from BaseProtocol (via Protocol):

Method connection​Made Called when a connection is made.
Method make​Connection Make a connection to a transport and a server.
Instance Variable connected Undocumented
Instance Variable transport Undocumented

Inherited from _PauseableMixin:

Method pause​Producing Undocumented
Method resume​Producing Undocumented
Method stop​Producing Undocumented
Instance Variable paused Undocumented
def clearLineBuffer(self): (source)
Clear buffered data.
Returns
bytesAll of the cleared buffered data.
def dataReceived(self, data): (source)
def lineLengthExceeded(self, line): (source)

Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.

The argument 'line' contains the remainder of the buffer, starting with (at least some part) of the line which is too long. This may be more than one line, or may be only the initial portion of the line.

def sendLine(self, line): (source)
Sends a line to the other end of the connection.
Parameters
line:bytesThe line to send, not including the delimiter.
def setLineMode(self, extra=b''): (source)

Sets the line-mode of this receiver.

If you are calling this from a rawDataReceived callback, you can pass in extra unhandled data, and that data will be parsed for lines. Further data received will be sent to lineReceived rather than rawDataReceived.

Do not pass extra data if calling this function from within a lineReceived callback.

def setRawMode(self): (source)
Sets the raw mode of this receiver. Further data received will be sent to rawDataReceived rather than lineReceived.
MAX_LENGTH: int = (source)
The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped). Default is 16384.
Value
16384
line_mode: int = (source)

Undocumented

_buffer: bytes = (source)

Undocumented

_busyReceiving: bool = (source)

Undocumented