Class LongChunk<ATTR extends Attributes.Any>
java.lang.Object
com.illumon.iris.db.v2.sources.chunk.ChunkBase<ATTR>
com.illumon.iris.db.v2.sources.chunk.LongChunk<ATTR>
- All Implemented Interfaces:
Chunk<ATTR>
- Direct Known Subclasses:
LongChunkPage
,ResettableLongChunk
,WritableLongChunk
public class LongChunk<ATTR extends Attributes.Any> extends ChunkBase<ATTR>
Chunk
implementation for long data.-
Field Summary
Fields inherited from interface com.illumon.iris.db.v2.sources.chunk.Chunk
MAXIMUM_SIZE, SYSTEM_ARRAYCOPY_THRESHOLD, SYSTEM_ARRAYFILL_THRESHOLD
-
Constructor Summary
Constructors Modifier Constructor Description protected
LongChunk(long[] data, int offset, int capacity)
-
Method Summary
Modifier and Type Method Description static <ATTR extends Attributes.Any>
LongChunk<ATTR>chunkWrap(long[] data)
static <ATTR extends Attributes.Any>
LongChunk<ATTR>chunkWrap(long[] data, int offset, int capacity)
void
copyToArray(int srcOffset, Object dest, int destOffset, int length)
Copy a subrange of this Chunk to the subrange of the 'dest' array.void
copyToBuffer(int srcOffset, Buffer destBuffer, int destOffset, int length)
Copy a sub-range of this chunk to aBuffer
.void
copyToChunk(int srcOffset, WritableChunk<? super ATTR> dest, int destOffset, int length)
Copy a subrange of this Chunk to the subrange of the 'dest' writable chunk.void
copyToTypedArray(int srcOffset, long[] destData, int destOffset, int length)
void
copyToTypedBuffer(int srcOffset, LongBuffer destBuffer, int destOffset, int length)
Copy a sub-range of this LongChunk to aLongBuffer
.static <ATTR extends Attributes.Any, ATTR_DERIV extends ATTR>
WritableLongChunk<ATTR_DERIV>downcast(WritableLongChunk<ATTR> self)
long
get(int index)
ChunkType
getChunkType()
static <ATTR extends Attributes.Any>
LongChunk<ATTR>getEmptyChunk()
boolean
isAlias(Chunk chunk)
boolean
isAlias(Object array)
static long[]
makeArray(int capacity)
LongChunk<ATTR>
slice(int offset, int capacity)
Make a new Chunk that represents either exactly the same view on the underlying data as this Chunk, or a subrange of that view.Methods inherited from class com.illumon.iris.db.v2.sources.chunk.ChunkBase
internalCapacity, internalSetSize, size
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.illumon.iris.db.v2.sources.chunk.Chunk
asBooleanChunk, asByteChunk, asCharChunk, asDoubleChunk, asFloatChunk, asIntChunk, asLongChunk, asObjectChunk, asShortChunk
-
Constructor Details
-
LongChunk
protected LongChunk(long[] data, int offset, int capacity)
-
-
Method Details
-
getEmptyChunk
-
makeArray
public static long[] makeArray(int capacity) -
chunkWrap
-
chunkWrap
public static <ATTR extends Attributes.Any> LongChunk<ATTR> chunkWrap(long[] data, int offset, int capacity) -
getChunkType
- Returns:
- The underlying chunk type
-
get
public final long get(int index) -
slice
Description copied from interface:Chunk
Make a new Chunk that represents either exactly the same view on the underlying data as this Chunk, or a subrange of that view. The view is defined as [0..size) (in the coordinate space of this Chunk).- Parameters:
offset
- Offset of the new Chunk, relative to this Chunk. 0 ≤ offset ≤ this.sizecapacity
- Capacity and initial size of the new Chunk. 0 ≤ capacity ≤ this.size -offset
.- Returns:
- The new Chunk. A new Chunk will always be returned, even if the Chunks represent the same view.
-
copyToChunk
public final void copyToChunk(int srcOffset, WritableChunk<? super ATTR> dest, int destOffset, int length)Description copied from interface:Chunk
Copy a subrange of this Chunk to the subrange of the 'dest' writable chunk.- Parameters:
srcOffset
- Starting position in 'this' (the source)dest
- Destination writable chunk.destOffset
- Starting offset in the destination.length
- Number of values to copy
-
copyToArray
Description copied from interface:Chunk
Copy a subrange of this Chunk to the subrange of the 'dest' array.- Parameters:
srcOffset
- Starting position in 'this' (the source)dest
- Destination array.destOffset
- Starting offset in the destination.length
- Number of values to copy
-
copyToTypedArray
public final void copyToTypedArray(int srcOffset, long[] destData, int destOffset, int length) -
isAlias
- Returns:
- true iff this and array are aliases, that is they refer to the same underlying data
-
isAlias
- Returns:
- true iff this and chunk are aliases, that is they refer to the same underlying data
-
copyToBuffer
public final void copyToBuffer(int srcOffset, @NotNull Buffer destBuffer, int destOffset, int length)Description copied from interface:Chunk
Copy a sub-range of this chunk to a
Buffer
. This is an optional method, as some chunk types do not have a corresponding buffer type.Implementations are free to copy data as efficiently as they may, and will use absolute rather than positional access where possible. To facilitate this pattern,
destOffset
is an absolute offset from position 0, rather than a relative offset fromdestBuffer.position()
.It is required that
destBuffer.limit()
is at leastdestOffset + length
.destBuffer
's position may be modified, but will always be restored to its initial value upon successful return.- Parameters:
srcOffset
- The offset into this chunk to start copying fromdestBuffer
- The destinationBuffer
destOffset
- The absolute offset intodestBuffer
to start copying tolength
- The number of elements to copy
-
copyToTypedBuffer
public final void copyToTypedBuffer(int srcOffset, @NotNull LongBuffer destBuffer, int destOffset, int length)Copy a sub-range of this LongChunk to a
LongBuffer
.See
copyToBuffer(int, Buffer, int, int)
for general documentation.- Parameters:
srcOffset
- The offset into this chunk to start copying fromdestBuffer
- The destinationLongBuffer
destOffset
- The absolute offset intodestBuffer
to start copying tolength
- The number of elements to copy
-
downcast
public static <ATTR extends Attributes.Any, ATTR_DERIV extends ATTR> WritableLongChunk<ATTR_DERIV> downcast(WritableLongChunk<ATTR> self)
-