Package com.sun.labs.minion.util.buffer

Provides interfaces and classes for dealing with readable and writeable buffers of data.

See:
          Description

Interface Summary
Buffer An interface for the buffers used by the search engine.
ReadableBuffer An interface for buffers that can be read from.
WriteableBuffer An interface for buffers that can be written to.
 

Class Summary
ArrayBuffer A buffer class for reading and writing that is backed by a growable array of bytes.
ChannelReadableBuffer A readable buffer that's backed by a channel and an in-memory buffer.
FileReadableBuffer A buffer that can be used to read data from a file, keeping minimal amounts of data in memory.
FileWriteableBuffer A class for a writeable buffer that encodes data directly to a file, utilizing an in-memory buffer.
NIOBuffer A buffer that uses java.nio buffers as the backing store.
StdBufferImpl A abstract class that implements most of the WriteableBuffer and ReadableBuffer interfaces in terms of the two implemented interfaces' get and put methods.
StdReadableImpl A class that implements the decoding routines in ReadableBuffer so that readable only buffer implementations can share it.
 

Package com.sun.labs.minion.util.buffer Description

Provides interfaces and classes for dealing with readable and writeable buffers of data. While these buffers are similar in some respects to the buffers found in the java.nio package, they differ in a few significant ways:

The package provides several implementations of the basic buffer interfaces. Each implementation is useful in a particular situation. The documentation for each implementation describes the situation in which it should be used.

The buffers allow the encoding and decoding of integers using a 7-bit encoding. In this encoding, the 7 lower-order bits of a byte are used to encode the integer. If the 8th bit is 0, then there are no further bytes in this number. If the 8th bit is one, then the next byte continues the number. Note that this means that a number that would completly fill a 32 bit integer will take 5 bytes to encode. The expectation is that we will use a variety of techniques to ensure that this doesn't occur.