diff options
Diffstat (limited to 'src/main/java/org/openslx/util/ThriftUtil.java')
-rw-r--r-- | src/main/java/org/openslx/util/ThriftUtil.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/util/ThriftUtil.java b/src/main/java/org/openslx/util/ThriftUtil.java new file mode 100644 index 0000000..58019a7 --- /dev/null +++ b/src/main/java/org/openslx/util/ThriftUtil.java @@ -0,0 +1,34 @@ +package org.openslx.util; + +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; + +public class ThriftUtil { + + public static List<byte[]> unwrapByteBufferList(List<ByteBuffer> blockHashes) { + if (blockHashes == null || blockHashes.isEmpty()) + return null; + List<byte[]> hashList = new ArrayList<>(blockHashes.size()); + for (ByteBuffer hash : blockHashes) { + byte[] buffer = new byte[hash.remaining()]; + hash.mark(); + hash.get(buffer); + hash.reset(); + hashList.add(buffer); + } + return hashList; + } + + public static byte[] unwrapByteBuffer(ByteBuffer buffer) { + byte[] byteArray = null; + if (buffer != null) { + byteArray = new byte[buffer.remaining()]; + buffer.mark(); + buffer.get(byteArray); + buffer.reset(); + } + return byteArray; + } + +} |