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

## Class LineReceiver

    BaseProtocol --+
                   |
            Protocol --+
                       |
                      LineReceiver

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

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
| ``connectionFailed`(self)` (Deprecated) (inherited from `Protocol`)
| ``connectionLost`(self, reason)` Called when the connection is shut down. (inherited from `Protocol`)
| ``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.

Class Variable Summary
`str` | `delimiter` - The line-ending delimiter to use.
`int` | `line_mode`
`int` | `MAX_LENGTH` - The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped).

Method Details

### dataReceived(self, data) Protocol.dataReceived. Translates bytes into lines, and calls lineReceived (or rawDataReceived, depending on mode.)

### 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

    ### 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 1.1 on Thu May 8 13:16:35 2003 | http://epydoc.sf.net