Panda3D
Loading...
Searching...
No Matches
DoCollectionManager Class Reference
Inheritance diagram for DoCollectionManager:
ConnectionRepository ClientRepositoryBase ClientRepository

Public Member Functions

 __init__ (self)
 
 addDOToTables (self, do, location=None, ownerView=False)
 
 callbackWithDo (self, doId, callback)
 
 callbackWithOwnerView (self, doId, callback)
 
 countObjects (self, classType)
 
 deleteDistributedObjects (self)
 
 deleteObjectLocation (self, object, parentId, zoneId)
 
 doByDistance (self)
 
 doFind (self, str)
 
 doFindAll (self, str)
 
 doFindAllInstances (self, cls)
 
 doFindAllMatching (self, str)
 
 doFindAllOfType (self, query)
 
 dosByDistance (self)
 
 findAnyOfType (self, type)
 
 getAllOfType (self, type)
 
 getDo (self, doId)
 
 getDoIdList (self, parentId, zoneId=None, classType=None)
 
 getDoList (self, parentId, zoneId=None, classType=None)
 
 getDoTable (self, ownerView)
 
 getGameDoId (self)
 
 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)
 
 getObjectsOfClassInZone (self, parentId, zoneId, objClass)
 
 getOwnerView (self, doId)
 
 getOwnerViewDoIdList (self, classType)
 
 getOwnerViewDoList (self, classType)
 
 handleObjectLocation (self, di)
 
 handleSetLocation (self, di)
 
 hasOwnerViewDoId (self, doId)
 
 isInDoTables (self, doId)
 
 isValidLocationTuple (self, location)
 
 printObjectCount (self)
 
 printObjects (self)
 
 removeDOFromTables (self, do)
 
 storeObjectLocation (self, object, parentId, zoneId)
 
 webPrintObjectCount (self)
 

Public Attributes

dict doId2do = {}
 location = do.getLocation() if location is not None: if location not in self.zoneId2doIds: self.notify.warning( 'dobj s (s) has invalid location: s' % (do, do.doId, location)) else: assert do.doId in self.zoneId2doIds[location] del self.zoneId2doIds[location][do.doId] if len(self.zoneId2doIds[location]) == 0: del self.zoneId2doIds[location]
 
dict doId2ownerView = {}
 self.zoneId2doIds={}
 
 getDo
 

Protected Member Functions

 _compareDistance (self, do1, do2)
 
 _getDistanceFromLA (self, do)
 
 _printObjects (self, table)
 
 _returnObjects (self, table)
 

Protected Attributes

 _doHierarchy = DoHierarchy.DoHierarchy()
 

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self)

Member Function Documentation

◆ _compareDistance()

_compareDistance ( self,
do1,
do2 )
protected

◆ _getDistanceFromLA()

_getDistanceFromLA ( self,
do )
protected

◆ _printObjects()

_printObjects ( self,
table )
protected

◆ _returnObjects()

_returnObjects ( self,
table )
protected

◆ addDOToTables()

addDOToTables ( self,
do,
location = None,
ownerView = False )

◆ callbackWithDo()

callbackWithDo ( self,
doId,
callback )

◆ callbackWithOwnerView()

callbackWithOwnerView ( self,
doId,
callback )

◆ countObjects()

countObjects ( self,
classType )
Counts the number of objects of the given type in the
repository (for testing purposes)

◆ deleteDistributedObjects()

deleteDistributedObjects ( self)

◆ deleteObjectLocation()

deleteObjectLocation ( self,
object,
parentId,
zoneId )

◆ doByDistance()

doByDistance ( self)

◆ doFind()

doFind ( self,
str )
Returns list of distributed objects with matching str in value.

◆ doFindAll()

doFindAll ( self,
str )
Returns list of distributed objects with matching str in value.

◆ doFindAllInstances()

doFindAllInstances ( self,
cls )

◆ doFindAllMatching()

doFindAllMatching ( self,
str )
Returns list of distributed objects with matching str in value.

◆ doFindAllOfType()

doFindAllOfType ( self,
query )
Useful method for searching through the Distributed Object collection
for objects of a particular type

◆ dosByDistance()

dosByDistance ( self)

◆ findAnyOfType()

findAnyOfType ( self,
type )

◆ getAllOfType()

getAllOfType ( self,
type )

◆ getDo()

getDo ( self,
doId )

◆ getDoIdList()

getDoIdList ( self,
parentId,
zoneId = None,
classType = None )

◆ getDoList()

getDoList ( self,
parentId,
zoneId = None,
classType = None )
Args:
    parentId: any distributed object id.
    zoneId: 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: 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.

◆ getDoTable()

getDoTable ( self,
ownerView )

◆ getGameDoId()

getGameDoId ( self)

◆ getObjectsInZone()

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.

◆ getObjectsOfClassInZone()

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.

◆ getOwnerView()

getOwnerView ( self,
doId )

◆ getOwnerViewDoIdList()

getOwnerViewDoIdList ( self,
classType )

◆ getOwnerViewDoList()

getOwnerViewDoList ( self,
classType )

◆ handleObjectLocation()

handleObjectLocation ( self,
di )

◆ handleSetLocation()

handleSetLocation ( self,
di )

◆ hasOwnerViewDoId()

hasOwnerViewDoId ( self,
doId )

◆ isInDoTables()

isInDoTables ( self,
doId )

◆ isValidLocationTuple()

isValidLocationTuple ( self,
location )

◆ printObjectCount()

printObjectCount ( self)

◆ printObjects()

printObjects ( self)

◆ removeDOFromTables()

removeDOFromTables ( self,
do )

◆ storeObjectLocation()

storeObjectLocation ( self,
object,
parentId,
zoneId )

Reimplemented in ClientRepository.

◆ webPrintObjectCount()

webPrintObjectCount ( self)

Member Data Documentation

◆ _doHierarchy

_doHierarchy = DoHierarchy.DoHierarchy()
protected

◆ doId2do

dict doId2do = {}

location = do.getLocation() if location is not None: if location not in self.zoneId2doIds: self.notify.warning( 'dobj s (s) has invalid location: s' % (do, do.doId, location)) else: assert do.doId in self.zoneId2doIds[location] del self.zoneId2doIds[location][do.doId] if len(self.zoneId2doIds[location]) == 0: del self.zoneId2doIds[location]

◆ doId2ownerView

dict doId2ownerView = {}

self.zoneId2doIds={}

◆ getDo

getDo