Upon re-reading the Cacheable docs I still don't understand how to use it. Can we take my previous home-brewed example and use that as a launch point for illustrating how to use Cacheable? Here's the example.
We assume the client has a PlayerClient instance with .server pointing to a PlayerServer instance. The PlayerServer has a .client list of PlayerClients. The code fragments are the methods needed to spawn a new Agent and hook up the client and server objects. class PlayerServer(pb.referenceable): def newAgent(self, asker): """Client told us it wants a new Agent""" if self.thisIsLegal(): a = AgentServer() self.agents.append(a) for client in self.clients: d = client.callRemote("newAgent", a) d.addCallback(lambda obj: a.clients.append(obj)) class PlayerClient(bp.referenceable): def requestNewAgent(self): """Tell the server we want to spawn a new Agent""" self.server.callRemote("newAgent", self) def newAgent(self, serverObj): a = AgentClient() self.agents.append(a) a.server = serverObj return a How does Cacheable help do this? _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python