Panda3D
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Properties
Public Member Functions | Public Attributes | List of all members
DoCollectionManager Class Reference
Inheritance diagram for DoCollectionManager:
ConnectionRepository ClientRepositoryBase OldClientRepository

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 More...
 
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={} More...
 

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

doId2do
doId2ownerView

self.zoneId2doIds={}