Package twisted :: Package spread :: Module pb :: Class Broker

[frames | no frames]

## Class Broker

           Ephemeral --+
                       |
    BaseProtocol --+   |
                   |   |
            Protocol --+
                       |
                  Pynana --+
                           |
                      Canana --+
                               |
                              Broker

Known Subclasses:
  `MaildirBroker`, `MaildirClient`

I am a broker for objects.

Method Summary
| `__init__(self, isClient, security)`
| ``_recvMessage`(self, findObjMethod, requestID, objectID, message, answerRequired, netArgs, netKw)` Received a message-send.
| ``_sendAnswer`(self, netResult, requestID)` (internal) Send an answer to a previously sent message.
| ``_sendError`(self, fail, requestID)` (internal) Send an error for a previously sent message.
| ``_sendFailure`(self, fail, requestID)` Log error and then send it.
| `_sendMessage(self, prefix, perspective, objectID, message, args, kw)`
| `cachedLocallyAs(self, cid)`
| ``cachedRemotelyAs`(self, instance, incref)` Returns an ID that says what this instance is cached as remotely, or `None` if it's not.
| ``cacheLocally`(self, cid, instance)` (internal)
| ``cacheRemotely`(self, instance)` XXX
| ``connectionFailed`(self)` (Deprecated)
| ``connectionLost`(self, reason)` The connection was lost.
| ``connectionReady`(self)` Initialize.
| ``decCacheRef`(self, objectID)` (internal) Send a DECACHE directive.
| ``dontNotifyOnDisconnect`(self, notifier)` Remove a callback from list of disconnect callbacks.
| ``expressionReceived`(self, sexp)` Evaluate an expression as it's received.
| ``localObjectForID`(self, luid)` Get a local object for a locally unique ID.
| ``newLocalID`(self)` Generate a new LUID.
| ``newRequestID`(self)` Generate a new request ID.
| ``notifyOnConnect`(self, notifier)` Call the given callback when the Broker connects.
| ``notifyOnDisconnect`(self, notifier)` Call the given callback when the Broker disconnects.
| ``notifyOnFail`(self, notifier)` Call the given callback if the Broker fails to connect.
| `pauseProducing(self)`
| ``proto_answer`(self, requestID, netResult)` (internal) Got an answer to a previously sent message.
| `proto_cachemessage(self, requestID, objectID, message, answerRequired, netArgs, netKw)`
| ``proto_decache`(self, objectID)` (internal) Decrement the reference count of a cached object.
| ``proto_decref`(self, objectID)` (internal) Decrement the reference count of an object.
| ``proto_didNotUnderstand`(self, command)` Respond to stock '`didNotUnderstand`' message.
| ``proto_error`(self, requestID, fail)` (internal) Deal with an error.
| `proto_message(self, requestID, objectID, message, answerRequired, netArgs, netKw)`
| ``proto_uncache`(self, objectID)` (internal) Tell the client it is now OK to uncache an object.
| ``proto_version`(self, vnum)` Protocol message: (version version-number)
| `registerPageProducer(self, pager)`
| ``registerReference`(self, object)` Get an ID for a local object.
| ``remoteForName`(self, name)` Returns an object from the remote name mapping.
| ``remotelyCachedForLUID`(self, luid)` Returns an instance which is cached remotely, with this LUID.
| ``resumeProducing`(self)` Called when the consumer attached to me runs out of buffer.
| ``sendCall`(self, *exp)` Utility method to send an expression to the other side of the connection.
| ``sendDecRef`(self, objectID)` (internal) Send a DECREF directive.
| ``serialize`(self, object, perspective, method, args, kw)` Jelly an object according to the remote security rules for this broker.
| ``setNameForLocal`(self, name, object)` Store a special (string) ID for this object.
| `stopProducing(self)`
| ``unserialize`(self, sexp, perspective)` Unjelly an sexp according to the local security rules for this broker.
Inherited from Canana
| ``connectionMade`(self)` Called when a connection is made.
| ``dataReceived`(self, chunk)`
| ``sendEncoded`(self, obj)`
Inherited from Pynana
| ``_encode`(self, obj, write)`
| ``_selectDialect`(self, dialect)`
| ``callExpressionReceived`(self, obj)`
| ``gotItem`(self, item)`
Inherited from BaseProtocol
| ``makeConnection`(self, transport)` Make a connection to a transport and a server.
Inherited from Ephemeral
| ``__getstate__`(self)`
| ``__setstate__`(self, state)`

