From 18d36176a3e67f859883f80d2b9946762e018572 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Fri, 10 Apr 2009 22:25:35 +0000 Subject: [PATCH] The PeerNode is the thing that calls clientLoggedOn/Off on the PeerManager, so let's keep with that pattern for any clients there when the peer itself connects or disconnects. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5713 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../presents/peer/server/PeerManager.java | 16 ++-------------- .../presents/peer/server/PeerNode.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/java/com/threerings/presents/peer/server/PeerManager.java b/src/java/com/threerings/presents/peer/server/PeerManager.java index 3322f9dec..a1c5e13d0 100644 --- a/src/java/com/threerings/presents/peer/server/PeerManager.java +++ b/src/java/com/threerings/presents/peer/server/PeerManager.java @@ -1035,9 +1035,8 @@ public abstract class PeerManager */ protected void connectedToPeer (PeerNode peer) { - String nodeName = peer.getNodeName(); - // check for lock conflicts + String nodeName = peer.getNodeName(); for (NodeObject.Lock lock : peer.nodeobj.locks) { PeerManager.LockHandler handler = _locks.get(lock); if (handler != null) { @@ -1051,11 +1050,6 @@ public abstract class PeerManager droppedLock(lock); } } - - // indicate that all these clients have logged on - for (ClientInfo clinfo : peer.nodeobj.clients) { - clientLoggedOn(nodeName, clinfo); - } } /** @@ -1063,19 +1057,13 @@ public abstract class PeerManager */ protected void disconnectedFromPeer (PeerNode peer) { - String nodeName = peer.getNodeName(); - // clear any locks held by that peer + String nodeName = peer.getNodeName(); for (LockHandler handler : _locks.values().toArray(new LockHandler[_locks.size()])) { if (handler.getNodeName().equals(nodeName)) { handler.clientDidLogoff(); } } - - // indicate that these clients have left - for (ClientInfo clinfo : peer.nodeobj.clients) { - clientLoggedOff(nodeName, clinfo); - } } /** diff --git a/src/java/com/threerings/presents/peer/server/PeerNode.java b/src/java/com/threerings/presents/peer/server/PeerNode.java index dd098cba4..78ab89004 100644 --- a/src/java/com/threerings/presents/peer/server/PeerNode.java +++ b/src/java/com/threerings/presents/peer/server/PeerNode.java @@ -195,6 +195,11 @@ public class PeerNode // documentation inherited from interface ClientObserver public void clientDidLogoff (Client client) { + String nodeName = getNodeName(); + for (ClientInfo clinfo : nodeobj.clients) { + _peermgr.clientLoggedOff(nodeName, clinfo); + } + _peermgr.disconnectedFromPeer(this); nodeobj.removeListener(_listener); _listener = null; @@ -215,6 +220,11 @@ public class PeerNode nodeobj.addListener(_listener = createListener()); _peermgr.connectedToPeer(this); + + String nodeName = getNodeName(); + for (ClientInfo clinfo : nodeobj.clients) { + _peermgr.clientLoggedOn(nodeName, clinfo); + } } // documentation inherited from interface Subscriber