org.apache.lucene.store.jdbc.index
Class JdbcBufferedIndexOutput

java.lang.Object
  extended by org.apache.lucene.store.IndexOutput
      extended by org.apache.lucene.store.jdbc.index.JdbcBufferedIndexOutput
All Implemented Interfaces:
JdbcIndexConfigurable
Direct Known Subclasses:
FileJdbcIndexOutput, RAMJdbcIndexOutput

public abstract class JdbcBufferedIndexOutput
extends IndexOutput
implements JdbcIndexConfigurable

A simple base class that performs index output memory based buffering. The buffer size can be configured under the BUFFER_SIZE_SETTING name.

Author:
kimchy

Field Summary
static String BUFFER_SIZE_SETTING
          The buffer size setting name.
protected  int bufferSize
           
static int DEFAULT_BUFFER_SIZE
          The default value for the buffer size (in bytes).
 
Constructor Summary
JdbcBufferedIndexOutput()
           
 
Method Summary
 void close()
          Closes this stream to further operations.
 void configure(String name, JdbcDirectory jdbcDirectory, JdbcFileEntrySettings settings)
          Configures the newly created IndexInput or IndexOutput implementations.
 void flush()
          Forces any buffered output to be written.
protected abstract  void flushBuffer(byte[] b, int len)
          Expert: implements buffer write.
 long getFilePointer()
          Returns the current position in this file, where the next write will occur.
abstract  long length()
          The number of bytes in the file.
 void seek(long pos)
          Sets current position in this file, where the next write will occur.
 void writeByte(byte b)
          Writes a single byte.
 void writeBytes(byte[] b, int length)
          Writes an array of bytes.
 
Methods inherited from class org.apache.lucene.store.IndexOutput
writeChars, writeInt, writeLong, writeString, writeVInt, writeVLong
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BUFFER_SIZE_SETTING

public static final String BUFFER_SIZE_SETTING
The buffer size setting name. See JdbcFileEntrySettings.setIntSetting(String, int). Should be set in bytes.

See Also:
Constant Field Values

DEFAULT_BUFFER_SIZE

public static final int DEFAULT_BUFFER_SIZE
The default value for the buffer size (in bytes). Currently 1024.

See Also:
Constant Field Values

bufferSize

protected int bufferSize
Constructor Detail

JdbcBufferedIndexOutput

public JdbcBufferedIndexOutput()
Method Detail

configure

public void configure(String name,
                      JdbcDirectory jdbcDirectory,
                      JdbcFileEntrySettings settings)
               throws IOException
Description copied from interface: JdbcIndexConfigurable
Configures the newly created IndexInput or IndexOutput implementations.

Specified by:
configure in interface JdbcIndexConfigurable
Parameters:
name - The name of the file entry
jdbcDirectory - The jdbc directory instance
settings - The relevant file entry settings
Throws:
IOException

writeByte

public void writeByte(byte b)
               throws IOException
Writes a single byte.

Specified by:
writeByte in class IndexOutput
Throws:
IOException
See Also:
IndexInput.readByte()

writeBytes

public void writeBytes(byte[] b,
                       int length)
                throws IOException
Writes an array of bytes.

Specified by:
writeBytes in class IndexOutput
Parameters:
b - the bytes to write
length - the number of bytes to write
Throws:
IOException
See Also:
IndexInput.readBytes(byte[],int,int)

flush

public void flush()
           throws IOException
Forces any buffered output to be written.

Specified by:
flush in class IndexOutput
Throws:
IOException

flushBuffer

protected abstract void flushBuffer(byte[] b,
                                    int len)
                             throws IOException
Expert: implements buffer write. Writes bytes at the current position in the output.

Parameters:
b - the bytes to write
len - the number of bytes to write
Throws:
IOException

close

public void close()
           throws IOException
Closes this stream to further operations.

Specified by:
close in class IndexOutput
Throws:
IOException

getFilePointer

public long getFilePointer()
Returns the current position in this file, where the next write will occur.

Specified by:
getFilePointer in class IndexOutput
See Also:
seek(long)

seek

public void seek(long pos)
          throws IOException
Sets current position in this file, where the next write will occur.

Specified by:
seek in class IndexOutput
Throws:
IOException
See Also:
getFilePointer()

length

public abstract long length()
                     throws IOException
The number of bytes in the file.

Specified by:
length in class IndexOutput
Throws:
IOException


Copyright (c) 2004-2006 The Compass Project.