Go to the latest version of this document.

# ``twisted`.`spread`.`pb`.`Broker``

class documentation

`class Broker(banana.Banana): (source)`

Known subclasses: `twisted.mail.pb.MaildirBroker`, `twisted.mail.pb.MaildirClient`

Constructor: `Broker(isClient, security)`

View In Hierarchy

I am a broker for objects.

Method | `__init__` | Undocumented
Method | `cachedLocallyAs` | Undocumented
Method | `cachedRemotelyAs` | No summary
Method | `cacheLocally` | (internal)
Method | `cacheRemotely` | XXX
Method | `connectionFailed` | Undocumented
Method | `connectionLost` | The connection was lost.
Method | `connectionReady` | Initialize. Called after Banana negotiation is done.
Method | `decCacheRef` | (internal) Send a DECACHE directive.
Method | `dontNotifyOnDisconnect` | No summary
Method | `expressionReceived` | Evaluate an expression as it's received.
Method | `localObjectForID` | Get a local object for a locally unique ID.
Method | `newLocalID` | No summary
Method | `newRequestID` | No summary
Method | `notifyOnConnect` | No summary
Method | `notifyOnDisconnect` | No summary
Method | `notifyOnFail` | No summary
Method | `pauseProducing` | Undocumented
Method | `proto_answer` | (internal) Got an answer to a previously sent message.
Method | `proto_cachemessage` | Undocumented
Method | `proto_decache` | (internal) Decrement the reference count of a cached object.
Method | `proto_decref` | (internal) Decrement the reference count of an object.
Method | `proto_didNotUnderstand` | Respond to stock '`didNotUnderstand`' message.
Method | `proto_error` | (internal) Deal with an error.
Method | `proto_message` | Undocumented
Method | `proto_uncache` | (internal) Tell the client it is now OK to uncache an object.
Method | `proto_version` | Protocol message: (version version-number)
Method | `registerPageProducer` | Undocumented
Method | `registerReference` | Store a persistent reference to a local object and map its id() to a generated, session-unique ID.
Method | `remoteForName` | Returns an object from the remote name mapping.
Method | `remotelyCachedForLUID` | No summary
Method | `resumeProducing` | Called when the consumer attached to me runs out of buffer.
Method | `sendCall` | Utility method to send an expression to the other side of the connection.
Method | `sendDecRef` | (internal) Send a DECREF directive.
Method | `serialize` | Jelly an object according to the remote security rules for this broker.
Method | `setNameForLocal` | Store a special (string) ID for this object.
Method | `stopProducing` | Undocumented
Method | `unserialize` | Unjelly an sexp according to the local security rules for this broker.
Class Variable | `factory` | Undocumented
Class Variable | `username` | Undocumented
Class Variable | `version` | Undocumented
Instance Variable | `connects` | Undocumented
Instance Variable | `currentLocalID` | Undocumented
Instance Variable | `currentRequestID` | Undocumented
Instance Variable | `disconnected` | Undocumented
Instance Variable | `disconnects` | Undocumented
Instance Variable | `failures` | Undocumented
Instance Variable | `jellyArgs` | Undocumented
Instance Variable | `jellyKw` | Undocumented
Instance Variable | `jellyMethod` | Undocumented
Instance Variable | `locallyCachedObjects` | Undocumented
Instance Variable | `localObjects` | Undocumented
Instance Variable | `localSecurity` | Undocumented
Instance Variable | `luids` | Undocumented
Instance Variable | `maxBrokerRefsViolations` | Undocumented
Instance Variable | `pageProducers` | Undocumented
Instance Variable | `remotelyCachedLUIDs` | Undocumented
Instance Variable | `remotelyCachedObjects` | Undocumented
Instance Variable | `remoteSecurity` | Undocumented
Instance Variable | `security` | Undocumented
Instance Variable | `serializingPerspective` | Undocumented
Instance Variable | `unserializingPerspective` | Undocumented
Instance Variable | `waitingForAnswers` | Undocumented
Method | `_recvMessage` | Received a message-send.
Method | `_sendAnswer` | (internal) Send an answer to a previously sent message.
Method | `_sendError` | (internal) Send an error for a previously sent message.
Method | `_sendFailure` | Log error and then send it.
Method | `_sendFailureOrError` | Call `_sendError` or `_sendFailure`, depending on whether `fail` represents an `Error` subclass or not.
Method | `_sendMessage` | Undocumented
Instance Variable | `_localCleanup` | Undocumented

