From d3b119d62fd013786521cc085aa1f8990e89b902 Mon Sep 17 00:00:00 2001 From: anthonyraymond Date: Tue, 2 Jan 2018 23:49:29 +0100 Subject: [PATCH] Add ClientNotifier --- .../joal/core/ttorrent/client/Client.java | 4 ++ .../announcer/response/ClientNotifier.java | 48 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/main/java/org/araymond/joal/core/ttorrent/client/announcer/response/ClientNotifier.java diff --git a/src/main/java/org/araymond/joal/core/ttorrent/client/Client.java b/src/main/java/org/araymond/joal/core/ttorrent/client/Client.java index 5889f1e..509ce76 100644 --- a/src/main/java/org/araymond/joal/core/ttorrent/client/Client.java +++ b/src/main/java/org/araymond/joal/core/ttorrent/client/Client.java @@ -27,6 +27,10 @@ public class Client implements TorrentFileChangeAware { this.currentlySeedingTorrents = new ArrayList<>(); } + public void onSeedSlotIsAvailable() { + // TODO: add a new torrent + } + @Override public void onTorrentFileAdded(final MockedTorrent torrent) { diff --git a/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/response/ClientNotifier.java b/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/response/ClientNotifier.java new file mode 100644 index 0000000..4926bcc --- /dev/null +++ b/src/main/java/org/araymond/joal/core/ttorrent/client/announcer/response/ClientNotifier.java @@ -0,0 +1,48 @@ +package org.araymond.joal.core.ttorrent.client.announcer.response; + +import org.araymond.joal.core.ttorrent.client.Client; +import org.araymond.joal.core.ttorrent.client.announcer.exceptions.TooMuchAnnouncesFailedInARawException; +import org.araymond.joal.core.ttorrent.client.announcer.request.Announcer; +import org.araymond.joal.core.ttorrent.client.announcer.request.SuccessAnnounceResponse; + +public class ClientNotifier implements AnnounceResponseHandlerChainElement { + private Client client; + + private void setClient(final Client client) { + this.client = client; + } + + @Override + public void onAnnouncerWillAnnounce(final Announcer announcer) { + } + + @Override + public void onAnnounceStartSuccess(final Announcer announcer, final SuccessAnnounceResponse result) { + } + + @Override + public void onAnnounceStartFails(final Announcer announcer, final Throwable throwable) { + } + + @Override + public void onAnnounceRegularSuccess(final Announcer announcer, final SuccessAnnounceResponse result) { + } + + @Override + public void onAnnounceRegularFails(final Announcer announcer, final Throwable throwable) { + } + + @Override + public void onAnnounceStopSuccess(final Announcer announcer, final SuccessAnnounceResponse result) { + this.client.onSeedSlotIsAvailable(); + } + + @Override + public void onAnnounceStopFails(final Announcer announcer, final Throwable throwable) { + } + + @Override + public void onTooManyAnnounceFailedInARaw(final Announcer announcer, final TooMuchAnnouncesFailedInARawException e) { + this.client.onSeedSlotIsAvailable(); + } +}