com.sleepycat.bind.tuple

Class TupleBase

public class TupleBase extends Object

A base class for tuple bindings and tuple key creators that provides control over the allocation of the output buffer.

Tuple bindings and key creators append data to a TupleOutput instance, which is also a FastOutputStream instance. This object has a byte array buffer that is resized when it is full. The reallocation of this buffer can be a performance factor for some applications using large objects. To manage this issue, the TupleBase method may be used to control the initial size of the buffer, and the TupleBase method may be overridden by subclasses to take over creation of the TupleOutput object.

Constructor Summary
TupleBase()
Initializes the initial output buffer size to zero.
Method Summary
static TupleInputentryToInput(DatabaseEntry entry)
Utility method to create a new tuple input object for reading the data from a given buffer.
intgetTupleBufferSize()
Returns the initial byte size of the output buffer.
protected TupleOutputgetTupleOutput(Object object)
Returns an empty TupleOutput instance that will be used by the tuple binding or key creator.
static voidinputToEntry(TupleInput input, DatabaseEntry entry)
Utility method to set the data in a entry buffer to the data in a tuple input object.
static TupleOutputnewOutput()
Utility method for use by bindings to create a tuple output object.
static TupleOutputnewOutput(byte[] buffer)
Utility method for use by bindings to create a tuple output object with a specific starting size.
static voidoutputToEntry(TupleOutput output, DatabaseEntry entry)
Utility method to set the data in a entry buffer to the data in a tuple output object.
voidsetTupleBufferSize(int byteSize)
Sets the initial byte size of the output buffer that is allocated by the default implementation of TupleBase.

Constructor Detail

TupleBase

public TupleBase()
Initializes the initial output buffer size to zero.

Unless TupleBase is called, the default DEFAULT_INIT_SIZE size will be used.

Method Detail

entryToInput

public static TupleInput entryToInput(DatabaseEntry entry)
Utility method to create a new tuple input object for reading the data from a given buffer. If an existing input is reused, it is reset before returning it.

Parameters: entry is the source entry buffer.

Returns: the new tuple input object.

getTupleBufferSize

public int getTupleBufferSize()
Returns the initial byte size of the output buffer.

Returns: the initial byte size of the output buffer.

See Also: TupleBase

getTupleOutput

protected TupleOutput getTupleOutput(Object object)
Returns an empty TupleOutput instance that will be used by the tuple binding or key creator.

The default implementation of this method creates a new TupleOutput with an initial buffer size that can be changed using the TupleBase method.

This method may be overridden to return a TupleOutput instance. For example, an instance per thread could be created and returned by this method. If a TupleOutput instance is reused, be sure to call its FastOutputStream method before each use.

Parameters: object is the object to be written to the tuple output, and may be used by subclasses to determine the size of the output buffer.

Returns: an empty TupleOutput instance.

See Also: TupleBase

inputToEntry

public static void inputToEntry(TupleInput input, DatabaseEntry entry)
Utility method to set the data in a entry buffer to the data in a tuple input object.

Parameters: input is the source tuple input object. entry is the destination entry buffer.

newOutput

public static TupleOutput newOutput()

Deprecated: replaced by TupleBase

Utility method for use by bindings to create a tuple output object.

Returns: a new tuple output object.

newOutput

public static TupleOutput newOutput(byte[] buffer)

Deprecated: replaced by TupleBase

Utility method for use by bindings to create a tuple output object with a specific starting size.

Returns: a new tuple output object.

outputToEntry

public static void outputToEntry(TupleOutput output, DatabaseEntry entry)
Utility method to set the data in a entry buffer to the data in a tuple output object.

Parameters: output is the source tuple output object. entry is the destination entry buffer.

setTupleBufferSize

public void setTupleBufferSize(int byteSize)
Sets the initial byte size of the output buffer that is allocated by the default implementation of TupleBase.

If this property is zero (the default), the default DEFAULT_INIT_SIZE size is used.

Parameters: byteSize the initial byte size of the output buffer, or zero to use the default size.