package trackerServer import ( "context" "time" ) type UpstreamAnnounceGater interface { Start(ctx context.Context, tracker string, infoHash InfoHash, // How long the announce block remains before discarding it. timeout time.Duration, ) (bool, error) Completed( ctx context.Context, tracker string, infoHash InfoHash, // Num of seconds reported by tracker, or some suitable value the caller has chosen. interval int32, ) error }