All Classes and Interfaces
Class
Description
Interface for putting an array of items into a sequence at a certain offset
Binary search over sorted files with memory mapped IO
TODO Move to a separate project as this is of general use
TODO Allow cache to be shared between concurrent readers
State information for scanning a region once binary search has found an offset.
A block is a sub-sequence of bytes with a fixed finite length which
however may be initially unknown, and thus has a certain horizon of explored length.
A helper that holds a reference to the current block
and automatically closes it when advancing to the next one.
A block source mainly for testing the rest of the block-based
machinery, such as binary search.
BufferLike is a common interface for Buffer and RangeBuffer.
Implementation of a buffer that supports reading data from a channel.
A buffer backed by a mapping of page indices (longs) to arrays.
Modes for how a data producer thread should react to a lack of demand.
This is
sun.nio.ch.ChannelInputStream without relying on the channel's size() method.List view over a buffer.
A page is a fixed size sequence of bytes obtained from a page manager backed by a ByteBuffer.
A PageSource (TODO change to that naming) is a special kind of BlockSource where all blocks have the same size
and there is a 1:1 correspondance between a pages and non-overlapping regions in the underlying buffer.
PageManager wrapper for a static buffer
A wrapper that virtually puts a displaced page view over a delegate
There must be a 1:1 correspondence between page and byte buffer.
An object for (predominantly relative) positioning over a
sequence of fixed size pages
This class really only exists for the toString method
A union view of two buffers.
A producer task: Takes items from an iterator and writes them them to pages
Wrapper to treat a DataStream<byte[]> as a
ReadableByteChannel.A data stream allows for repeated retrieval of arrays of consecutive items.
The channel adds the open/close mechanic.
The class drives the iteration of items from the cache
and triggers fetching of data as necessary.
Also see
SeekableReadableChannels.A factory for ReadableChannel instances.
Decorator meant to switch from a buffered stream to a non-buffering one
Readable channel wrapper that before every read checks for an
end-of-file (eof) condition.
Wrap a stream such that reading is cut off at the first delimiter (including it) after a certain position.
Wrapper whose read method skips over the next byte delimiter (usually newline).
Exception used with
RangeBuffer when attempting to read a range of data
which there are one or more gaps in the buffer.A fixed size buffer with start and end pointers.
Adapter of
RingBufferBase for bytes.Interface that enables relative navigation over data of fixed finite
but possibly initially unknown size.
Segment could have predecessor / successor methods, but
how can we slice segments we request?
The use case is to scan backward until a condition is no longer satisfied,
maybe we don't need slicing then
A matcher over a Seekable.
Deprecated.
A segment is a sequence of bytes with a fixed size.
A concurrently accessible sequence of data of possibly unknown size.
Abstraction over a sequence of pages to view their content as
consecutive items.
A sequence of claimed ranges within a certain range, whereas the range
can be modified resulting in an incremental change of the claims.
Slice implementation backed only by a single
Buffer.A slice implementation that starts to discard pages once there are too many.
Metadata for slices of data.
A file-based slice implementation.