# ``twisted`.`spread`.`pb`.`RemoteReference``

class documentation

`class RemoteReference(Serializable, styles.Ephemeral): (source)`

Known subclasses: `twisted.words.service.AvatarReference`, `twisted.words.service.PBGroupReference`, `twisted.words.service.PBMindReference`

Implements interfaces: `twisted.spread.interfaces.IUnjellyable`

View In Hierarchy

A translucent reference to a remote object.

I may be a reference to a `flavors.ViewPoint`, a `flavors.Referenceable`, or an `IPerspective` implementer (e.g., pb.Avatar). From the client's perspective, it is not possible to tell which except by convention.

I am a "translucent" reference because although no additional bookkeeping overhead is given to the application programmer for manipulating a reference, return values are asynchronous.

See also `twisted.internet.defer`.

Method | `__cmp__` |
Method | `__del__` | Do distributed reference counting on finalization.
Method | `__hash__` | Hash me.
Method | `__init__` | (internal) Initialize me with a broker and a locally-unique ID.
Method | `callRemote` | Asynchronously invoke a remote method.
Method | `dontNotifyOnDisconnect` | Remove a callback that was registered with notifyOnDisconnect.
Method | `jellyFor` | If I am being sent back to where I came from, serialize as a local backreference.
Method | `notifyOnDisconnect` | Register a callback to be called if our broker gets disconnected.
Method | `remoteMethod` |
Method | `unjellyFor` | Unjelly myself for the jellier.
Instance Variable | `broker` | The broker I am obtained through.
Instance Variable | `disconnectCallbacks` | Undocumented
Instance Variable | `doRefCount` | Undocumented
Instance Variable | `luid` | Undocumented
Instance Variable | `perspective` | Undocumented
Method | `_disconnected` | Called if we are disconnected and have callbacks registered.

Inherited from `Serializable`:

Method | `processUniqueID` | Return an ID which uniquely represents this object for this process.

Inherited from `Jellyable` (via `Serializable`):

Method | `getStateFor` | 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 __cmp__(self, other): (source)

Parameters
other | another `RemoteReference` to compare me to.

def __del__(self): (source)
Do distributed reference counting on finalization.
def __hash__(self): (source)
Hash me.
def __init__(self, perspective, broker, luid, doRefCount): (source)

(internal) Initialize me with a broker and a locally-unique ID.

The ID is unique only to the particular Perspective Broker instance.

def callRemote(self, _name, *args, **kw): (source)
Asynchronously invoke a remote method.

Parameters
_name:`str` | the name of the remote method to invoke
*args | arguments to serialize for the remote function
**kw | keyword arguments to serialize for the remote function.
Returns
`twisted.internet.defer.Deferred` | a Deferred which will be fired when the result of this remote call is received.

def dontNotifyOnDisconnect(self, callback): (source)
Remove a callback that was registered with notifyOnDisconnect.

Parameters
callback | a callable

def jellyFor(self, jellier): (source)
from `twisted.spread.interfaces.IJellyable`
overrides `twisted.spread.jelly.Jellyable.jellyFor`
If I am being sent back to where I came from, serialize as a local backreference.
def notifyOnDisconnect(self, callback): (source)
Register a callback to be called if our broker gets disconnected.

Parameters
callback | a callable which will be called with one argument, this instance.

def remoteMethod(self, key): (source)

Parameters
key | The key.
Returns
A `RemoteMethod` for this key.

def unjellyFor(self, unjellier, unjellyList): (source)
from `twisted.spread.interfaces.IUnjellyable`
overridden in `twisted.words.service.PBGroupReference`
Unjelly myself for the jellier.

Parameters
unjellier | Undocumented
unjellyList | Undocumented
jellier | A stateful object which exists for the lifetime of a single call to `unjelly`.
jellyList | The `list` which represents the jellied state of the object to be unjellied.
Returns
The object which results from unjellying.

broker: `Broker` = (source)
The broker I am obtained through.
disconnectCallbacks = (source)

Undocumented

doRefCount = (source)

Undocumented

luid = (source)

Undocumented

perspective = (source)

Undocumented

def _disconnected(self): (source)
Called if we are disconnected and have callbacks registered.