~certify-web-dev/twisted/certify-trunk

« back to all changes in this revision

Viewing changes to twisted/pb/ipb.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2006-02-22 22:52:47 UTC
  • Revision ID: james.westby@ubuntu.com-20060222225247-0mjb8ij9473m5zse
Tags: 2.2.0-1ubuntu1
Synchronize with Debian unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
 
 
3
from zope.interface import interface
 
4
Interface = interface.Interface
 
5
 
 
6
# TODO: move these here
 
7
from twisted.pb.tokens import ISlicer, IRootSlicer, IUnslicer
 
8
 
 
9
 
 
10
class DeadReferenceError(Exception):
 
11
    """The RemoteReference is dead, Jim."""
 
12
 
 
13
 
 
14
class IReferenceable(Interface):
 
15
    """This object is remotely referenceable. This means it is represented to
 
16
    remote systems as an opaque identifier, and that round-trips preserve
 
17
    identity.
 
18
    """
 
19
 
 
20
    def processUniqueID():
 
21
        """Return a unique identifier (scoped to the process containing the
 
22
        Referenceable). Most objects can just use C{id(self)}, but objects
 
23
        which should be indistinguishable to a remote system may want
 
24
        multiple objects to map to the same PUID."""
 
25
 
 
26
class IRemotelyCallable(Interface):
 
27
    """This object is remotely callable. This means it defines some remote_*
 
28
    methods and may have a schema which describes how those methods may be
 
29
    invoked.
 
30
    """
 
31
 
 
32
    def getInterfaceNames():
 
33
        """Return a list of RemoteInterface names to which this object knows
 
34
        how to respond."""
 
35
 
 
36
    def doRemoteCall(methodname, kwargs):
 
37
        """Invoke the given remote method. This method may raise an
 
38
        exception, return normally, or return a Deferred."""
 
39