made post generates for DistributedObject stuff

This commit is contained in:
Zachary Pavlov 2007-02-10 02:26:48 +00:00
parent 08d204b964
commit fc5b2e04ce
4 changed files with 50 additions and 15 deletions

View File

@ -207,9 +207,7 @@ class DistributedObject(DistributedObjectBase, EnforcesCalldowns):
generated and all of its required fields filled in. generated and all of its required fields filled in.
""" """
assert self.notify.debug('announceGenerate(): %s' % (self.doId)) assert self.notify.debug('announceGenerate(): %s' % (self.doId))
if self.activeState != ESGenerated:
self.activeState = ESGenerated
messenger.send(self.uniqueName("generate"), [self])
@calldownEnforced @calldownEnforced
def disable(self): def disable(self):
@ -281,14 +279,24 @@ class DistributedObject(DistributedObjectBase, EnforcesCalldowns):
""" """
return self.doId return self.doId
#This message was moved out of announce generate
#to avoid ordering issues.
def postGenerateMessage(self):
if self.activeState != ESGenerated:
self.activeState = ESGenerated
messenger.send(self.uniqueName("generate"), [self])
def updateRequiredFields(self, dclass, di): def updateRequiredFields(self, dclass, di):
dclass.receiveUpdateBroadcastRequired(self, di) dclass.receiveUpdateBroadcastRequired(self, di)
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def updateAllRequiredFields(self, dclass, di): def updateAllRequiredFields(self, dclass, di):
dclass.receiveUpdateAllRequired(self, di) dclass.receiveUpdateAllRequired(self, di)
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def updateRequiredOtherFields(self, dclass, di): def updateRequiredOtherFields(self, dclass, di):
# First, update the required fields # First, update the required fields
dclass.receiveUpdateBroadcastRequired(self, di) dclass.receiveUpdateBroadcastRequired(self, di)
@ -296,7 +304,8 @@ class DistributedObject(DistributedObjectBase, EnforcesCalldowns):
# Announce generate after updating all the required fields, # Announce generate after updating all the required fields,
# but before we update the non-required fields. # but before we update the non-required fields.
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
dclass.receiveUpdateOther(self, di) dclass.receiveUpdateOther(self, di)
def sendUpdate(self, fieldName, args = [], sendToId = None): def sendUpdate(self, fieldName, args = [], sendToId = None):

View File

@ -186,8 +186,6 @@ class DistributedObjectAI(DistributedObjectBase, EnforcesCalldowns):
Called after the object has been generated and all Called after the object has been generated and all
of its required fields filled in. Overwrite when needed. of its required fields filled in. Overwrite when needed.
""" """
self.__generated = True
messenger.send(self.uniqueName("generate"), [self])
def addInterest(self, zoneId, note="", event=None): def addInterest(self, zoneId, note="", event=None):
self.air.addInterest(self.getDoId(), zoneId, note, event) self.air.addInterest(self.getDoId(), zoneId, note, event)
@ -257,19 +255,27 @@ class DistributedObjectAI(DistributedObjectBase, EnforcesCalldowns):
# Inheritors should override # Inheritors should override
pass pass
def postGenerateMessage(self):
self.__generated = True
messenger.send(self.uniqueName("generate"), [self])
def updateRequiredFields(self, dclass, di): def updateRequiredFields(self, dclass, di):
dclass.receiveUpdateBroadcastRequired(self, di) dclass.receiveUpdateBroadcastRequired(self, di)
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def updateAllRequiredFields(self, dclass, di): def updateAllRequiredFields(self, dclass, di):
dclass.receiveUpdateAllRequired(self, di) dclass.receiveUpdateAllRequired(self, di)
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def updateRequiredOtherFields(self, dclass, di): def updateRequiredOtherFields(self, dclass, di):
dclass.receiveUpdateBroadcastRequired(self, di) dclass.receiveUpdateBroadcastRequired(self, di)
# Announce generate after updating all the required fields, # Announce generate after updating all the required fields,
# but before we update the non-required fields. # but before we update the non-required fields.
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
dclass.receiveUpdateOther(self, di) dclass.receiveUpdateOther(self, di)
def updateAllRequiredOtherFields(self, dclass, di): def updateAllRequiredOtherFields(self, dclass, di):
@ -277,6 +283,8 @@ class DistributedObjectAI(DistributedObjectBase, EnforcesCalldowns):
# Announce generate after updating all the required fields, # Announce generate after updating all the required fields,
# but before we update the non-required fields. # but before we update the non-required fields.
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
dclass.receiveUpdateOther(self, di) dclass.receiveUpdateOther(self, di)
def sendSetZone(self, zoneId): def sendSetZone(self, zoneId):
@ -375,7 +383,8 @@ class DistributedObjectAI(DistributedObjectBase, EnforcesCalldowns):
self.air.generateWithRequired(self, parentId, zoneId, optionalFields) self.air.generateWithRequired(self, parentId, zoneId, optionalFields)
self.generate() self.generate()
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
# this is a special generate used for estates, or anything else that # this is a special generate used for estates, or anything else that
# needs to have a hard coded doId as assigned by the server # needs to have a hard coded doId as assigned by the server
def generateWithRequiredAndId(self, doId, parentId, zoneId, optionalFields=[]): def generateWithRequiredAndId(self, doId, parentId, zoneId, optionalFields=[]):
@ -389,7 +398,8 @@ class DistributedObjectAI(DistributedObjectBase, EnforcesCalldowns):
self.air.generateWithRequiredAndId(self, doId, parentId, zoneId, optionalFields) self.air.generateWithRequiredAndId(self, doId, parentId, zoneId, optionalFields)
self.generate() self.generate()
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def generateOtpObject(self, parentId, zoneId, optionalFields=[], doId=None): def generateOtpObject(self, parentId, zoneId, optionalFields=[], doId=None):
assert self.notify.debugStateCall(self) assert self.notify.debugStateCall(self)
# have we already allocated a doId? # have we already allocated a doId?
@ -409,6 +419,7 @@ class DistributedObjectAI(DistributedObjectBase, EnforcesCalldowns):
self.sendGenerateWithRequired(self.air, parentId, zoneId, optionalFields) self.sendGenerateWithRequired(self.air, parentId, zoneId, optionalFields)
self.generate() self.generate()
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
@calldownEnforced @calldownEnforced
def generate(self): def generate(self):

