diff --git a/src/main/java/net/schmizz/sshj/xfer/AbstractFileTransfer.java b/src/main/java/net/schmizz/sshj/xfer/AbstractFileTransfer.java index 75c8fd52..e3f51cd1 100644 --- a/src/main/java/net/schmizz/sshj/xfer/AbstractFileTransfer.java +++ b/src/main/java/net/schmizz/sshj/xfer/AbstractFileTransfer.java @@ -29,6 +29,8 @@ public abstract class AbstractFileTransfer { private volatile ModeGetter modeGetter = defaultModeGetter; private volatile ModeSetter modeSetter = defaultModeSetter; + private volatile ProgressListener progressListener; + public void setModeGetter(ModeGetter modeGetter) { this.modeGetter = (modeGetter == null) ? defaultModeGetter : modeGetter; } @@ -45,4 +47,12 @@ public abstract class AbstractFileTransfer { return this.modeSetter; } + public ProgressListener getProgressListener() { + return progressListener; + } + + public void setProgressListener(ProgressListener progressListener) { + this.progressListener = progressListener; + } + } diff --git a/src/main/java/net/schmizz/sshj/xfer/FileTransfer.java b/src/main/java/net/schmizz/sshj/xfer/FileTransfer.java index 4a2d7760..5aabe64a 100644 --- a/src/main/java/net/schmizz/sshj/xfer/FileTransfer.java +++ b/src/main/java/net/schmizz/sshj/xfer/FileTransfer.java @@ -33,4 +33,8 @@ public interface FileTransfer { void setModeSetter(ModeSetter modeSetter); + ProgressListener getProgressListener(); + + void setProgressListener(ProgressListener listener); + } diff --git a/src/main/java/net/schmizz/sshj/xfer/ProgressListener.java b/src/main/java/net/schmizz/sshj/xfer/ProgressListener.java new file mode 100644 index 00000000..f804bc9e --- /dev/null +++ b/src/main/java/net/schmizz/sshj/xfer/ProgressListener.java @@ -0,0 +1,11 @@ +package net.schmizz.sshj.xfer; + +public interface ProgressListener { + + void started(int item, boolean isDir); + + void progressed(long done, long total); + + void completed(int item); + +}