report # of swarms in status, add forget method

This commit is contained in:
Zlatin Balevsky
2020-04-29 00:54:05 +01:00
parent 71789d96d2
commit 83bea0c823
3 changed files with 17 additions and 0 deletions

View File

@@ -46,6 +46,10 @@ class SwarmManager {
swarm.add(e.results[0].sender)
}
int countSwarms() {
swarms.size()
}
void track(InfoHash infoHash) {
Swarm swarm = swarms.computeIfAbsent(infoHash, {new Swarm(it)} as Function)
if (swarm.needsQuery()) {
@@ -61,4 +65,9 @@ class SwarmManager {
originator : core.me, sig : sig.data, queryTime : timestamp, sig2 : DataUtil.signUUID(uuid, timestamp, core.spk)))
}
}
boolean forget(InfoHash infoHash) {
Swarm swarm = swarms.remove(infoHash)
swarm != null
}
}

View File

@@ -3,4 +3,5 @@ package com.muwire.tracker;
public interface TrackerService {
public TrackerStatus status();
public void track(String infoHash);
public boolean forget(String infoHash);
}

View File

@@ -25,6 +25,7 @@ class TrackerServiceImpl implements TrackerService {
public TrackerStatus status() {
status.connections = core.getConnectionManager().getConnections().size()
status.swarms = swarmManager.countSwarms()
status
}
@@ -38,4 +39,10 @@ class TrackerServiceImpl implements TrackerService {
InfoHash ih = new InfoHash(Base64.decode(infoHash))
swarmManager.track(ih)
}
@Override
public boolean forget(String infoHash) {
InfoHash ih = new InfoHash(Base64.decode(infoHash))
swarmManager.forget(ih)
}
}