diff options
author | Simon Rettberg | 2018-05-16 13:08:44 +0200 |
---|---|---|
committer | Simon Rettberg | 2018-05-16 13:08:44 +0200 |
commit | e519e8edee76b0861f0684823f8f2a0cb9938ff3 (patch) | |
tree | 0380ebc565c0c17af8671b8f965c5015f8c16cf3 /src/main/java/org/openslx/filetransfer/Transfer.java | |
parent | Add PrioThreadFactory (diff) | |
download | master-sync-shared-e519e8edee76b0861f0684823f8f2a0cb9938ff3.tar.gz master-sync-shared-e519e8edee76b0861f0684823f8f2a0cb9938ff3.tar.xz master-sync-shared-e519e8edee76b0861f0684823f8f2a0cb9938ff3.zip |
More speedup: LZ4 and empty chunk detection
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/Transfer.java')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/Transfer.java | 25 |
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" ); + } + } } |