|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
@InterfaceAudience.Public @InterfaceStability.Evolving public interface PositionedByteRange
Extends ByteRange
with additional methods to support tracking a
consumers position within the viewport. The API is extended with methods
get()
and put(byte)
for interacting with the backing
array from the current position forward. This frees the caller from managing
their own index into the array.
Designed to be a slimmed-down, mutable alternative to ByteBuffer
.
Method Summary | |
---|---|
PositionedByteRange |
deepCopy()
Create a new ByteRange with new backing byte[] containing a copy
of the content from this range's window. |
byte |
get()
Retrieve the next byte from this range. |
PositionedByteRange |
get(byte[] dst)
Fill dst with bytes from the range, starting from position . |
PositionedByteRange |
get(byte[] dst,
int offset,
int length)
Fill dst with bytes from the range, starting from the current
position . |
PositionedByteRange |
get(int index,
byte[] dst)
Fill dst with bytes from the range, starting from index . |
PositionedByteRange |
get(int index,
byte[] dst,
int offset,
int length)
Fill dst with bytes from the range, starting from index . |
int |
getPosition()
The current position marker. |
int |
getRemaining()
The number of bytes remaining between position and the end of the range. |
byte |
peek()
Retrieve the next byte from this range without incrementing position. |
PositionedByteRange |
put(byte val)
Store val at the next position in this range. |
PositionedByteRange |
put(byte[] val)
Store the content of val in this range, starting at the next position. |
PositionedByteRange |
put(byte[] val,
int offset,
int length)
Store length bytes from val into this range. |
PositionedByteRange |
put(int index,
byte val)
Store val at index . |
PositionedByteRange |
put(int index,
byte[] val)
Store val at index . |
PositionedByteRange |
put(int index,
byte[] val,
int offset,
int length)
Store length bytes from val into this range, starting at
index . |
PositionedByteRange |
set(byte[] bytes)
Reuse this ByteRange over a new byte[]. |
PositionedByteRange |
set(byte[] bytes,
int offset,
int length)
Reuse this ByteRange over a new byte[]. |
PositionedByteRange |
set(int capacity)
Reuse this ByteRange over a new byte[]. |
PositionedByteRange |
setLength(int length)
Update the length of this range. |
PositionedByteRange |
setOffset(int offset)
Update the beginning of this range. |
PositionedByteRange |
setPosition(int position)
Update the position index. |
PositionedByteRange |
shallowCopy()
Create a new ByteRange that points at this range's byte[]. |
PositionedByteRange |
shallowCopySubRange(int innerOffset,
int copyLength)
Create a new ByteRange that points at this range's byte[]. |
PositionedByteRange |
unset()
Nullifies this ByteRange. |
Methods inherited from interface org.apache.hadoop.hbase.util.ByteRange |
---|
deepCopySubRangeTo, deepCopyTo, deepCopyToNewArray, get, getBytes, getLength, getOffset, isEmpty |
Methods inherited from interface java.lang.Comparable |
---|
compareTo |
Method Detail |
---|
int getPosition()
position
marker. This valuae is 0-indexed, relative to
the beginning of the range.
PositionedByteRange setPosition(int position)
position
index. May not be greater than length
.
position
- the new position in this range.
int getRemaining()
byte peek()
byte get()
PositionedByteRange get(byte[] dst)
dst
with bytes from the range, starting from position
.
This range's position
is incremented by the length of dst
,
the number of bytes copied.
dst
- the destination of the copy.
PositionedByteRange get(byte[] dst, int offset, int length)
dst
with bytes from the range, starting from the current
position
. length
bytes are copied into dst
,
starting at offset
. This range's position
is incremented
by the number of bytes copied.
dst
- the destination of the copy.offset
- the offset into dst
to start the copy.length
- the number of bytes to copy into dst
.
PositionedByteRange put(byte val)
val
at the next position in this range.
val
- the new value.
PositionedByteRange put(byte[] val)
val
in this range, starting at the next position.
val
- the new value.
PositionedByteRange put(byte[] val, int offset, int length)
length
bytes from val
into this range. Bytes from
val
are copied starting at offset
into the range, starting at
the current position.
val
- the new value.offset
- the offset in val
from which to start copying.length
- the number of bytes to copy from val
.
PositionedByteRange unset()
ByteRange
unset
in interface ByteRange
PositionedByteRange set(int capacity)
ByteRange
ByteRange
over a new byte[]. offset
is set to
0 and length
is set to capacity
.
set
in interface ByteRange
capacity
- the size of a new byte[].
PositionedByteRange set(byte[] bytes)
ByteRange
ByteRange
over a new byte[]. offset
is set to
0 and length
is set to bytes.length
. A null bytes
IS supported, in which case this method will behave equivalently to
ByteRange.unset()
.
set
in interface ByteRange
bytes
- the array to wrap.
PositionedByteRange set(byte[] bytes, int offset, int length)
ByteRange
ByteRange
over a new byte[]. A null bytes
IS
supported, in which case this method will behave equivalently to
ByteRange.unset()
, regardless of the values of offset
and
length
.
set
in interface ByteRange
bytes
- The array to wrap.offset
- The offset into bytes
considered the beginning of
this range.length
- The length of this range.
PositionedByteRange setOffset(int offset)
ByteRange
offset + length
may not be
greater than bytes.length
.
setOffset
in interface ByteRange
offset
- the new start of this range.
PositionedByteRange setLength(int length)
ByteRange
offset + length
should not be
greater than bytes.length
.
setLength
in interface ByteRange
length
- The new length of this range.
PositionedByteRange get(int index, byte[] dst)
ByteRange
dst
with bytes from the range, starting from index
.
get
in interface ByteRange
index
- zero-based index into this range.dst
- the destination of the copy.
PositionedByteRange get(int index, byte[] dst, int offset, int length)
ByteRange
dst
with bytes from the range, starting from index
.
length
bytes are copied into dst
, starting at offset
.
get
in interface ByteRange
index
- zero-based index into this range.dst
- the destination of the copy.offset
- the offset into dst
to start the copy.length
- the number of bytes to copy into dst
.
PositionedByteRange put(int index, byte val)
ByteRange
val
at index
.
put
in interface ByteRange
index
- the index in the range where val
is stored.val
- the value to store.
PositionedByteRange put(int index, byte[] val)
ByteRange
val
at index
.
put
in interface ByteRange
index
- the index in the range where val
is stored.val
- the value to store.
PositionedByteRange put(int index, byte[] val, int offset, int length)
ByteRange
length
bytes from val
into this range, starting at
index
. Bytes from val
are copied starting at offset
into the range.
put
in interface ByteRange
index
- position in this range to start the copy.val
- the value to store.offset
- the offset in val
from which to start copying.length
- the number of bytes to copy from val
.
PositionedByteRange deepCopy()
ByteRange
ByteRange
with new backing byte[] containing a copy
of the content from this
range's window.
deepCopy
in interface ByteRange
PositionedByteRange shallowCopy()
ByteRange
ByteRange
that points at this range's byte[].
Modifying the shallowCopy will modify the bytes in this range's array.
Pass over the hash code if it is already cached.
shallowCopy
in interface ByteRange
ByteRange
object referencing this range's byte[].PositionedByteRange shallowCopySubRange(int innerOffset, int copyLength)
ByteRange
ByteRange
that points at this range's byte[]. The new
range can have different values for offset and length, but modifying the
shallowCopy will modify the bytes in this range's array. Pass over the
hash code if it is already cached.
shallowCopySubRange
in interface ByteRange
innerOffset
- First byte of clone will be this.offset + copyOffset.copyLength
- Number of bytes in the clone.
ByteRange
object referencing this range's byte[].
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |