Package twisted :: Package protocols :: Module irc :: Class DccChat

[frames | no frames]

## Class DccChat

               Ephemeral --+
                           |
    BaseProtocol --+       |
                   |       |
            Protocol --+   |
                       |   |
            LineReceiver --+
                           |
                          DccChat

Direct Client Connection protocol type CHAT.

DCC CHAT is really just your run o' the mill basic.LineReceiver protocol. This class only varies from that slightly, accepting either LF or CR LF for a line delimeter for incoming messages while always using CR LF for outgoing.

The lineReceived method implemented here uses the DCC connection's 'client' attribute (provided upon construction) to deliver incoming lines from the DCC chat via IRCClient's normal privmsg interface. That's something of a spoof, which you may well want to override.

Method Summary
| ``__init__`(self, client, queryData)` Initialize a new DCC CHAT session.
| ``dataReceived`(self, data)` Protocol.dataReceived.
| ``lineReceived`(self, line)` Override this for when each line is received.
Inherited from LineReceiver
| ``clearLineBuffer`(self)` Clear buffered data.
| ``lineLengthExceeded`(self, line)` Called when the maximum line length has been reached.
| ``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.
Inherited from Ephemeral
| ``__getstate__`(self)`
| ``__setstate__`(self, state)`

Class Variable Summary
`str` | `buffer` = `''`
`NoneType` | `client` = None
`str` | `delimiter`: The line-ending delimiter to use.
`NoneType` | `queryData` = None
`NoneType` | `remoteParty` = None
Inherited from LineReceiver
`str` | `_LineReceiver__buffer` = `''`
`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

### __init__(self, client, queryData=None)
(Constructor)

Initialize a new DCC CHAT session.

queryData is a 3-tuple of (fromUser, targetUserOrChannel, data) as received by the CTCP query.

(To be honest, fromUser is the only thing that's currently used here. targetUserOrChannel is potentially useful, while the 'data' argument is soley for informational purposes.)

### dataReceived(self, data)

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

  Overrides:
    `twisted.protocols.basic.LineReceiver.dataReceived` (inherited documentation)

### lineReceived(self, line)

Override this for when each line is received.

  Overrides:
    `twisted.protocols.basic.LineReceiver.lineReceived` (inherited documentation)

Class Variable Details

### buffer

  Type:
    `str`
  Value:

        ''

### client

  Type:
    `NoneType`
  Value:

        None

### delimiter

The line-ending delimiter to use. By default this is '\r\n'.

  Type:
    `str`
  Value:

        '''\r
        '''

### queryData

  Type:
    `NoneType`
  Value:

        None

### remoteParty

  Type:
    `NoneType`
  Value:

        None

Generated by Epydoc 2.0 on Sat May 15 20:08:19 2004 | http://epydoc.sf.net