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
This commit is contained in:
Ray Greenwell
2009-04-10 22:25:35 +00:00
parent 7f97d41fd5
commit 18d36176a3
2 changed files with 12 additions and 14 deletions
@@ -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);
}
}
/**
@@ -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