summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/filetransfer/FileRange.java
diff options
context:
space:
mode:
authorSimon Rettberg2014-09-19 18:13:06 +0200
committerSimon Rettberg2014-09-19 18:13:06 +0200
commit52fa9a47498a3727d11a34205c9920f9a10e8aeb (patch)
treec99723aec9ef430132d1eeff08e43684cdfacbf3 /src/main/java/org/openslx/filetransfer/FileRange.java
parentAdd debugging to file transfer (diff)
downloadmaster-sync-shared-52fa9a47498a3727d11a34205c9920f9a10e8aeb.tar.gz
master-sync-shared-52fa9a47498a3727d11a34205c9920f9a10e8aeb.tar.xz
master-sync-shared-52fa9a47498a3727d11a34205c9920f9a10e8aeb.zip
Rework file transfer, try to use callbacks for everything
No more juggling with sendRange() and sendData(), which was easy to use wrong, and cause lots of weird errors.
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/FileRange.java')
-rw-r--r--src/main/java/org/openslx/filetransfer/FileRange.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/filetransfer/FileRange.java b/src/main/java/org/openslx/filetransfer/FileRange.java
new file mode 100644
index 0000000..30edefc
--- /dev/null
+++ b/src/main/java/org/openslx/filetransfer/FileRange.java
@@ -0,0 +1,46 @@
+package org.openslx.filetransfer;
+
+public class FileRange
+{
+
+ /**
+ * Offset of first byte of range in file, inclusive
+ */
+ public final long startOffset;
+ /**
+ * Offset of last byte of range in file, exclusive
+ */
+ public final long endOffset;
+
+ /**
+ * Create a FileRange instance
+ *
+ * @param startOffset Offset of first byte of range in file, inclusive
+ * @param endOffset Offset of last byte of range in file, exclusive
+ */
+ public FileRange( long startOffset, long endOffset )
+ {
+ this.startOffset = startOffset;
+ this.endOffset = endOffset;
+ }
+
+ /**
+ * Get length of range
+ *
+ * @return length of range, in bytes
+ */
+ public int getLength()
+ {
+ return (int) ( endOffset - startOffset );
+ }
+
+ @Override
+ public boolean equals( Object other )
+ {
+ if ( other == null || ! ( other instanceof FileRange ) )
+ return false;
+ FileRange o = (FileRange)other;
+ return o.startOffset == this.startOffset && o.endOffset == this.endOffset;
+ }
+
+}