Package twisted :: Package protocols :: Module basic :: Class LineReceiver

[show private | hide private]
[frames | no frames]

## Class LineReceiver

    BaseProtocol --+
                   |
            Protocol --+
                       |
                      LineReceiver

Known Subclasses:
  `IRCClient`, `HTTPChannel`, `SMTP`, `POP3`, `SMTPClient`, `NNTPServer`, `DictClient`, `Finger`, `FTPClient`, `FTPFileListProtocol`, `FTP`, `GnutellaTalker`, `HTTPClient`, `DccChat`, `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`)
| ``connectionMade`(self)` Called when a connection is made. (inherited from `BaseProtocol`)
| ``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.
| ``makeConnection`(self, transport)` Make a connection to a transport and a server. (inherited from `BaseProtocol`)
| ``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
`string` | `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).
`string` | `_LineReceiver__buffer`

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:
    `string`
  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

### _LineReceiver__buffer

  Type:
    `string`
  Value:

        ''

Generated by Epydoc 1.1 on Sat Feb 15 21:19:11 2003 | http://epydoc.sf.net