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 call​Expression​Received Undocumented
Method connection​Made Called when a connection is made.
Method connection​Ready Surrogate for connectionMade Called after protocol negotiation.
Method data​Received Called whenever data is received.
Method expression​Received Called when an expression (list, string, or int) is received.
Method got​Item Undocumented
Method send​Encoded Send the encoded representation of the given object:
Method set​Prefix​Limit Set the prefix limit for decoding done by this protocol instance.
Class Variable incoming​Vocabulary Undocumented
Class Variable outgoing​Vocabulary Undocumented
Instance Variable buffer Undocumented
Instance Variable current​Dialect Undocumented
Instance Variable is​Client Undocumented
Instance Variable known​Dialects These are the profiles supported by this Banana implementation.
Instance Variable list​Stack Undocumented
Instance Variable outgoing​Symbol​Count Undocumented
Instance Variable outgoing​Symbols Undocumented
Instance Variable prefix​Limit Undocumented
Method _encode Undocumented
Method _select​Dialect Undocumented
Instance Variable _largest​Int Undocumented
Instance Variable _largest​Long​Int Undocumented
Instance Variable _smallest​Int Undocumented
Instance Variable _smallest​Long​Int Undocumented

Inherited from Protocol:

Method connection​Lost Called when the connection is shut down.
Method log​Prefix 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 make​Connection 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)

Undocumented

def callExpressionReceived(self, obj): (source)

Undocumented

def connectionMade(self): (source)

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)
Surrogate for connectionMade Called after protocol negotiation.
def dataReceived(self, chunk): (source)

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
chunkUndocumented
dataa 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)
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
objAn object to encode and send.
Returns
None
Raises
BananaErrorIf 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