summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/filetransfer/Transfer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/Transfer.java')
-rw-r--r--src/main/java/org/openslx/filetransfer/Transfer.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/filetransfer/Transfer.java b/src/main/java/org/openslx/filetransfer/Transfer.java
index 01c7227..589d142 100644
--- a/src/main/java/org/openslx/filetransfer/Transfer.java
+++ b/src/main/java/org/openslx/filetransfer/Transfer.java
@@ -13,6 +13,8 @@ import java.util.Map;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
+import net.jpountz.lz4.LZ4Factory;
+
import org.apache.log4j.Logger;
import org.openslx.util.Util;
@@ -23,9 +25,12 @@ public abstract class Transfer
protected final DataInputStream dataFromServer;
protected String ERROR = null;
private boolean shouldGetToken;
+ protected boolean useCompression = true;
protected final Logger log;
+ protected final static LZ4Factory lz4factory = LZ4Factory.fastestInstance();
+
/**
* Actively initiated transfer.
*
@@ -79,6 +84,15 @@ public abstract class Transfer
}
return true;
}
+
+ protected void sendUseCompression()
+ {
+ try {
+ sendKeyValuePair( "COMPRESS", "true" );
+ } catch ( IOException e ) {
+ e.printStackTrace();
+ }
+ }
/***********************************************************************/
/**
@@ -281,6 +295,9 @@ public abstract class Transfer
MetaData meta = readMetaData();
if ( meta == null )
return null;
+ if (meta.peerWantsCompression()) {
+ useCompression = true;
+ }
return meta.getToken();
}
@@ -381,6 +398,14 @@ public abstract class Transfer
return new FileRange( start, end );
}
+ /**
+ * Peer indicated that it wants to use snappy compression.
+ */
+ public boolean peerWantsCompression()
+ {
+ return meta.containsKey( "COMPRESS" );
+ }
+
}
}