org.apache.lucene.store.db
Class DbDirectory

java.lang.Object
  extended by org.apache.lucene.store.Directory
      extended by org.apache.lucene.store.db.DbDirectory

public class DbDirectory
extends Directory

A DbDirectory is a Berkeley DB 4.3 based implementation of Directory. It uses two Db database handles, one for storing file records and another for storing file data blocks.


Field Summary
protected  com.sleepycat.db.internal.Db blocks
           
protected  com.sleepycat.db.internal.Db files
           
protected  int flags
           
protected  Set openFiles
           
protected  com.sleepycat.db.internal.DbTxn txn
           
 
Fields inherited from class org.apache.lucene.store.Directory
isOpen, lockFactory
 
Constructor Summary
DbDirectory(com.sleepycat.db.internal.DbTxn txn, com.sleepycat.db.internal.Db files, com.sleepycat.db.internal.Db blocks, int flags)
          Instantiate a DbDirectory.
DbDirectory(com.sleepycat.db.Transaction txn, com.sleepycat.db.Database files, com.sleepycat.db.Database blocks)
           
DbDirectory(com.sleepycat.db.Transaction txn, com.sleepycat.db.Database files, com.sleepycat.db.Database blocks, int flags)
           
 
Method Summary
 void close()
          Closes the store.
 IndexOutput createOutput(String name)
          Creates a new, empty file in the directory with the given name.
 void deleteFile(String name)
          Removes an existing file in the directory.
 boolean fileExists(String name)
          Returns true iff a file with the given name exists.
 long fileLength(String name)
          Returns the length of a file in the directory.
 long fileModified(String name)
          Returns the time the named file was last modified.
 void flush()
          Flush the currently open files.
 String[] list()
          List the files in the directory.
 Lock makeLock(String name)
          Construct a Lock.
 IndexInput openInput(String name)
          Returns a stream reading an existing file.
 void renameFile(String from, String to)
          Renames an existing file in the directory.
 void setTransaction(com.sleepycat.db.internal.DbTxn txn)
          Once a transaction handle was committed it is no longer valid.
 void setTransaction(com.sleepycat.db.Transaction txn)
          Once a transaction handle was committed it is no longer valid.
 void touchFile(String name)
          Set the modified time of an existing file to now.
 
Methods inherited from class org.apache.lucene.store.Directory
clearLock, copy, ensureOpen, getLockFactory, getLockID, listAll, openInput, setLockFactory, sync, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

openFiles

protected Set openFiles

files

protected com.sleepycat.db.internal.Db files

blocks

protected com.sleepycat.db.internal.Db blocks

txn

protected com.sleepycat.db.internal.DbTxn txn

flags

protected int flags
Constructor Detail

DbDirectory

public DbDirectory(com.sleepycat.db.internal.DbTxn txn,
                   com.sleepycat.db.internal.Db files,
                   com.sleepycat.db.internal.Db blocks,
                   int flags)
Instantiate a DbDirectory. The same threading rules that apply to Berkeley DB handles apply to instances of DbDirectory.

Parameters:
txn - a transaction handle that is going to be used for all db operations done by this instance. This parameter may be null.
files - a db handle to store file records.
blocks - a db handle to store file data blocks.
flags - flags used for db read operations.

DbDirectory

public DbDirectory(com.sleepycat.db.Transaction txn,
                   com.sleepycat.db.Database files,
                   com.sleepycat.db.Database blocks,
                   int flags)

DbDirectory

public DbDirectory(com.sleepycat.db.Transaction txn,
                   com.sleepycat.db.Database files,
                   com.sleepycat.db.Database blocks)
Method Detail

close

public void close()
           throws IOException
Description copied from class: Directory
Closes the store.

Specified by:
close in class Directory
Throws:
IOException

flush

public void flush()
           throws IOException
Flush the currently open files. After they have been flushed it is safe to commit the transaction without closing this DbDirectory instance first.

Throws:
IOException
See Also:
setTransaction(com.sleepycat.db.Transaction)

createOutput

public IndexOutput createOutput(String name)
                         throws IOException
Description copied from class: Directory
Creates a new, empty file in the directory with the given name. Returns a stream writing this file.

Specified by:
createOutput in class Directory
Throws:
IOException

deleteFile

public void deleteFile(String name)
                throws IOException
Description copied from class: Directory
Removes an existing file in the directory.

Specified by:
deleteFile in class Directory
Throws:
IOException

fileExists

public boolean fileExists(String name)
                   throws IOException
Description copied from class: Directory
Returns true iff a file with the given name exists.

Specified by:
fileExists in class Directory
Throws:
IOException

fileLength

public long fileLength(String name)
                throws IOException
Description copied from class: Directory
Returns the length of a file in the directory.

Specified by:
fileLength in class Directory
Throws:
IOException

fileModified

public long fileModified(String name)
                  throws IOException
Description copied from class: Directory
Returns the time the named file was last modified.

Specified by:
fileModified in class Directory
Throws:
IOException

list

public String[] list()
              throws IOException
Description copied from class: Directory
List the files in the directory.

Specified by:
list in class Directory
Throws:
IOException

openInput

public IndexInput openInput(String name)
                     throws IOException
Description copied from class: Directory
Returns a stream reading an existing file.

Specified by:
openInput in class Directory
Throws:
IOException

makeLock

public Lock makeLock(String name)
Description copied from class: Directory
Construct a Lock.

Overrides:
makeLock in class Directory
Parameters:
name - the name of the lock file

renameFile

public void renameFile(String from,
                       String to)
                throws IOException
Description copied from class: Directory
Renames an existing file in the directory. If a file already exists with the new name, then it is replaced. This replacement is not guaranteed to be atomic.

Specified by:
renameFile in class Directory
Throws:
IOException

touchFile

public void touchFile(String name)
               throws IOException
Description copied from class: Directory
Set the modified time of an existing file to now.

Specified by:
touchFile in class Directory
Throws:
IOException

setTransaction

public void setTransaction(com.sleepycat.db.Transaction txn)
Once a transaction handle was committed it is no longer valid. In order to continue using this DbDirectory instance after a commit, the transaction handle has to be replaced.

Parameters:
txn - the new transaction handle to use

setTransaction

public void setTransaction(com.sleepycat.db.internal.DbTxn txn)
Once a transaction handle was committed it is no longer valid. In order to continue using this DbDirectory instance after a commit, the transaction handle has to be replaced.

Parameters:
txn - the new transaction handle to use


Copyright © 2000-2010 Apache Software Foundation. All Rights Reserved.