summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-07-08 16:07:32 +0200
committerSimon Rettberg2015-07-08 16:07:32 +0200
commit05c4a596363601e7aa2157409eda9be1ec087c57 (patch)
treef6b5c1f18d31a9016f8cadcb147ac512ffcb6c14 /src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java
parentMake master server address configurable; dynamic retrying, controlled by call... (diff)
downloadmaster-sync-shared-05c4a596363601e7aa2157409eda9be1ec087c57.tar.gz
master-sync-shared-05c4a596363601e7aa2157409eda9be1ec087c57.tar.xz
master-sync-shared-05c4a596363601e7aa2157409eda9be1ec087c57.zip
Thrift api
Diffstat (limited to 'src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java')
-rw-r--r--src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java b/src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java
new file mode 100644
index 0000000..5a28461
--- /dev/null
+++ b/src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java
@@ -0,0 +1,71 @@
+package org.openslx.thrifthelper;
+
+public class TransferStatusWrapper
+{
+
+ public static enum BlockStatus {
+ COMPLETE, MISSING, UPLOADING, QUEUED_FOR_COPYING, COPYING;
+ }
+
+ // 0 = complete, 1 = missing, 2 = uploading, 3 = queued for copying, 4 = copying
+ private byte[] blocks = null;
+
+ public TransferStatusWrapper(byte[] blocks) {
+ this.blocks = blocks;
+ }
+
+ public void setBlocks(byte[] blocks) {
+ this.blocks = blocks;
+ }
+
+ public boolean isComplete() {
+ for (byte block : blocks) {
+ if (block != 0)
+ return false;
+ }
+ return true;
+ }
+
+ public float getComplete() {
+ int done = 0;
+ for (byte block : blocks) {
+ if (block == 0) {
+ done++;
+ }
+ }
+ return ((float)done / (float)blocks.length);
+ }
+
+ public float getPercentComplete() {
+ return getComplete() * 100f;
+ }
+
+ public byte[] getBlocks() {
+ return this.blocks;
+ }
+
+ public boolean isEmpty() {
+ return blocks == null || blocks.length == 0;
+ }
+
+ public int getBlockCount() {
+ return blocks.length;
+ }
+
+ public BlockStatus get(int index) {
+ switch (blocks[index]) {
+ case 0:
+ return BlockStatus.COMPLETE;
+ case 1:
+ return BlockStatus.MISSING;
+ case 2:
+ return BlockStatus.UPLOADING;
+ case 3:
+ return BlockStatus.QUEUED_FOR_COPYING;
+ case 4:
+ return BlockStatus.COPYING;
+ }
+ return null;
+ }
+
+}