*** empty log message ***

This commit is contained in:
Jesse Schell 2001-03-30 01:21:11 +00:00
parent d332fc9402
commit 51ec5d8e95
2 changed files with 39 additions and 4 deletions

View File

@ -236,10 +236,9 @@ class ClientRepository(DirectObject.DirectObject):
del(self.doId2cdc[doId])
# Sanity check the dictionaries
assert(len(self.doId2do) == len(self.doId2cdc))
# Disable the object itself
obj.disableAndAnnounce()
# Delete the object itself
obj.delete()
# Disable, announce, and delete the object itself...
# unless delayDelete is on...
obj.deleteOrDelay()
# If it is in the cache, remove it.
elif self.cache.contains(doId):
self.cache.delete(doId)

View File

@ -14,6 +14,13 @@ class DistributedObject(PandaObject):
# that lives in the UberZone. This keeps them from being disabled when you change
# zones, even to the quiet zone.
self.setNeverDisable(0)
# This flag tells whether the object can be deleted right away,
# or not.
self.delayDeleteFlag = 0
# This flag tells whether a delete has been requested on this
# object.
self.deleteImminent = 0
return None
def setNeverDisable(self, bool):
@ -24,6 +31,35 @@ class DistributedObject(PandaObject):
def getNeverDisable(self):
return self.neverDisable
def deleteOrDelay(self):
if self.delayDeleteFlag:
self.deleteImminent = 1
else:
self.disableAnnounceAndDelete()
return None
def delayDelete(self, flag):
if self.delayDeleteFlag:
if flag:
self.notify.warning("Object: " + str(self.getDoId()) +
" is already in delayDelete mode")
else:
self.delayDeleteFlag = 0
if self.deleteImminent:
self.disableAnnounceAndDelete()
else:
if flag:
self.delayDeleteFlag = 1
else:
self.notify.warning("Object: " + str(self.getDoId()) +
" is not in delayDelete mode")
return None
def disableAnnounceAndDelete(self):
self.disableAndAnnounce()
self.delete()
return None
def disableAndAnnounce(self):
"""disableAndAnnounce(self)
Inheritors should *not* redefine this function.