View File

@ -126,9 +126,6 @@ class DistributedObjectOV(DistributedObjectBase):
generated and all of its required fields filled in. generated and all of its required fields filled in.
""" """
assert self.notify.debug('announceGenerate(): %s' % (self.doId)) assert self.notify.debug('announceGenerate(): %s' % (self.doId))
if self.activeState != ESGenerated:
self.activeState = ESGenerated
messenger.send(self.uniqueName("generate"), [self])
def disable(self): def disable(self):
""" """
@ -187,13 +184,21 @@ class DistributedObjectOV(DistributedObjectBase):
""" """
return self.doId return self.doId
def postGenerateMessage(self):
if self.activeState != ESGenerated:
self.activeState = ESGenerated
messenger.send(self.uniqueName("generate"), [self])
def updateRequiredFields(self, dclass, di): def updateRequiredFields(self, dclass, di):
dclass.receiveUpdateBroadcastRequired(self, di) dclass.receiveUpdateBroadcastRequired(self, di)
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def updateAllRequiredFields(self, dclass, di): def updateAllRequiredFields(self, dclass, di):
dclass.receiveUpdateAllRequired(self, di) dclass.receiveUpdateAllRequired(self, di)
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def updateRequiredOtherFields(self, dclass, di): def updateRequiredOtherFields(self, dclass, di):
# First, update the required fields # First, update the required fields
@ -202,7 +207,8 @@ class DistributedObjectOV(DistributedObjectBase):
# Announce generate after updating all the required fields, # Announce generate after updating all the required fields,
# but before we update the non-required fields. # but before we update the non-required fields.
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
dclass.receiveUpdateOther(self, di) dclass.receiveUpdateOther(self, di)
def getCacheable(self): def getCacheable(self):

View File

@ -166,6 +166,8 @@ class DistributedObjectUD(DistributedObjectBase):
of its required fields filled in. Overwrite when needed. of its required fields filled in. Overwrite when needed.
""" """
self.__generated = True self.__generated = True
def postGenerateMessage(self):
messenger.send(self.uniqueName("generate"), [self]) messenger.send(self.uniqueName("generate"), [self])
def addInterest(self, zoneId, note="", event=None): def addInterest(self, zoneId, note="", event=None):
@ -195,16 +197,20 @@ class DistributedObjectUD(DistributedObjectBase):
def updateRequiredFields(self, dclass, di): def updateRequiredFields(self, dclass, di):
dclass.receiveUpdateBroadcastRequired(self, di) dclass.receiveUpdateBroadcastRequired(self, di)
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def updateAllRequiredFields(self, dclass, di): def updateAllRequiredFields(self, dclass, di):
dclass.receiveUpdateAllRequired(self, di) dclass.receiveUpdateAllRequired(self, di)
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def updateRequiredOtherFields(self, dclass, di): def updateRequiredOtherFields(self, dclass, di):
dclass.receiveUpdateBroadcastRequired(self, di) dclass.receiveUpdateBroadcastRequired(self, di)
# Announce generate after updating all the required fields, # Announce generate after updating all the required fields,
# but before we update the non-required fields. # but before we update the non-required fields.
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
dclass.receiveUpdateOther(self, di) dclass.receiveUpdateOther(self, di)
def updateAllRequiredOtherFields(self, dclass, di): def updateAllRequiredOtherFields(self, dclass, di):
@ -212,6 +218,8 @@ class DistributedObjectUD(DistributedObjectBase):
# Announce generate after updating all the required fields, # Announce generate after updating all the required fields,
# but before we update the non-required fields. # but before we update the non-required fields.
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
dclass.receiveUpdateOther(self, di) dclass.receiveUpdateOther(self, di)
def sendSetZone(self, zoneId): def sendSetZone(self, zoneId):
@ -300,7 +308,8 @@ class DistributedObjectUD(DistributedObjectBase):
## self.zoneId = zoneId ## self.zoneId = zoneId
self.generate() self.generate()
self.announceGenerate() self.announceGenerate()
self.postGenerateMessage()
def generateOtpObject(self, parentId, zoneId, optionalFields=[], doId=None): def generateOtpObject(self, parentId, zoneId, optionalFields=[], doId=None):
assert self.notify.debugStateCall(self) assert self.notify.debugStateCall(self)
# have we already allocated a doId? # have we already allocated a doId?