Panda3D
Public Member Functions | Public Attributes

DoCollectionManager Class Reference

List of all members.

Public Member Functions

def __init__
def addDOToTables
def callbackWithDo
def callbackWithOwnerView
def countObjects
def deleteDistributedObjects
def deleteObjectLocation
def doByDistance
def doFind
def doFindAll
def doFindAllInstances
def doFindAllMatching
def doFindAllOfType
def dosByDistance
def findAnyOfType
def getAllOfType
def getDo
def getDoIdList
def getDoList
def getDoTable
def getGameDoId
def getObjectsInZone
 def changeDOZoneInTables(self, do, newParentId, newZoneId, oldParentId, oldZoneId): if 1: self.storeObjectLocation(do.doId, newParentId, newZoneId) else: #assert not hasattr(do, "isQueryAllResponse") or not do.isQueryAllResponse oldLocation = (oldParentId, oldZoneId) newLocation = (newParentId, newZoneId) # HACK: DistributedGuildMemberUD starts in -1, -1, which isnt ever put in the # zoneId2doIds table if self.isValidLocationTuple(oldLocation): assert self.notify.debugStateCall(self) assert oldLocation in self.zoneId2doIds assert do.doId in self.zoneId2doIds[oldLocation] assert do.doId not in self.zoneId2doIds.get(newLocation, {}) # remove from old zone del(self.zoneId2doIds[oldLocation][do.doId]) if len(self.zoneId2doIds[oldLocation]) == 0: del self.zoneId2doIds[oldLocation] if self.isValidLocationTuple(newLocation): # add to new zone self.zoneId2doIds.setdefault(newLocation, {}) self.zoneId2doIds[newLocation][do.doId]=do
def getObjectsOfClassInZone
def getOwnerView
def getOwnerViewDoIdList
def getOwnerViewDoList
def handleObjectLocation
def handleSetLocation
def hasOwnerViewDoId
def isInDoTables
def isValidLocationTuple
def printObjectCount
def printObjects
def removeDOFromTables
def storeObjectLocation
def webPrintObjectCount

Public Attributes

 doId2do
 doId2ownerView
 self.zoneId2doIds={}

Constructor & Destructor Documentation

def __init__ (   self)

Member Function Documentation

def addDOToTables (   self,
  do,
  location = None,
  ownerView = False 
)
def callbackWithDo (   self,
  doId,
  callback 
)
def callbackWithOwnerView (   self,
  doId,
  callback 
)
def countObjects (   self,
  classType 
)
Counts the number of objects of the given type in the
repository (for testing purposes)
def deleteDistributedObjects (   self)
def deleteObjectLocation (   self,
  object,
  parentId,
  zoneId 
)
def doByDistance (   self)
def doFind (   self,
  str 
)
Returns list of distributed objects with matching str in value.
def doFindAll (   self,
  str 
)
Returns list of distributed objects with matching str in value.
def doFindAllInstances (   self,
  cls 
)
def doFindAllMatching (   self,
  str 
)
Returns list of distributed objects with matching str in value.
def doFindAllOfType (   self,
  query 
)
Useful method for searching through the Distributed Object collection 
for objects of a particular type
def dosByDistance (   self)
def findAnyOfType (   self,
  type 
)
def getAllOfType (   self,
  type 
)
def getDo (   self,
  doId 
)
def getDoIdList (   self,
  parentId,
  zoneId = None,
  classType = None 
)
def getDoList (   self,
  parentId,
  zoneId = None,
  classType = None 
)
parentId is any distributed object id.
zoneId is a uint32, defaults to None (all zones).  Try zone 2 if
    you're not sure which zone to use (0 is a bad/null zone and
    1 has had reserved use in the past as a no messages zone, while
    2 has traditionally been a global, uber, misc stuff zone).
dclassType is a distributed class type filter, defaults
    to None (no filter).

If dclassName is None then all objects in the zone are returned;
otherwise the list is filtered to only include objects of that type.
def getDoTable (   self,
  ownerView 
)
def getGameDoId (   self)
def getObjectsInZone (   self,
  parentId,
  zoneId 
)

def changeDOZoneInTables(self, do, newParentId, newZoneId, oldParentId, oldZoneId): if 1: self.storeObjectLocation(do.doId, newParentId, newZoneId) else: #assert not hasattr(do, "isQueryAllResponse") or not do.isQueryAllResponse oldLocation = (oldParentId, oldZoneId) newLocation = (newParentId, newZoneId) # HACK: DistributedGuildMemberUD starts in -1, -1, which isnt ever put in the # zoneId2doIds table if self.isValidLocationTuple(oldLocation): assert self.notify.debugStateCall(self) assert oldLocation in self.zoneId2doIds assert do.doId in self.zoneId2doIds[oldLocation] assert do.doId not in self.zoneId2doIds.get(newLocation, {}) # remove from old zone del(self.zoneId2doIds[oldLocation][do.doId]) if len(self.zoneId2doIds[oldLocation]) == 0: del self.zoneId2doIds[oldLocation] if self.isValidLocationTuple(newLocation): # add to new zone self.zoneId2doIds.setdefault(newLocation, {}) self.zoneId2doIds[newLocation][do.doId]=do

returns dict of doId:distObj for a zone.
returned dict is safely mutable.
def getObjectsOfClassInZone (   self,
  parentId,
  zoneId,
  objClass 
)
returns dict of doId:object for a zone, containing all objects
that inherit from 'class'. returned dict is safely mutable.
def getOwnerView (   self,
  doId 
)
def getOwnerViewDoIdList (   self,
  classType 
)
def getOwnerViewDoList (   self,
  classType 
)
def handleObjectLocation (   self,
  di 
)
def handleSetLocation (   self,
  di 
)
def hasOwnerViewDoId (   self,
  doId 
)
def isInDoTables (   self,
  doId 
)
def isValidLocationTuple (   self,
  location 
)
def printObjectCount (   self)
def printObjects (   self)
def removeDOFromTables (   self,
  do 
)
def storeObjectLocation (   self,
  object,
  parentId,
  zoneId 
)
def webPrintObjectCount (   self)

Member Data Documentation

self.zoneId2doIds={}

 All Classes Namespaces Functions Variables Properties