Class UnsignedByteBuffer
ByteBuffer but automatically performs conversion to int.
The conversion applies to ByteBuffer.get() and ByteBuffer.put(byte) of single
elements, but not to any mass get or put operations.
The user has a choice of getting/setting using raw (getRaw(), putRaw(byte) etc.) or
unsigned-conversion (getUnsigned(), putUnsigned(int) etc.) methods. The raw methods
are always more efficient, and so should be preferred when conversion is not needed.
- Author:
- Owen Feehan
-
Method Summary
Modifier and TypeMethodDescriptionstatic UnsignedByteBufferallocate(int capacity) Allocates a new buffer of unsigned-bytes.final byte[]array()The array of the buffer alaByteBuffer.array().protected booleanbooleanThe underlying storage buffer, to which calls are delegated with our without conversion.bytegetRaw()Gets an unsigned-byte (represented as a byte) at the current buffer position.bytegetRaw(int index) Gets an unsigned-byte (represented as a byte) at a particular buffer position.intGets an unsigned-byte (represented as a int) at the current buffer position.intgetUnsigned(int index) Gets an unsigned-byte (represented as a int) at a particular buffer position.inthashCode()voidput(ByteBuffer source) Relative put-method from an unsigned byte buffer, represented by aByteBuffer.voidput(UnsignedByteBuffer source) Relative put-method from an unsigned byte buffer, represented by aUnsignedByteBuffer.voidputDouble(double value) Puts a double at the current buffer position.voidputDouble(int index, double value) Puts a double at a particular buffer position.voidputDoubleClamped(double value) Puts a double at the current buffer position, clamping to ensure the value is within the range(0,255).voidputFloat(float value) Puts a float at the current buffer position.voidputFloat(int index, float value) Puts a float at a particular buffer position.voidputFloatClamped(float value) Puts a float at the current buffer position, clamping to ensure the value is within the range(0,255).voidputLong(long value) Puts a long at the current buffer position.voidputRaw(byte value) Puts an unsigned-byte (represented as a byte) at the current buffer position.voidputRaw(int index, byte value) Puts an unsigned-byte (represented as a byte) a particular buffer position.voidputUnsigned(int value) Puts an unsigned-byte (represented by an int) at current buffer position.voidputUnsigned(int index, int value) Puts an unsigned-byte (represented as a int) a particular buffer position.voidputUnsignedInt(int value) Puts an unsigned-int (represented by a int) at current buffer position.final voidrewind()Rewinds the buffer alaByteBuffer.rewind().static UnsignedByteBufferwrapRaw(byte[] array) Exposes a raw byte-array as a buffer with unsigned-bytes.static UnsignedByteBufferwrapRaw(ByteBuffer bufferRaw) Exposes a rawByteBufferas a buffer with unsigned-bytes.Methods inherited from class org.anchoranalysis.image.voxel.buffer.primitive.UnsignedBufferAsInt
toStringMethods inherited from class org.anchoranalysis.image.voxel.buffer.primitive.UnsignedBuffer
capacity, clear, hasArray, hasRemaining, isDirect, position, position
-
Method Details
-
allocate
Allocates a new buffer of unsigned-bytes.- Parameters:
capacity- size of buffer.- Returns:
- newly created buffer (non-direct, i.e. backed by an array).
-
wrapRaw
Exposes a raw byte-array as a buffer with unsigned-bytes.- Parameters:
array- the byte-array- Returns:
- a new instance of
UnsignedByteBufferthat reusesarrayinternally.
-
wrapRaw
Exposes a rawByteBufferas a buffer with unsigned-bytes.- Parameters:
bufferRaw- the raw-buffer- Returns:
- a new instance of
UnsignedByteBufferthat reusesbufferRawinternally.
-
getRaw
public byte getRaw()Gets an unsigned-byte (represented as a byte) at the current buffer position.No further conversion occurs, so this method is more efficient than
getUnsigned().- Returns:
- unsigned-byte (represented by a byte)
-
getRaw
public byte getRaw(int index) Gets an unsigned-byte (represented as a byte) at a particular buffer position.No further conversion occurs, so this method is more efficient than
getUnsigned(int).- Parameters:
index- the buffer position- Returns:
- unsigned-byte (represented by a byte)
-
getUnsigned
public int getUnsigned()Description copied from class:UnsignedBufferAsIntGets an unsigned-byte (represented as a int) at the current buffer position.- Specified by:
getUnsignedin classUnsignedBufferAsInt- Returns:
- unsigned-byte (represented by a int)
-
getUnsigned
public int getUnsigned(int index) Description copied from class:UnsignedBufferAsIntGets an unsigned-byte (represented as a int) at a particular buffer position.- Specified by:
getUnsignedin classUnsignedBufferAsInt- Parameters:
index- the buffer position- Returns:
- unsigned-byte (represented by a int)
-
putRaw
public void putRaw(byte value) Puts an unsigned-byte (represented as a byte) at the current buffer position.No further conversion occurs, so this method is more efficient than
putUnsigned(int).- Parameters:
value- unsigned-byte (represented by a byte)
-
putRaw
public void putRaw(int index, byte value) Puts an unsigned-byte (represented as a byte) a particular buffer position.No further conversion occurs, so this method is more efficient than
putUnsigned(int,int).- Parameters:
index- the buffer positionvalue- the unsigned-byte (represented by an int)
-
putUnsigned
public void putUnsigned(int value) Description copied from class:UnsignedBufferAsIntPuts an unsigned-byte (represented by an int) at current buffer position.A conversion occurs from int to byte.
- Specified by:
putUnsignedin classUnsignedBufferAsInt- Parameters:
value- the unsigned-byte (represented by an int)
-
putUnsigned
public void putUnsigned(int index, int value) Description copied from class:UnsignedBufferAsIntPuts an unsigned-byte (represented as a int) a particular buffer position.A conversion occurs from int to byte.
- Specified by:
putUnsignedin classUnsignedBufferAsInt- Parameters:
index- the buffer positionvalue- the unsigned-byte (represented by an int)
-
putUnsignedInt
public void putUnsignedInt(int value) Puts an unsigned-int (represented by a int) at current buffer position.A conversion occurs from int to long and then to byte.
- Parameters:
value- the unsigned-int (represented by an int)
-
putLong
public void putLong(long value) Description copied from class:UnsignedBufferPuts a long at the current buffer position.- Specified by:
putLongin classUnsignedBuffer- Parameters:
value- the long.
-
putFloat
public void putFloat(float value) Description copied from class:UnsignedBufferPuts a float at the current buffer position.A conversion occurs from float to short.
- Specified by:
putFloatin classUnsignedBuffer- Parameters:
value- the float.
-
putFloat
public void putFloat(int index, float value) Description copied from class:UnsignedBufferPuts a float at a particular buffer position.A conversion occurs from float to byte.
- Specified by:
putFloatin classUnsignedBuffer- Parameters:
index- the buffer positionvalue- the float.
-
putFloatClamped
public void putFloatClamped(float value) Puts a float at the current buffer position, clamping to ensure the value is within the range(0,255).- Parameters:
value- the float
-
putDouble
public void putDouble(double value) Description copied from class:UnsignedBufferPuts a double at the current buffer position.- Specified by:
putDoublein classUnsignedBuffer- Parameters:
value- the double
-
putDoubleClamped
public void putDoubleClamped(double value) Puts a double at the current buffer position, clamping to ensure the value is within the range(0,255).- Parameters:
value- the double
-
putDouble
public void putDouble(int index, double value) Description copied from class:UnsignedBufferPuts a double at a particular buffer position.- Specified by:
putDoublein classUnsignedBuffer- Parameters:
index- the buffer positionvalue- the double
-
put
Relative put-method from an unsigned byte buffer, represented by aByteBuffer.This is identical to
ByteBuffer.put(ByteBuffer), with no return value.- Parameters:
source- source of bytes to put
-
put
Relative put-method from an unsigned byte buffer, represented by aUnsignedByteBuffer.This is identical to
ByteBuffer.put(ByteBuffer), with no return value.- Parameters:
source- source of bytes to put
-
array
public final byte[] array()The array of the buffer alaByteBuffer.array().Unlike
ByteBuffer.array()an array will always be returned, copying it into a newly created array, if it cannot be directly accessed.- Returns:
- the array
-
rewind
public final void rewind()Rewinds the buffer alaByteBuffer.rewind(). -
equals
- Overrides:
equalsin classUnsignedBufferAsInt
-
canEqual
- Overrides:
canEqualin classUnsignedBufferAsInt
-
hashCode
public int hashCode()- Overrides:
hashCodein classUnsignedBufferAsInt
-
getDelegate
The underlying storage buffer, to which calls are delegated with our without conversion.
-