#!/usr/bin/env python # Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. from __future__ import print_function from twisted.spread import pb from twisted.internet import reactor def main(): foo = Foo() factory = pb.PBClientFactory() reactor.connectTCP("localhost", 8800, factory) factory.getRootObject().addCallback(foo.step1) reactor.run() # keeping globals around is starting to get ugly, so we use a simple class # instead. Instead of hooking one function to the next, we hook one method # to the next. class Foo: def __init__(self): self.oneRef = None def step1(self, obj): print("got one object:", obj) self.oneRef = obj print("asking it to getTwo") self.oneRef.callRemote("getTwo").addCallback(self.step2) def step2(self, two): print("got two object:", two) print("giving it back to one") print("one is", self.oneRef) self.oneRef.callRemote("checkTwo", two) main()