Interface SingleRangeMixin
- All Superinterfaces:
AutoCloseable
,LongSizedDataStructure
,OrderedKeys
,SafeCloseable
- All Known Implementing Classes:
SingleRangeOrderedKeys
public interface SingleRangeMixin extends OrderedKeys
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.utils.OrderedKeys
OrderedKeys.Iterator
-
Field Summary
-
Method Summary
Modifier and Type Method Description default boolean
forEachLong(LongAbortableConsumer lc)
For as long as the consumer wants more keys, call accept on the consumer with the individual key instances in this OrderedKeys, in increasing order.default boolean
forEachLongRange(LongRangeAbortableConsumer larc)
For as long as the consumer wants more ranges, call accept on the consumer with the individual key ranges in this OrderedKeys, in increasing order.default long
getAverageRunLengthEstimate()
Get an estimate of the average (mean) length of runs of adjacent keys in thisOrderedKeys
.default OrderedKeys
getOrderedKeysByKeyRange(long startKeyInclusive, long endKeyInclusive)
Get an ordered subset of the keys in thisOrderedKeys
for a key range.default OrderedKeys
getOrderedKeysByPosition(long startPositionInclusive, long length)
Get an ordered subset of the keys in thisOrderedKeys
for a position range.default OrderedKeys.Iterator
getOrderedKeysIterator()
Get anOrderedKeys.Iterator
over thisOrderedKeys
.default boolean
isContiguous()
Helper to tell you if this is one contiguous range.long
rangeEnd()
default long
rangesCountUpperBound()
long
rangeStart()
long
size()
Get the number of keys in thisOrderedKeys
.Methods inherited from interface com.illumon.iris.db.v2.utils.OrderedKeys
asIndex, asKeyIndicesChunk, asKeyRangesChunk, close, fillKeyIndicesChunk, fillKeyRangesChunk, firstKey, forAllLongRanges, forAllLongs, isEmpty, lastKey
-
Method Details
-
forEachLong
Description copied from interface:OrderedKeys
For as long as the consumer wants more keys, call accept on the consumer with the individual key instances in this OrderedKeys, in increasing order.- Specified by:
forEachLong
in interfaceOrderedKeys
- Parameters:
lc
- a consumer to feed the individual key values to.- Returns:
- false if the consumer provided ever returned false, true otherwise.
-
forEachLongRange
Description copied from interface:OrderedKeys
For as long as the consumer wants more ranges, call accept on the consumer with the individual key ranges in this OrderedKeys, in increasing order.- Specified by:
forEachLongRange
in interfaceOrderedKeys
- Parameters:
larc
- a consumer to feed the individual key values to.- Returns:
- false if the consumer provided ever returned false, true otherwise.
-
getOrderedKeysByPosition
Description copied from interface:OrderedKeys
Get an ordered subset of the keys in this
OrderedKeys
for a position range. The result will contain the set of keys inthis
that lie at positions in the half-open range [startPositionInclusive
,startPositionInclusive + length
). The returned reference is owned by the caller, who should callclose()
when it is done with it.- Specified by:
getOrderedKeysByPosition
in interfaceOrderedKeys
- Parameters:
startPositionInclusive
- The position of the first key to includelength
- The number of keys to include- Returns:
- The subset as an
OrderedKeys
, which may bethis
-
getOrderedKeysByKeyRange
Description copied from interface:OrderedKeys
Get an ordered subset of the keys in this
OrderedKeys
for a key range. The returned set will be the intersection of the keys inthis
with the keys in the closed interval [startKeyInclusive
,endKeyInclusive
]. The returned reference is owned by the caller, who should callclose()
when it is done with it.- Specified by:
getOrderedKeysByKeyRange
in interfaceOrderedKeys
- Parameters:
startKeyInclusive
- The minimum key to includeendKeyInclusive
- The maximum key to include- Returns:
- The subset as an
OrderedKeys
, which may bethis
-
getOrderedKeysIterator
Description copied from interface:OrderedKeys
Get anOrderedKeys.Iterator
over thisOrderedKeys
.- Specified by:
getOrderedKeysIterator
in interfaceOrderedKeys
- Returns:
- A new iterator, positioned at the first key
-
rangesCountUpperBound
default long rangesCountUpperBound() -
getAverageRunLengthEstimate
default long getAverageRunLengthEstimate()Description copied from interface:OrderedKeys
Get an estimate of the average (mean) length of runs of adjacent keys in this
OrderedKeys
.Implementations should strive to keep this method efficient (O(1) preferred) at the expense of accuracy.
Empty
OrderedKeys
should return an arbitrary valid value, usually 1.- Specified by:
getAverageRunLengthEstimate
in interfaceOrderedKeys
- Returns:
- An estimate of the average run length in this
OrderedKeys
, in [1,size()
]
-
isContiguous
default boolean isContiguous()Description copied from interface:OrderedKeys
Helper to tell you if this is one contiguous range.- Specified by:
isContiguous
in interfaceOrderedKeys
-
size
long size()Description copied from interface:OrderedKeys
Get the number of keys in thisOrderedKeys
.- Specified by:
size
in interfaceLongSizedDataStructure
- Specified by:
size
in interfaceOrderedKeys
- Returns:
- The size, in [0,
Long.MAX_VALUE
]
-
rangeStart
long rangeStart() -
rangeEnd
long rangeEnd()
-