Package twisted :: Package protocols :: Module basic :: Class LineReceiver |
[frames | no frames]

## Class LineReceiver

    BaseProtocol --+
                   |
            Protocol --+
                       |
                      LineReceiver

Known Subclasses:
  `DccChat`, `DictClient`, `Finger`, `FlashConduit`, `FTP`, `FTPClient`, `FTPFileListProtocol`, `HTTPChannel`, `HTTPClient`, `IMAP4Client`, `IMAP4Server`, `IRCClient`, `LineLogger`, `MessagesParser`, `MSNEventBase`, `MSNFileReceive`, `MSNFileSend`, `NMEAReceiver`, `NNTPClient`, `NNTPServer`, `PostfixTCPMapServer`, `SMTP`, `SMTPClient`

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 `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 Summary
| ``clearLineBuffer`(self)` Clear buffered data.
| ``dataReceived`(self, data)` Protocol.dataReceived.
| ``lineLengthExceeded`(self, line)` Called when the maximum line length has been reached.
| ``lineReceived`(self, line)` Override this for when each line is received.
| ``rawDataReceived`(self, data)` Override this for when raw data is received.
| ``sendLine`(self, line)` Sends a line to the other end of the connection.
| ``setLineMode`(self, extra)` Sets the line-mode of this receiver.
| ``setRawMode`(self)` Sets the raw mode of this receiver.
Inherited from Protocol
| ``connectionFailed`(self)` (Deprecated)
| ``connectionLost`(self, reason)` Called when the connection is shut down.
Inherited from BaseProtocol
| ``connectionMade`(self)` Called when a connection is made.
| ``makeConnection`(self, transport)` Make a connection to a transport and a server.

Class Variable Summary
`str` | `_LineReceiver__buffer` = `''`
`str` | `delimiter`: The line-ending delimiter to use.
`int` | `line_mode` = 1
`int` | `MAX_LENGTH`: The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped).
Inherited from Protocol
`tuple` | `__implements__` = `(<class twisted.internet.interfaces.IPr...`
Inherited from BaseProtocol
`int` | `connected` = 0
`NoneType` | `transport` = None

Method Details

### clearLineBuffer(self) Clear buffered data.

### dataReceived(self, data) Protocol.dataReceived. Translates bytes into lines, and calls lineReceived (or rawDataReceived, depending on mode.) Overrides: `twisted.internet.protocol.Protocol.dataReceived`

### lineLengthExceeded(self, line) Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.

### lineReceived(self, line) Override this for when each line is received.

### rawDataReceived(self, data) Override this for when raw data is received.

### sendLine(self, line) Sends a line to the other end of the connection.

### setLineMode(self, extra='') 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.

### setRawMode(self) Sets the raw mode of this receiver. Further data received will be sent to rawDataReceived rather than lineReceived.

Class Variable Details

    ### _LineReceiver__buffer Type: `str` Value:
        ''

    ### delimiter The line-ending delimiter to use. By default this is '\r\n'. Type: `str` Value:
        '''\r
        '''

    ### line_mode Type: `int` Value:
        1

    ### MAX_LENGTH The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped). Default is 16834. Type: `int` Value:
        16384

Generated by Epydoc 2.0 on Sat Oct 25 00:55:10 2003 | http://epydoc.sf.net