Go to the latest version of this document.

# ``twisted`.`conch`.`insults`.`insults`.`ServerProtocol``

class documentation

`class ServerProtocol(protocol.Protocol): (source)`

Constructor: `ServerProtocol(protocolFactory, *a, **kw)`

Implements interfaces: `twisted.conch.insults.insults.ITerminalTransport`

View In Hierarchy

Undocumented

Class | `ControlSequenceParser` | Undocumented
Method | `__init__` | No summary
Method | `applicationKeypadMode` | Cause keypad to generate control functions.
Method | `connectionLost` | Called when the connection is shut down.
Method | `connectionMade` | Called when a connection is made.
Method | `cursorBackward` | Move the cursor left n columns.
Method | `cursorDown` | Move the cursor down n lines.
Method | `cursorForward` | Move the cursor right n columns.
Method | `cursorHome` | Move the cursor home.
Method | `cursorPosition` | Move the cursor to the given line and column.
Method | `cursorUp` | Move the cursor up n lines.
Method | `dataReceived` | Called whenever data is received.
Method | `deleteCharacter` | Delete n characters starting at the cursor position.
Method | `deleteLine` | Delete n lines starting at the cursor position.
Method | `doubleHeightLine` | Make the current line the top or bottom half of a double-height, double-width line.
Method | `doubleWidthLine` | Make the current line a double-width line.
Method | `eraseDisplay` | Erase the entire display.
Method | `eraseLine` | Erase the entire cursor line.
Method | `eraseToDisplayBeginning` | Erase from the cursor to the beginning of the display, including the cursor position.
Method | `eraseToDisplayEnd` | Erase from the cursor to the end of the display, including the cursor position.
Method | `eraseToLineBeginning` | Erase from the cursor to the beginning of the line, including the cursor position.
Method | `eraseToLineEnd` | Erase from the cursor to the end of line, including cursor position.
Method | `getHost` | Similar to getPeer, but returns an address describing this side of the connection.
Method | `getPeer` | Get the remote address of this connection.
Method | `horizontalTabulationSet` | Set a tab stop at the current cursor position.
Method | `index` | Move the cursor down one line, performing scrolling if necessary.
Method | `insertLine` | Insert n lines at the cursor position.
Method | `loseConnection` | Close my connection, after writing all pending data.
Method | `nextLine` | Move the cursor to the first position on the next line, performing scrolling if necessary.
Method | `numericKeypadMode` | Cause keypad to generate normal characters.
Method | `reportCursorPosition` | Return a Deferred that fires with a two-tuple of (x, y) indicating the cursor position.
Method | `reset` | Reset the terminal to its initial state.
Method | `resetModes` | Reset the given modes on the terminal.
Method | `resetPrivateModes` | Reset the given DEC private modes on the terminal.
Method | `resetScrollRegion` | Undocumented
Method | `restoreCursor` | Restore the previously saved cursor position, character attribute, character set, and origin mode selection.
Method | `reverseIndex` | Move the cursor up one line, performing scrolling if necessary.
Method | `saveCursor` | Save the cursor position, character attribute, character set, and origin mode selection.
Method | `selectCharacterSet` | Select a character set.
Method | `selectGraphicRendition` | Enabled one or more character attributes.
Method | `setModes` | Set the given modes on the terminal.
Method | `setPrivateModes` | Set the given DEC private modes on the terminal.
Method | `setScrollRegion` | Undocumented
Method | `shiftIn` | Activate the G0 character set.
Method | `shiftOut` | Activate the G1 character set.
Method | `singleShift2` | Shift to the G2 character set for a single character.
Method | `singleShift3` | Shift to the G3 character set for a single character.
Method | `singleWidthLine` | Make the current line a single-width, single-height line.
Method | `tabulationClear` | Clear the tab stop at the current cursor position.
Method | `tabulationClearAll` | Clear all tab stops.
Method | `unhandledControlSequence` | Called when an unsupported control sequence is received.
Method | `write` | Write some data to the physical connection, in sequence, in a non-blocking fashion.
Method | `writeSequence` | Write an iterable of byte strings to the physical connection.
Constant | `BACKSPACE` | Undocumented
Constant | `TAB` | Undocumented
Class Variable | `controlSequenceParser` | Undocumented
Class Variable | `factory` | Undocumented
Class Variable | `scrollRegion` | Undocumented
Class Variable | `termSize` | Undocumented
Instance Variable | `cursorPos` | Undocumented
Instance Variable | `escBuf` | Undocumented
Instance Variable | `lastWrite` | Undocumented
Instance Variable | `protocolArgs` | Undocumented
Instance Variable | `protocolFactory` | Undocumented
Instance Variable | `protocolKwArgs` | Undocumented
Instance Variable | `state` | Undocumented
Instance Variable | `terminalProtocol` | Undocumented
Method | `_handleControlSequence` | Undocumented
Method | `_handleLowFunctionControlSequence` | Undocumented
Method | `_handleShortControlSequence` | Undocumented
Instance Variable | `_cursorReports` | Undocumented
Instance Variable | `_savedCursorPos` | Undocumented

