From 05c4a596363601e7aa2157409eda9be1ec087c57 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 8 Jul 2015 16:07:32 +0200 Subject: Thrift api --- .../thrifthelper/TransferStatusWrapper.java | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java (limited to 'src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java') 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; + } + +} -- cgit v1.2.3-55-g7522