Class Variable Summary
`NoneType` | `factory` = None
`int` | `maxBrokerRefsViolations` = 0
`NoneType` | `username` = None
`int` | `version` = 6
`NoneType` | `waitingForAnswers` = None
Inherited from Pynana
`str` | `buffer` = `''`
`dict` | `incomingVocabulary` = `{1: 'None', 2: 'class', 3: 'derefer...`
`str` | `k` = `'lcache'`
`list` | `knownDialects` = `['pb', 'none']`
`dict` | `outgoingVocabulary` = `{'function': 6, 'None': 1, 'diction...`
`int` | `v` = 18
Inherited from Protocol
`tuple` | `__implements__` = `(<class twisted.internet.interfaces.IPr...`
Inherited from BaseProtocol
`int` | `connected` = 0
`NoneType` | `transport` = None

Method Details

### _recvMessage(self, findObjMethod, requestID, objectID, message, answerRequired, netArgs, netKw)

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.

### _sendAnswer(self, netResult, requestID)

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

### _sendError(self, fail, requestID)

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

### _sendFailure(self, fail, requestID)

Log error and then send it.

### cachedRemotelyAs(self, instance, incref=0)

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

### cacheLocally(self, cid, instance)

(internal)

Store a non-filled-out cached instance locally.

### cacheRemotely(self, instance)

XXX

### connectionFailed(self)

(Deprecated)

This used to be called when the connection was not properly established.

  Overrides:
    `twisted.internet.protocol.Protocol.connectionFailed` (inherited documentation)

### connectionLost(self, reason)

The connection was lost.

  Overrides:
    `twisted.internet.protocol.Protocol.connectionLost`

### connectionReady(self)

Initialize. Called after Banana negotiation is done.

  Overrides:
    `twisted.spread.banana.Pynana.connectionReady`

### decCacheRef(self, objectID)

(internal) Send a DECACHE directive.

### dontNotifyOnDisconnect(self, notifier)

Remove a callback from list of disconnect callbacks.

### expressionReceived(self, sexp)

Evaluate an expression as it's received.

  Overrides:
    `twisted.spread.banana.Pynana.expressionReceived`

### localObjectForID(self, luid)

Get a local object for a locally unique ID.

I will return an object previously stored with self.`registerReference`, or `None` if XXX:Unfinished thought:XXX

### newLocalID(self)

Generate a new LUID.

### newRequestID(self)

Generate a new request ID.

### notifyOnConnect(self, notifier)

Call the given callback when the Broker connects.

### notifyOnDisconnect(self, notifier)

Call the given callback when the Broker disconnects.

### notifyOnFail(self, notifier)

Call the given callback if the Broker fails to connect.

### proto_answer(self, requestID, netResult)

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

Look up the appropriate callback and call it.

### proto_decache(self, objectID)

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

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

### proto_decref(self, objectID)

(internal) Decrement the reference count of an object.

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

### proto_didNotUnderstand(self, command)

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.)

### proto_error(self, requestID, fail)

(internal) Deal with an error.

### proto_uncache(self, objectID)

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

### proto_version(self, vnum)

Protocol message: (version version-number)

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

### registerReference(self, object)

Get an ID for a local object.

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

### remoteForName(self, name)

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.

### remotelyCachedForLUID(self, luid)

Returns an instance which is cached remotely, with this LUID.

### resumeProducing(self)

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

### sendCall(self, *exp)

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

### sendDecRef(self, objectID)

(internal) Send a DECREF directive.

### serialize(self, object, perspective=None, method=None, args=None, kw=None)

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

### setNameForLocal(self, name, object)

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.

### unserialize(self, sexp, perspective=None)

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

Class Variable Details

### factory

  Type:
    `NoneType`
  Value:

        None

### maxBrokerRefsViolations

  Type:
    `int`
  Value:

        0

### username

  Type:
    `NoneType`
  Value:

        None

### version

  Type:
    `int`
  Value:

        6

### waitingForAnswers

  Type:
    `NoneType`
  Value:

        None

Generated by Epydoc 2.0 on Wed Feb 25 07:36:59 2004 | http://epydoc.sf.net