Jelajahi Sumber

"added askForObjectFields()"

Josh Wilson 18 tahun lalu
induk
melakukan
c7a09a3926
1 mengubah file dengan 20 tambahan dan 0 penghapusan
  1. 20 0
      direct/src/distributed/AsyncRequest.py

+ 20 - 0
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.