From e30a01494877b4a9f91952d2cd448971dba877fa Mon Sep 17 00:00:00 2001 From: Roger Hughston Date: Fri, 17 Jun 2005 21:06:09 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/distributed/DoInterestManager.py | 27 ++++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/direct/src/distributed/DoInterestManager.py b/direct/src/distributed/DoInterestManager.py index 9cd3b6a922..9bd8557cd5 100755 --- a/direct/src/distributed/DoInterestManager.py +++ b/direct/src/distributed/DoInterestManager.py @@ -38,9 +38,12 @@ class DoInterestManager(DirectObject.DirectObject): """ assert self.notify.debugCall() DoInterestManager._interestIdAssign += 1 - DoInterestManager._interestIdScopes += 1 contextId = DoInterestManager._interestIdAssign - scopeId = DoInterestManager._interestIdScopes + scopeId = 0 + if event is not None: + DoInterestManager._interestIdScopes += 1 + scopeId = DoInterestManager._interestIdScopes + DoInterestManager._interests[contextId] = [description, scopeId, event, "Active"] self._sendAddInterest(contextId, scopeId, parentId, zoneIdList) assert self.printInterestsIfDebug() @@ -54,15 +57,15 @@ class DoInterestManager(DirectObject.DirectObject): answer = 0 if DoInterestManager._interests.has_key(contextId): if event is not None: - DoInterestManager._interestIdScopes += 1 DoInterestManager._interests[contextId][3] = "PendingDel" DoInterestManager._interests[contextId][2] = event + DoInterestManager._interestIdScopes += 1 DoInterestManager._interests[contextId][1] = DoInterestManager._interestIdScopes - self._sendRemoveInterest(contextId) + self._sendRemoveInterest(contextId,DoInterestManager._interestIdScopes) else: DoInterestManager._interests[contextId][2] = None DoInterestManager._interests[contextId][1] = 0 - self._sendRemoveInterest(contextId) + self._sendRemoveInterest(contextId,0) del DoInterestManager._interests[contextId] answer = 1 else: @@ -77,13 +80,17 @@ class DoInterestManager(DirectObject.DirectObject): assert self.notify.debugCall() answer = 0 if DoInterestManager._interests.has_key(contextId): - DoInterestManager._interestIdScopes += 1 if description is not None: DoInterestManager._interests[contextId][0] = description - DoInterestManager._interests[contextId][1] = DoInterestManager._interestIdScopes; + if event is not None: + DoInterestManager._interestIdScopes += 1 + DoInterestManager._interests[contextId][1] = DoInterestManager._interestIdScopes; + else: + DoInterestManager._interests[contextId][1] = 0; + DoInterestManager._interests[contextId][2] = event; - self._sendAddInterest(contextId, DoInterestManager._interestIdScopes, parentId, zoneIdList) + self._sendAddInterest(contextId,DoInterestManager._interests[contextId][1], parentId, zoneIdList) answer = 1 assert self.printInterestsIfDebug() else: @@ -170,7 +177,7 @@ class DoInterestManager(DirectObject.DirectObject): datagram.addUint32(zoneIdList) self.send(datagram) - def _sendRemoveInterest(self, contextId): + def _sendRemoveInterest(self, contextId, scopeId): """ contextId is a client-side created number that refers to a set of interests. The same contextId number doesn't @@ -182,6 +189,8 @@ class DoInterestManager(DirectObject.DirectObject): # Add message type datagram.addUint16(CLIENT_REMOVE_INTEREST) datagram.addUint16(contextId) + if scopeId != 0: + datagram.addUint32(scopeId) self.send(datagram) def handleInterestDoneMessage(self, di):