From 1e5fdf94f6a89cf09d6c70e3129ab1fa6d0d05c9 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Wed, 7 Mar 2007 03:40:22 +0000 Subject: [PATCH] added ~objectcount and ~aiobjectcount --- direct/src/distributed/DoCollectionManager.py | 26 +++++++++++++++++++ direct/src/showbase/PythonUtil.py | 2 ++ 2 files changed, 28 insertions(+) diff --git a/direct/src/distributed/DoCollectionManager.py b/direct/src/distributed/DoCollectionManager.py index 867c91f8aa..da1953e3a5 100755 --- a/direct/src/distributed/DoCollectionManager.py +++ b/direct/src/distributed/DoCollectionManager.py @@ -80,6 +80,32 @@ class DoCollectionManager: distObj.dclass.getName(), distObj.__dict__.get("name")) + def _printObjects(self, table): + class2count = {} + for obj in self.getDoTable(ownerView=False).values(): + className = obj.__class__.__name__ + class2count.setdefault(className, 0) + class2count[className] += 1 + count2classes = invertDictLossless(class2count) + counts = count2classes.keys() + counts.sort() + counts.reverse() + for count in counts: + count2classes[count].sort() + for name in count2classes[count]: + print '%s %s' % (count, name) + + def printObjectCount(self): + # print object counts by distributed object type + print '==== OBJECT DUMP ====' + if self.hasOwnerView(): + print '== doId2do' + self._printObjects(self.getDoTable(ownerView=False)) + if self.hasOwnerView(): + print '' + print '== doId2ownerView' + self._printObjects(self.getDoTable(ownerView=True)) + def getDoList(self, parentId, zoneId=None, classType=None): """ parentId is any distributed object id. diff --git a/direct/src/showbase/PythonUtil.py b/direct/src/showbase/PythonUtil.py index 3274dcec44..5a9e6fb30d 100644 --- a/direct/src/showbase/PythonUtil.py +++ b/direct/src/showbase/PythonUtil.py @@ -2763,3 +2763,5 @@ __builtin__.DelayedFunctor = DelayedFunctor __builtin__.FrameDelayedCall = FrameDelayedCall __builtin__.ArgumentEater = ArgumentEater __builtin__.ClassTree = ClassTree +__builtin__.invertDict = invertDict +__builtin__.invertDictLossless = invertDictLossless