report # of swarms in status, add forget method
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,4 +3,5 @@ package com.muwire.tracker;
|
||||
public interface TrackerService {
|
||||
public TrackerStatus status();
|
||||
public void track(String infoHash);
|
||||
public boolean forget(String infoHash);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user