Inherited from `Protocol`:

Method | `logPrefix` | Return a prefix matching the class name, to identify log messages related to this protocol instance.

Inherited from `BaseProtocol` (via `Protocol`):

Method | `makeConnection` | Make a connection to a transport and a server.
Instance Variable | `connected` | Undocumented
Instance Variable | `transport` | Undocumented

def __init__(self, protocolFactory=None, *a, **kw): (source)

Parameters
protocolFactory | A callable which will be invoked with *a, **kw and should return an ITerminalProtocol implementor. This will be invoked when a connection to this ServerProtocol is established.
*a | Any positional arguments to pass to protocolFactory.
**kw | Any keyword arguments to pass to protocolFactory.

def applicationKeypadMode(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Cause keypad to generate control functions.

Cursor key mode selects the type of characters generated by cursor keys.

def connectionLost(self, reason): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.Protocol.connectionLost`

Called when the connection is shut down.

Clear any circular references here, and any external references to this Protocol. The connection has been closed.

Parameters
reason:`twisted.python.failure.Failure` | Undocumented

def connectionMade(self): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.BaseProtocol.connectionMade`

Called when a connection is made.

This may be considered the initializer of the protocol, because it is called when the connection is completed. For clients, this is called once the connection to the server has been established; for servers, this is called after an accept() call stops blocking and a socket has been received. If you need to send any greeting or initial message, do it here.

def cursorBackward(self, n=1): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor left n columns.

def cursorDown(self, n=1): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor down n lines.

def cursorForward(self, n=1): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor right n columns.

def cursorHome(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor home.

def cursorPosition(self, column, line): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor to the given line and column.

def cursorUp(self, n=1): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor up n lines.

def dataReceived(self, data): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.Protocol.dataReceived`

Called whenever data is received.

Use this method to translate to a higher-level message. Usually, some callback will be made upon the receipt of each complete protocol message.

Parameters
data | a string of indeterminate length. Please keep in mind that you will probably need to buffer some data, as partial (or multiple) protocol messages may be received! I recommend that unit tests for protocols call through to this method with differing chunk sizes, down to one byte at a time.

def deleteCharacter(self, n=1): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Delete n characters starting at the cursor position.

Characters to the right of deleted characters are shifted to the left.

def deleteLine(self, n=1): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Delete n lines starting at the cursor position.

Lines below the cursor are shifted up. This command is ignored when the cursor is outside the scroll region.

def doubleHeightLine(self, top=True): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Make the current line the top or bottom half of a double-height, double-width line.

If top is True, the current line is the top half. Otherwise, it is the bottom half.

def doubleWidthLine(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Make the current line a double-width line.

def eraseDisplay(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Erase the entire display.

def eraseLine(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Erase the entire cursor line.

def eraseToDisplayBeginning(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Erase from the cursor to the beginning of the display, including the cursor position.

def eraseToDisplayEnd(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Erase from the cursor to the end of the display, including the cursor position.

def eraseToLineBeginning(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Erase from the cursor to the beginning of the line, including the cursor position.

def eraseToLineEnd(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Erase from the cursor to the end of line, including cursor position.

def getHost(self): (source)
from `twisted.internet.interfaces.ITransport`

Similar to getPeer, but returns an address describing this side of the connection.

Returns
An `IAddress` provider.

def getPeer(self): (source)
from `twisted.internet.interfaces.ITransport`

Get the remote address of this connection.

Treat this method with caution. It is the unfortunate result of the CGI and Jabber standards, but should not be considered reliable for the usual host of reasons; port forwarding, proxying, firewalls, IP masquerading, etc.

Returns
An `IAddress` provider.

def horizontalTabulationSet(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Set a tab stop at the current cursor position.

def index(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor down one line, performing scrolling if necessary.

def insertLine(self, n=1): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Insert n lines at the cursor position.

Lines below the cursor are shifted down. Lines moved past the bottom margin are lost. This command is ignored when the cursor is outside the scroll region.

def loseConnection(self): (source)
from `twisted.internet.interfaces.ITransport`

Close my connection, after writing all pending data.

Note that if there is a registered producer on a transport it will not be closed until the producer has been unregistered.

def nextLine(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor to the first position on the next line, performing scrolling if necessary.

def numericKeypadMode(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Cause keypad to generate normal characters.

def reportCursorPosition(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Return a Deferred that fires with a two-tuple of (x, y) indicating the cursor position.

def reset(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Reset the terminal to its initial state.

def resetModes(self, modes): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Reset the given modes on the terminal.

def resetPrivateModes(self, modes): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Reset the given DEC private modes on the terminal.

def resetScrollRegion(self): (source)

Undocumented

def restoreCursor(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Restore the previously saved cursor position, character attribute, character set, and origin mode selection.

If no cursor state was previously saved, move the cursor to the home position.

def reverseIndex(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Move the cursor up one line, performing scrolling if necessary.

def saveCursor(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Save the cursor position, character attribute, character set, and origin mode selection.

def selectCharacterSet(self, charSet, which): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Select a character set.

charSet should be one of CS_US, CS_UK, CS_DRAWING, CS_ALTERNATE, or CS_ALTERNATE_SPECIAL.

which should be one of G0 or G1.

def selectGraphicRendition(self, *attributes): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Enabled one or more character attributes.

Arguments should be one or more of UNDERLINE, REVERSE_VIDEO, BLINK, or BOLD. NORMAL may also be specified to disable all character attributes.

def setModes(self, modes): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Set the given modes on the terminal.

def setPrivateModes(self, modes): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Set the given DEC private modes on the terminal.

def setScrollRegion(self, first=None, last=None): (source)

Undocumented

def shiftIn(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Activate the G0 character set.

def shiftOut(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Activate the G1 character set.

def singleShift2(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Shift to the G2 character set for a single character.

def singleShift3(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Shift to the G3 character set for a single character.

def singleWidthLine(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Make the current line a single-width, single-height line.

def tabulationClear(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Clear the tab stop at the current cursor position.

def tabulationClearAll(self): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Clear all tab stops.

def unhandledControlSequence(self, buf): (source)
from `twisted.conch.insults.insults.ITerminalTransport`

Called when an unsupported control sequence is received.

Parameters
buf | Undocumented
seq:`str` | The whole control sequence which could not be interpreted.

def write(self, data): (source)
from `twisted.internet.interfaces.ITransport`

Write some data to the physical connection, in sequence, in a non-blocking fashion.

If possible, make sure that it is all written. No data will ever be lost, although (obviously) the connection may be closed before it all gets through.

Parameters
data | The data to write.

def writeSequence(self, data): (source)
from `twisted.internet.interfaces.ITransport`

Write an iterable of byte strings to the physical connection.

If possible, make sure that all of the data is written to the socket at once, without first copying it all into a single byte string.

Parameters
data | The data to write.

BACKSPACE: `bytes` = (source)

Undocumented

Value

    b'\x7f'

TAB: `bytes` = (source)

Undocumented

Value

    b'\t'

controlSequenceParser = (source)

Undocumented

factory = (source)
overrides `twisted.internet.protocol.Protocol.factory`

Undocumented

scrollRegion = (source)

Undocumented

termSize = (source)

Undocumented

cursorPos = (source)

Undocumented

escBuf: `list` = (source)

Undocumented

lastWrite = (source)

Undocumented

protocolArgs = (source)

Undocumented

protocolFactory = (source)

Undocumented

protocolKwArgs = (source)

Undocumented

state: `bytes` = (source)

Undocumented

terminalProtocol = (source)

Undocumented

def _handleControlSequence(self, buf): (source)

Undocumented

def _handleLowFunctionControlSequence(self, ch): (source)

Undocumented

def _handleShortControlSequence(self, ch): (source)

Undocumented

_cursorReports: `list` = (source)

Undocumented

_savedCursorPos = (source)

Undocumented