Inherited from `Banana`:

Method | `callExpressionReceived` | Undocumented
Method | `connectionMade` | Called when a connection is made.
Method | `dataReceived` | Called whenever data 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` (via `Banana`):

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

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

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

Inherited from `Ephemeral` (via `Banana`, `Protocol`, `BaseProtocol`):

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, security=globalSecurity): (source)
overrides `twisted.spread.banana.Banana.__init__`

Undocumented

def cachedLocallyAs(self, cid): (source)

Undocumented

def cachedRemotelyAs(self, instance, incref=0): (source)

Parameters
instance | The instance to look up.
incref | Flag to specify whether to increment the reference.

Returns
An ID that says what this instance is cached as remotely, or `None` if it's not.

def cacheLocally(self, cid, instance): (source)

(internal)

Store a non-filled-out cached instance locally.

def cacheRemotely(self, instance): (source)

XXX

Returns
A new LUID.

def connectionFailed(self): (source)

Undocumented

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

The connection was lost.

Parameters
reason | message to put in `failure.Failure`

def connectionReady(self): (source)
overrides `twisted.spread.banana.Banana.connectionReady`

Initialize. Called after Banana negotiation is done.

def decCacheRef(self, objectID): (source)

(internal) Send a DECACHE directive.

Parameters
objectID | The object ID.

def dontNotifyOnDisconnect(self, notifier): (source)

Parameters
notifier | callback to remove from list of disconnect callbacks.

def expressionReceived(self, sexp): (source)
overrides `twisted.spread.banana.Banana.expressionReceived`

Evaluate an expression as it's received.

def localObjectForID(self, luid): (source)

Get a local object for a locally unique ID.

Returns
An object previously stored with `registerReference` or `None` if there is no object which corresponds to the given identifier.

def newLocalID(self): (source)

Returns
A newly generated LUID.

def newRequestID(self): (source)

Returns
A newly generated request ID.

def notifyOnConnect(self, notifier): (source)

Parameters
notifier | callback to call when the Broker connects.

def notifyOnDisconnect(self, notifier): (source)

Parameters
notifier | callback to call when the Broker disconnects.

def notifyOnFail(self, notifier): (source)

Parameters
notifier | callback to call if the Broker fails to connect.

def pauseProducing(self): (source)

Undocumented

def proto_answer(self, requestID, netResult): (source)

(internal) Got an answer to a previously sent message.

Look up the appropriate callback and call it.

Parameters
requestID | The request ID.
netResult | The answer.

def proto_cachemessage(self, requestID, objectID, message, answerRequired, netArgs, netKw): (source)

Undocumented

def proto_decache(self, objectID): (source)

(internal) Decrement the reference count of a cached object.

If the reference count is zero, free the reference, then send an 'uncached' directive.

Parameters
objectID | The object ID.

def proto_decref(self, objectID): (source)

(internal) Decrement the reference count of an object.

If the reference count is zero, it will free the reference to this object.

Parameters
objectID | The object ID.

def proto_didNotUnderstand(self, command): (source)

Respond to stock '`didNotUnderstand`' message.

Log the command that was not understood and continue. (Note: this will probably be changed to close the connection or raise an exception in the future.)

Parameters
command | The command to log.

def proto_error(self, requestID, fail): (source)

(internal) Deal with an error.

Parameters
requestID | The request ID.
fail | The failure.

def proto_message(self, requestID, objectID, message, answerRequired, netArgs, netKw): (source)

Undocumented

def proto_uncache(self, objectID): (source)

(internal) Tell the client it is now OK to uncache an object.

Parameters
objectID | The object ID.

def proto_version(self, vnum): (source)

Protocol message: (version version-number)

Check to make sure that both ends of the protocol are speaking the same version dialect.

Parameters
vnum | The version number.

def registerPageProducer(self, pager): (source)

Undocumented

def registerReference(self, object): (source)

Store a persistent reference to a local object and map its id() to a generated, session-unique ID.

Parameters
object | a local object

Returns
the generated ID

def remoteForName(self, name): (source)

Returns an object from the remote name mapping.

Note that this does not check the validity of the name, only creates a translucent reference for it.

Parameters
name | The name to look up.

Returns
An object which maps to the name.

def remotelyCachedForLUID(self, luid): (source)

Parameters
luid | The LUID to look up.

Returns
An instance which is cached remotely.

def resumeProducing(self): (source)

Called when the consumer attached to me runs out of buffer.

def sendCall(self, *exp): (source)

Utility method to send an expression to the other side of the connection.

Parameters
*exp | The expression.

def sendDecRef(self, objectID): (source)

(internal) Send a DECREF directive.

Parameters
objectID | The object ID.

def serialize(self, object, perspective=None, method=None, args=None, kw=None): (source)

Jelly an object according to the remote security rules for this broker.

Parameters
object | The object to jelly.
perspective | The perspective.
method | The method.
args | Arguments.
kw | Keyword arguments.

def setNameForLocal(self, name, object): (source)

Store a special (string) ID for this object.

This is how you specify a 'base' set of objects that the remote protocol can connect to.

Parameters
name | An ID.
object | The object.

def stopProducing(self): (source)

Undocumented

def unserialize(self, sexp, perspective=None): (source)

Unjelly an sexp according to the local security rules for this broker.

Parameters
sexp | The object to unjelly.
perspective | The perspective.

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

Undocumented

username = (source)

Undocumented

version: `int` = (source)

Undocumented

connects = (source)

Undocumented

currentLocalID = (source)

Undocumented

currentRequestID = (source)

Undocumented

disconnected: `int` = (source)

Undocumented

disconnects = (source)

Undocumented

failures = (source)

Undocumented

jellyArgs = (source)

Undocumented

jellyKw = (source)

Undocumented

jellyMethod = (source)

Undocumented

locallyCachedObjects = (source)

Undocumented

localObjects = (source)

Undocumented

localSecurity = (source)

Undocumented

luids = (source)

Undocumented

maxBrokerRefsViolations = (source)

Undocumented

pageProducers: `list` = (source)

Undocumented

remotelyCachedLUIDs = (source)

Undocumented

remotelyCachedObjects = (source)

Undocumented

remoteSecurity = (source)

Undocumented

security = (source)

Undocumented

serializingPerspective = (source)

Undocumented

unserializingPerspective = (source)

Undocumented

waitingForAnswers = (source)

Undocumented

def _recvMessage(self, findObjMethod, requestID, objectID, message, answerRequired, netArgs, netKw): (source)

Received a message-send.

Look up message based on object, unserialize the arguments, and invoke it with args, and send an 'answer' or 'error' response.

Parameters
findObjMethod | A callable which takes `objectID` as argument.
requestID | The requiest ID.
objectID | The object ID.
message | The message.
answerRequired |
netArgs | Arguments.
netKw | Keyword arguments.

def _sendAnswer(self, netResult, requestID): (source)

(internal) Send an answer to a previously sent message.

Parameters
netResult | The answer.
requestID | The request ID.

def _sendError(self, fail, requestID): (source)

(internal) Send an error for a previously sent message.

Parameters
fail | The failure.
requestID | The request ID.

def _sendFailure(self, fail, requestID): (source)

Log error and then send it.

Parameters
fail | The failure.
requestID | The request ID.

def _sendFailureOrError(self, fail, requestID): (source)

Call `_sendError` or `_sendFailure`, depending on whether `fail` represents an `Error` subclass or not.

Parameters
fail | The failure.
requestID | The request ID.

def _sendMessage(self, prefix, perspective, objectID, message, args, kw): (source)

Undocumented

_localCleanup: `dict` = (source)

Undocumented