# ``twisted`.`spread`.`banana`.`Banana``

class documentation

`class Banana(protocol.Protocol, styles.Ephemeral): (source)`

Known subclasses: `twisted.spread.pb.Broker`

View In Hierarchy

`Banana` implements the Banana s-expression protocol, client and server.

Method | `__init__` | Undocumented
Method | `callExpressionReceived` | Undocumented
Method | `connectionMade` | Called when a connection is made.
Method | `connectionReady` | Surrogate for connectionMade Called after protocol negotiation.
Method | `dataReceived` | Called whenever data is received.
Method | `expressionReceived` | Called when an expression (list, string, or int) is received.
Method | `gotItem` | Undocumented
Method | `sendEncoded` | Send the encoded representation of the given object:
Method | `setPrefixLimit` | Set the prefix limit for decoding done by this protocol instance.
Class Variable | `incomingVocabulary` | Undocumented
Class Variable | `outgoingVocabulary` | Undocumented
Instance Variable | `buffer` | Undocumented
Instance Variable | `currentDialect` | Undocumented
Instance Variable | `isClient` | Undocumented
Instance Variable | `knownDialects` | These are the profiles supported by this Banana implementation.
Instance Variable | `listStack` | Undocumented
Instance Variable | `outgoingSymbolCount` | Undocumented
Instance Variable | `outgoingSymbols` | Undocumented
Instance Variable | `prefixLimit` | Undocumented
Method | `_encode` | Undocumented
Method | `_selectDialect` | Undocumented
Instance Variable | `_largestInt` | Undocumented
Instance Variable | `_largestLongInt` | Undocumented
Instance Variable | `_smallestInt` | Undocumented
Instance Variable | `_smallestLongInt` | Undocumented

Inherited from `Protocol`:

Method | `connectionLost` | Called when the connection is shut down.
Method | `logPrefix` | Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable | `factory` | Undocumented

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

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

Inherited from `Ephemeral`:

Method | `__getstate__` | Undocumented
Method | `__reduce__` | Serialize any subclass of `Ephemeral` in a way which replaces it with `Ephemeral` itself.
Method | `__setstate__` | Undocumented
Instance Variable | `__class__` | Undocumented

def __init__(self, isClient=1): (source)
overridden in `twisted.spread.pb.Broker`

Undocumented

def callExpressionReceived(self, obj): (source)

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 connectionReady(self): (source)
overridden in `twisted.spread.pb.Broker`
Surrogate for connectionMade Called after protocol negotiation.
def dataReceived(self, chunk): (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
chunk | Undocumented
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 expressionReceived(self, lst): (source)
overridden in `twisted.spread.pb.Broker`
Called when an expression (list, string, or int) is received.
def gotItem(self, item): (source)

Undocumented

def sendEncoded(self, obj): (source)
Send the encoded representation of the given object:

Parameters
obj | An object to encode and send.
Returns
`None`
Raises
`BananaError` | If the given object is not an instance of one of the types supported by Banana.

def setPrefixLimit(self, limit): (source)
Set the prefix limit for decoding done by this protocol instance.

See Also
`setPrefixLimit`

incomingVocabulary: `dict` = (source)

Undocumented

outgoingVocabulary: `dict[bytes, int]` = (source)

Undocumented

buffer: `bytes` = (source)

Undocumented

currentDialect = (source)

Undocumented

isClient = (source)

Undocumented

knownDialects: `list` of `bytes` = (source)
These are the profiles supported by this Banana implementation.
listStack: `list` = (source)

Undocumented

outgoingSymbolCount: `int` = (source)

Undocumented

outgoingSymbols = (source)

Undocumented

prefixLimit = (source)

Undocumented

def _encode(self, obj, write): (source)

Undocumented

def _selectDialect(self, dialect): (source)

Undocumented

_largestInt = (source)

Undocumented

_largestLongInt = (source)

Undocumented

_smallestInt = (source)

Undocumented

_smallestLongInt = (source)

Undocumented