Split PeerConnectionEventListener

Split PeerConnectionEventListener into individual connect, disconnect
and discovery listeners.
Remove custom listener registration from Peer, as now it's possible to
register a connect listener only, without a disconnect listener.
This commit is contained in:
Ross Nicoll
2016-02-13 15:39:57 +00:00
parent aa33c0e843
commit ea3713ec85
13 changed files with 312 additions and 161 deletions

View File

@@ -17,7 +17,8 @@
package org.bitcoinj.examples;
import org.bitcoinj.core.listeners.AbstractPeerEventListener;
import org.bitcoinj.core.listeners.PeerConnectedEventListener;
import org.bitcoinj.core.listeners.PeerDisconnectedEventListener;
import org.bitcoinj.core.NetworkParameters;
import org.bitcoinj.core.Peer;
import org.bitcoinj.core.PeerGroup;
@@ -67,13 +68,14 @@ public class PeerMonitor {
peerGroup.setUserAgent("PeerMonitor", "1.0");
peerGroup.setMaxConnections(4);
peerGroup.addPeerDiscovery(new DnsDiscovery(params));
peerGroup.addConnectionEventListener(new AbstractPeerEventListener() {
peerGroup.addConnectedEventListener(new PeerConnectedEventListener() {
@Override
public void onPeerConnected(final Peer peer, int peerCount) {
refreshUI();
lookupReverseDNS(peer);
}
});
peerGroup.addDisconnectedEventListener(new PeerDisconnectedEventListener() {
@Override
public void onPeerDisconnected(final Peer peer, int peerCount) {
refreshUI();

View File

@@ -16,7 +16,8 @@
package org.bitcoinj.examples;
import org.bitcoinj.core.listeners.AbstractPeerEventListener;
import org.bitcoinj.core.listeners.PeerConnectedEventListener;
import org.bitcoinj.core.listeners.PeerDisconnectedEventListener;
import org.bitcoinj.core.NetworkParameters;
import org.bitcoinj.core.Peer;
import org.bitcoinj.core.PeerAddress;
@@ -84,7 +85,7 @@ public class PrintPeers {
final Peer peer = new Peer(params, new VersionMessage(params, 0), null, new PeerAddress(address));
final SettableFuture<Void> future = SettableFuture.create();
// Once the connection has completed version handshaking ...
peer.addConnectionEventListener(new AbstractPeerEventListener() {
peer.addConnectedEventListener(new PeerConnectedEventListener() {
@Override
public void onPeerConnected(Peer p, int peerCount) {
// Check the chain height it claims to have.
@@ -106,7 +107,8 @@ public class PrintPeers {
future.set(null);
peer.close();
}
});
peer.addDisconnectedEventListener(new PeerDisconnectedEventListener() {
@Override
public void onPeerDisconnected(Peer p, int peerCount) {
if (!future.isDone())