From 05c4a596363601e7aa2157409eda9be1ec087c57 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 8 Jul 2015 16:07:32 +0200 Subject: Thrift api --- .../openslx/bwlp/thrift/iface/SatelliteServer.java | 36 +- .../openslx/bwlp/thrift/iface/TransferStatus.java | 399 +++++++++++++++++++++ .../openslx/bwlp/thrift/iface/UploadStatus.java | 399 --------------------- .../thrifthelper/TransferStatusWrapper.java | 71 ++++ src/main/thrift/bwlp.thrift | 6 +- 5 files changed, 491 insertions(+), 420 deletions(-) create mode 100644 src/main/java/org/openslx/bwlp/thrift/iface/TransferStatus.java delete mode 100644 src/main/java/org/openslx/bwlp/thrift/iface/UploadStatus.java create mode 100644 src/main/java/org/openslx/thrifthelper/TransferStatusWrapper.java diff --git a/src/main/java/org/openslx/bwlp/thrift/iface/SatelliteServer.java b/src/main/java/org/openslx/bwlp/thrift/iface/SatelliteServer.java index 4c6196f..f15b0ad 100644 --- a/src/main/java/org/openslx/bwlp/thrift/iface/SatelliteServer.java +++ b/src/main/java/org/openslx/bwlp/thrift/iface/SatelliteServer.java @@ -44,7 +44,7 @@ public class SatelliteServer { public void cancelUpload(String uploadToken) throws org.apache.thrift.TException; - public UploadStatus queryUploadStatus(String uploadToken) throws TInvalidTokenException, org.apache.thrift.TException; + public TransferStatus queryUploadStatus(String uploadToken) throws TInvalidTokenException, org.apache.thrift.TException; public TransferInformation requestDownload(String userToken, String imageVersionId) throws TAuthorizationException, org.apache.thrift.TException; @@ -278,7 +278,7 @@ public class SatelliteServer { return; } - public UploadStatus queryUploadStatus(String uploadToken) throws TInvalidTokenException, org.apache.thrift.TException + public TransferStatus queryUploadStatus(String uploadToken) throws TInvalidTokenException, org.apache.thrift.TException { send_queryUploadStatus(uploadToken); return recv_queryUploadStatus(); @@ -291,7 +291,7 @@ public class SatelliteServer { sendBase("queryUploadStatus", args); } - public UploadStatus recv_queryUploadStatus() throws TInvalidTokenException, org.apache.thrift.TException + public TransferStatus recv_queryUploadStatus() throws TInvalidTokenException, org.apache.thrift.TException { queryUploadStatus_result result = new queryUploadStatus_result(); receiveBase(result, "queryUploadStatus"); @@ -1200,7 +1200,7 @@ public class SatelliteServer { prot.writeMessageEnd(); } - public UploadStatus getResult() throws TInvalidTokenException, org.apache.thrift.TException { + public TransferStatus getResult() throws TInvalidTokenException, org.apache.thrift.TException { if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { throw new IllegalStateException("Method call not finished!"); } @@ -3147,7 +3147,7 @@ public class SatelliteServer { } } - public static class queryUploadStatus extends org.apache.thrift.AsyncProcessFunction { + public static class queryUploadStatus extends org.apache.thrift.AsyncProcessFunction { public queryUploadStatus() { super("queryUploadStatus"); } @@ -3156,10 +3156,10 @@ public class SatelliteServer { return new queryUploadStatus_args(); } - public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { + public AsyncMethodCallback getResultHandler(final AsyncFrameBuffer fb, final int seqid) { final org.apache.thrift.AsyncProcessFunction fcall = this; - return new AsyncMethodCallback() { - public void onComplete(UploadStatus o) { + return new AsyncMethodCallback() { + public void onComplete(TransferStatus o) { queryUploadStatus_result result = new queryUploadStatus_result(); result.success = o; try { @@ -3199,7 +3199,7 @@ public class SatelliteServer { return false; } - public void start(I iface, queryUploadStatus_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { + public void start(I iface, queryUploadStatus_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws TException { iface.queryUploadStatus(args.uploadToken,resultHandler); } } @@ -8185,7 +8185,7 @@ public class SatelliteServer { schemes.put(TupleScheme.class, new queryUploadStatus_resultTupleSchemeFactory()); } - public UploadStatus success; // required + public TransferStatus success; // required public TInvalidTokenException ex1; // required /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ @@ -8254,7 +8254,7 @@ public class SatelliteServer { static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UploadStatus.class))); + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TransferStatus.class))); tmpMap.put(_Fields.EX1, new org.apache.thrift.meta_data.FieldMetaData("ex1", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); metaDataMap = Collections.unmodifiableMap(tmpMap); @@ -8265,7 +8265,7 @@ public class SatelliteServer { } public queryUploadStatus_result( - UploadStatus success, + TransferStatus success, TInvalidTokenException ex1) { this(); @@ -8278,7 +8278,7 @@ public class SatelliteServer { */ public queryUploadStatus_result(queryUploadStatus_result other) { if (other.isSetSuccess()) { - this.success = new UploadStatus(other.success); + this.success = new TransferStatus(other.success); } if (other.isSetEx1()) { this.ex1 = new TInvalidTokenException(other.ex1); @@ -8295,11 +8295,11 @@ public class SatelliteServer { this.ex1 = null; } - public UploadStatus getSuccess() { + public TransferStatus getSuccess() { return this.success; } - public queryUploadStatus_result setSuccess(UploadStatus success) { + public queryUploadStatus_result setSuccess(TransferStatus success) { this.success = success; return this; } @@ -8349,7 +8349,7 @@ public class SatelliteServer { if (value == null) { unsetSuccess(); } else { - setSuccess((UploadStatus)value); + setSuccess((TransferStatus)value); } break; @@ -8541,7 +8541,7 @@ public class SatelliteServer { switch (schemeField.id) { case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.success = new UploadStatus(); + struct.success = new TransferStatus(); struct.success.read(iprot); struct.setSuccessIsSet(true); } else { @@ -8620,7 +8620,7 @@ public class SatelliteServer { TTupleProtocol iprot = (TTupleProtocol) prot; BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { - struct.success = new UploadStatus(); + struct.success = new TransferStatus(); struct.success.read(iprot); struct.setSuccessIsSet(true); } diff --git a/src/main/java/org/openslx/bwlp/thrift/iface/TransferStatus.java b/src/main/java/org/openslx/bwlp/thrift/iface/TransferStatus.java new file mode 100644 index 0000000..ee881ae --- /dev/null +++ b/src/main/java/org/openslx/bwlp/thrift/iface/TransferStatus.java @@ -0,0 +1,399 @@ +/** + * Autogenerated by Thrift Compiler (0.9.1) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.openslx.bwlp.thrift.iface; + +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import org.apache.thrift.async.AsyncMethodCallback; +import org.apache.thrift.server.AbstractNonblockingServer.*; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; +import java.util.Collections; +import java.util.BitSet; +import java.nio.ByteBuffer; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TransferStatus implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TransferStatus"); + + private static final org.apache.thrift.protocol.TField BLOCK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("blockStatus", org.apache.thrift.protocol.TType.STRING, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new TransferStatusStandardSchemeFactory()); + schemes.put(TupleScheme.class, new TransferStatusTupleSchemeFactory()); + } + + public ByteBuffer blockStatus; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + BLOCK_STATUS((short)1, "blockStatus"); + + private static final Map byName = new HashMap(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // BLOCK_STATUS + return BLOCK_STATUS; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.BLOCK_STATUS, new org.apache.thrift.meta_data.FieldMetaData("blockStatus", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TransferStatus.class, metaDataMap); + } + + public TransferStatus() { + } + + public TransferStatus( + ByteBuffer blockStatus) + { + this(); + this.blockStatus = blockStatus; + } + + /** + * Performs a deep copy on other. + */ + public TransferStatus(TransferStatus other) { + if (other.isSetBlockStatus()) { + this.blockStatus = org.apache.thrift.TBaseHelper.copyBinary(other.blockStatus); +; + } + } + + public TransferStatus deepCopy() { + return new TransferStatus(this); + } + + @Override + public void clear() { + this.blockStatus = null; + } + + public byte[] getBlockStatus() { + setBlockStatus(org.apache.thrift.TBaseHelper.rightSize(blockStatus)); + return blockStatus == null ? null : blockStatus.array(); + } + + public ByteBuffer bufferForBlockStatus() { + return blockStatus; + } + + public TransferStatus setBlockStatus(byte[] blockStatus) { + setBlockStatus(blockStatus == null ? (ByteBuffer)null : ByteBuffer.wrap(blockStatus)); + return this; + } + + public TransferStatus setBlockStatus(ByteBuffer blockStatus) { + this.blockStatus = blockStatus; + return this; + } + + public void unsetBlockStatus() { + this.blockStatus = null; + } + + /** Returns true if field blockStatus is set (has been assigned a value) and false otherwise */ + public boolean isSetBlockStatus() { + return this.blockStatus != null; + } + + public void setBlockStatusIsSet(boolean value) { + if (!value) { + this.blockStatus = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case BLOCK_STATUS: + if (value == null) { + unsetBlockStatus(); + } else { + setBlockStatus((ByteBuffer)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case BLOCK_STATUS: + return getBlockStatus(); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case BLOCK_STATUS: + return isSetBlockStatus(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof TransferStatus) + return this.equals((TransferStatus)that); + return false; + } + + public boolean equals(TransferStatus that) { + if (that == null) + return false; + + boolean this_present_blockStatus = true && this.isSetBlockStatus(); + boolean that_present_blockStatus = true && that.isSetBlockStatus(); + if (this_present_blockStatus || that_present_blockStatus) { + if (!(this_present_blockStatus && that_present_blockStatus)) + return false; + if (!this.blockStatus.equals(that.blockStatus)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + return 0; + } + + @Override + public int compareTo(TransferStatus other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + + lastComparison = Boolean.valueOf(isSetBlockStatus()).compareTo(other.isSetBlockStatus()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetBlockStatus()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.blockStatus, other.blockStatus); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("TransferStatus("); + boolean first = true; + + sb.append("blockStatus:"); + if (this.blockStatus == null) { + sb.append("null"); + } else { + org.apache.thrift.TBaseHelper.toString(this.blockStatus, sb); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class TransferStatusStandardSchemeFactory implements SchemeFactory { + public TransferStatusStandardScheme getScheme() { + return new TransferStatusStandardScheme(); + } + } + + private static class TransferStatusStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, TransferStatus struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // BLOCK_STATUS + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.blockStatus = iprot.readBinary(); + struct.setBlockStatusIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, TransferStatus struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.blockStatus != null) { + oprot.writeFieldBegin(BLOCK_STATUS_FIELD_DESC); + oprot.writeBinary(struct.blockStatus); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class TransferStatusTupleSchemeFactory implements SchemeFactory { + public TransferStatusTupleScheme getScheme() { + return new TransferStatusTupleScheme(); + } + } + + private static class TransferStatusTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, TransferStatus struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetBlockStatus()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetBlockStatus()) { + oprot.writeBinary(struct.blockStatus); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, TransferStatus struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.blockStatus = iprot.readBinary(); + struct.setBlockStatusIsSet(true); + } + } + } + +} + diff --git a/src/main/java/org/openslx/bwlp/thrift/iface/UploadStatus.java b/src/main/java/org/openslx/bwlp/thrift/iface/UploadStatus.java deleted file mode 100644 index 54b07ef..0000000 --- a/src/main/java/org/openslx/bwlp/thrift/iface/UploadStatus.java +++ /dev/null @@ -1,399 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.1) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package org.openslx.bwlp.thrift.iface; - -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import org.apache.thrift.async.AsyncMethodCallback; -import org.apache.thrift.server.AbstractNonblockingServer.*; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class UploadStatus implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UploadStatus"); - - private static final org.apache.thrift.protocol.TField BLOCK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("blockStatus", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new UploadStatusStandardSchemeFactory()); - schemes.put(TupleScheme.class, new UploadStatusTupleSchemeFactory()); - } - - public ByteBuffer blockStatus; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - BLOCK_STATUS((short)1, "blockStatus"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // BLOCK_STATUS - return BLOCK_STATUS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.BLOCK_STATUS, new org.apache.thrift.meta_data.FieldMetaData("blockStatus", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UploadStatus.class, metaDataMap); - } - - public UploadStatus() { - } - - public UploadStatus( - ByteBuffer blockStatus) - { - this(); - this.blockStatus = blockStatus; - } - - /** - * Performs a deep copy on other. - */ - public UploadStatus(UploadStatus other) { - if (other.isSetBlockStatus()) { - this.blockStatus = org.apache.thrift.TBaseHelper.copyBinary(other.blockStatus); -; - } - } - - public UploadStatus deepCopy() { - return new UploadStatus(this); - } - - @Override - public void clear() { - this.blockStatus = null; - } - - public byte[] getBlockStatus() { - setBlockStatus(org.apache.thrift.TBaseHelper.rightSize(blockStatus)); - return blockStatus == null ? null : blockStatus.array(); - } - - public ByteBuffer bufferForBlockStatus() { - return blockStatus; - } - - public UploadStatus setBlockStatus(byte[] blockStatus) { - setBlockStatus(blockStatus == null ? (ByteBuffer)null : ByteBuffer.wrap(blockStatus)); - return this; - } - - public UploadStatus setBlockStatus(ByteBuffer blockStatus) { - this.blockStatus = blockStatus; - return this; - } - - public void unsetBlockStatus() { - this.blockStatus = null; - } - - /** Returns true if field blockStatus is set (has been assigned a value) and false otherwise */ - public boolean isSetBlockStatus() { - return this.blockStatus != null; - } - - public void setBlockStatusIsSet(boolean value) { - if (!value) { - this.blockStatus = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case BLOCK_STATUS: - if (value == null) { - unsetBlockStatus(); - } else { - setBlockStatus((ByteBuffer)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case BLOCK_STATUS: - return getBlockStatus(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case BLOCK_STATUS: - return isSetBlockStatus(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof UploadStatus) - return this.equals((UploadStatus)that); - return false; - } - - public boolean equals(UploadStatus that) { - if (that == null) - return false; - - boolean this_present_blockStatus = true && this.isSetBlockStatus(); - boolean that_present_blockStatus = true && that.isSetBlockStatus(); - if (this_present_blockStatus || that_present_blockStatus) { - if (!(this_present_blockStatus && that_present_blockStatus)) - return false; - if (!this.blockStatus.equals(that.blockStatus)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - return 0; - } - - @Override - public int compareTo(UploadStatus other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - - lastComparison = Boolean.valueOf(isSetBlockStatus()).compareTo(other.isSetBlockStatus()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetBlockStatus()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.blockStatus, other.blockStatus); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("UploadStatus("); - boolean first = true; - - sb.append("blockStatus:"); - if (this.blockStatus == null) { - sb.append("null"); - } else { - org.apache.thrift.TBaseHelper.toString(this.blockStatus, sb); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class UploadStatusStandardSchemeFactory implements SchemeFactory { - public UploadStatusStandardScheme getScheme() { - return new UploadStatusStandardScheme(); - } - } - - private static class UploadStatusStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, UploadStatus struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // BLOCK_STATUS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.blockStatus = iprot.readBinary(); - struct.setBlockStatusIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, UploadStatus struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.blockStatus != null) { - oprot.writeFieldBegin(BLOCK_STATUS_FIELD_DESC); - oprot.writeBinary(struct.blockStatus); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class UploadStatusTupleSchemeFactory implements SchemeFactory { - public UploadStatusTupleScheme getScheme() { - return new UploadStatusTupleScheme(); - } - } - - private static class UploadStatusTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, UploadStatus struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetBlockStatus()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetBlockStatus()) { - oprot.writeBinary(struct.blockStatus); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, UploadStatus struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.blockStatus = iprot.readBinary(); - struct.setBlockStatusIsSet(true); - } - } - } - -} - 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; + } + +} diff --git a/src/main/thrift/bwlp.thrift b/src/main/thrift/bwlp.thrift index 76a0630..0f4217a 100644 --- a/src/main/thrift/bwlp.thrift +++ b/src/main/thrift/bwlp.thrift @@ -282,8 +282,8 @@ struct TransferInformation { } // Used to tell status of an upload. The blockStatus is one byte per 16MB block, -// 0 = complete, 1 = missing, 2 = uploading, 3 = queued for copying, 4 = copying -struct UploadStatus { +// 0 = complete, 1 = missing, 2 = uploading, 3 = queued for copying, 4 = copying +struct TransferStatus { 1: binary blockStatus, } @@ -330,7 +330,7 @@ service SatelliteServer { TransferInformation requestImageVersionUpload(1: Token userToken, 2: UUID imageBaseId, 3: i64 fileSize, 4: list blockHashes) throws (1:TTransferRejectedException rejection, 2:TAuthorizationException authError), void cancelUpload(1: Token uploadToken), - UploadStatus queryUploadStatus(1: Token uploadToken) + TransferStatus queryUploadStatus(1: Token uploadToken) throws (1:TInvalidTokenException ex1), TransferInformation requestDownload(1: Token userToken, 2: UUID imageVersionId) -- cgit v1.2.3-55-g7522