PeerManager: Add countPeersByCapability()

This commit is contained in:
zzz
2019-12-14 12:35:27 +00:00
parent faf130cf38
commit 64e9e2aebe
4 changed files with 24 additions and 0 deletions

View File

@ -21,6 +21,7 @@ import net.i2p.data.Hash;
*/
public interface PeerManagerFacade extends Service {
public Set<Hash> getPeersByCapability(char capability);
public int countPeersByCapability(char capability);
public void setCapabilities(Hash peer, String caps);
public void removeCapabilities(Hash peer);
public Hash selectRandomByCapability(char capability);

View File

@ -27,6 +27,7 @@ public class DummyPeerManagerFacade implements PeerManagerFacade {
public void restart() {}
public void renderStatusHTML(Writer out) { }
public Set<Hash> getPeersByCapability(char capability) { return null; }
public int countPeersByCapability(char capability) { return 0; }
public void setCapabilities(Hash peer, String caps) {}
public void removeCapabilities(Hash peer) {}
public Hash selectRandomByCapability(char capability) { return null; }

View File

@ -354,4 +354,16 @@ class PeerManager {
return Collections.unmodifiableSet(peers);
return Collections.emptySet();
}
/**
* @param capability case-insensitive
* @return how many
* @since 0.9.45
*/
public int countPeersByCapability(char capability) {
Set<Hash> peers = locked_getPeers(capability);
if (peers != null)
return peers.size();
return 0;
}
}

View File

@ -89,6 +89,16 @@ public class PeerManagerFacadeImpl implements PeerManagerFacade {
return _manager.getPeersByCapability(capability);
}
/**
* @param capability case-insensitive
* @return how many
* @since 0.9.45
*/
public int countPeersByCapability(char capability) {
if (_manager == null) return 0;
return _manager.countPeersByCapability(capability);
}
/** @deprecated moved to routerconsole */
@Deprecated
public void renderStatusHTML(Writer out) throws IOException {