Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Berkeley DB version 4.4.20
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sleepycat.bind.tuple
Class TupleBase

    java.lang.Object
      com.sleepycat.bind.tuple.TupleBase

Direct Known Subclasses:
  TupleBinding, TupleSerialBinding, TupleSerialKeyCreator, TupleTupleBinding, TupleTupleKeyCreator

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 `setTupleBufferSize(int)` method may be used to control the initial size of the buffer, and the `getTupleOutput(java.lang.Object)` 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 TupleInput` | `entryToInput(DatabaseEntry entry)` Utility method to create a new tuple input object for reading the data from a given buffer.
`int` | `getTupleBufferSize()` Returns the initial byte size of the output buffer.
`protected TupleOutput` | `getTupleOutput(Object object)` Returns an empty TupleOutput instance that will be used by the tuple binding or key creator.
`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.
`static TupleOutput` | `newOutput()` Deprecated. replaced by `getTupleOutput(java.lang.Object)`
`static TupleOutput` | `newOutput(byte[] buffer)` Deprecated. replaced by `getTupleOutput(java.lang.Object)`
`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.
`void` | `setTupleBufferSize(int byteSize)` Sets the initial byte size of the output buffer that is allocated by the default implementation of `getTupleOutput(java.lang.Object)`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### TupleBase

    public TupleBase()

  Initializes the initial output buffer size to zero.

  Unless `setTupleBufferSize(int)` is called, the default `FastOutputStream.DEFAULT_INIT_SIZE` size will be used.

Method Detail

### setTupleBufferSize

    public void setTupleBufferSize(int byteSize)

  Sets the initial byte size of the output buffer that is allocated by the default implementation of `getTupleOutput(java.lang.Object)`.

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

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

### getTupleBufferSize

    public int getTupleBufferSize()

  Returns the initial byte size of the output buffer.

  Returns:
    the initial byte size of the output buffer.
  See Also:
    `setTupleBufferSize(int)`

### 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 `setTupleBufferSize(int)` 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.reset()` 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:
    `setTupleBufferSize(int)`

### 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.

### 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.

### 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.

### newOutput

    public static TupleOutput newOutput()

  Deprecated. replaced by `getTupleOutput(java.lang.Object)`

  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 `getTupleOutput(java.lang.Object)`

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

  Returns:
    a new tuple output object.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Berkeley DB version 4.4.20
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 1996-2005 Sleepycat Software, Inc. - All rights reserved.