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:
@@ -1035,9 +1035,8 @@ public abstract class PeerManager
|
|||||||
*/
|
*/
|
||||||
protected void connectedToPeer (PeerNode peer)
|
protected void connectedToPeer (PeerNode peer)
|
||||||
{
|
{
|
||||||
String nodeName = peer.getNodeName();
|
|
||||||
|
|
||||||
// check for lock conflicts
|
// check for lock conflicts
|
||||||
|
String nodeName = peer.getNodeName();
|
||||||
for (NodeObject.Lock lock : peer.nodeobj.locks) {
|
for (NodeObject.Lock lock : peer.nodeobj.locks) {
|
||||||
PeerManager.LockHandler handler = _locks.get(lock);
|
PeerManager.LockHandler handler = _locks.get(lock);
|
||||||
if (handler != null) {
|
if (handler != null) {
|
||||||
@@ -1051,11 +1050,6 @@ public abstract class PeerManager
|
|||||||
droppedLock(lock);
|
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)
|
protected void disconnectedFromPeer (PeerNode peer)
|
||||||
{
|
{
|
||||||
String nodeName = peer.getNodeName();
|
|
||||||
|
|
||||||
// clear any locks held by that peer
|
// clear any locks held by that peer
|
||||||
|
String nodeName = peer.getNodeName();
|
||||||
for (LockHandler handler : _locks.values().toArray(new LockHandler[_locks.size()])) {
|
for (LockHandler handler : _locks.values().toArray(new LockHandler[_locks.size()])) {
|
||||||
if (handler.getNodeName().equals(nodeName)) {
|
if (handler.getNodeName().equals(nodeName)) {
|
||||||
handler.clientDidLogoff();
|
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
|
// documentation inherited from interface ClientObserver
|
||||||
public void clientDidLogoff (Client client)
|
public void clientDidLogoff (Client client)
|
||||||
{
|
{
|
||||||
|
String nodeName = getNodeName();
|
||||||
|
for (ClientInfo clinfo : nodeobj.clients) {
|
||||||
|
_peermgr.clientLoggedOff(nodeName, clinfo);
|
||||||
|
}
|
||||||
|
|
||||||
_peermgr.disconnectedFromPeer(this);
|
_peermgr.disconnectedFromPeer(this);
|
||||||
nodeobj.removeListener(_listener);
|
nodeobj.removeListener(_listener);
|
||||||
_listener = null;
|
_listener = null;
|
||||||
@@ -215,6 +220,11 @@ public class PeerNode
|
|||||||
nodeobj.addListener(_listener = createListener());
|
nodeobj.addListener(_listener = createListener());
|
||||||
|
|
||||||
_peermgr.connectedToPeer(this);
|
_peermgr.connectedToPeer(this);
|
||||||
|
|
||||||
|
String nodeName = getNodeName();
|
||||||
|
for (ClientInfo clinfo : nodeobj.clients) {
|
||||||
|
_peermgr.clientLoggedOn(nodeName, clinfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited from interface Subscriber
|
// documentation inherited from interface Subscriber
|
||||||
|
|||||||
Reference in New Issue
Block a user