diff --git a/direct/src/distributed/AsyncRequest.py b/direct/src/distributed/AsyncRequest.py index f1b320ab50..c6e52d537d 100755 --- a/direct/src/distributed/AsyncRequest.py +++ b/direct/src/distributed/AsyncRequest.py @@ -91,9 +91,29 @@ class AsyncRequest(DirectObject): self.acceptOnce( "doFieldResponse-%s"%(context,), self._checkCompletion, [key]) + self.air.queryObjectField(dclassName, fieldName, doId, context) self._resetTimeoutTask() + def askForObjectFields( + self, dclassName, fieldNames, doId, key = None, context = None): + """ + Request an already created object, i.e. read from database. + """ + assert AsyncRequest.notify.debugCall() + if key is None: + # default the dictionary key to the fieldName + key = fieldNames[0] + assert doId + if context is None: + context = self.air.allocateContext() + self.air.contextToClassName[context] = dclassName + self.acceptOnce( + "doFieldResponse-%s"%(context,), + self._checkCompletion, [key]) + self.air.queryObjectFields(dclassName, fieldNames, doId, context) + self._resetTimeoutTask() + def askForObject(self, doId, context = None): """ Request an already created object, i.e. read from database.