|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.mckoi.database.IndexStore
public final class IndexStore
A class that manages the storage of a set of transactional index lists in a way that is fast to modify. This class has a number of objectives;
None intuitively, this object also handles unique ids.
Constructor Summary | |
---|---|
IndexStore(java.io.File file_name,
DebugLogger logger)
Constructs the IndexStore. |
Method Summary | |
---|---|
void |
addIndexLists(int count,
byte type)
Adds a number of blank index tables to the index store. |
void |
close()
Cleanly closes the index store. |
void |
commitIndexSet(IndexSet index_set)
Commits changes made to a snapshop of an IndexSet as being permanent changes to the state of the index store. |
void |
copyTo(java.io.File path)
Copies the persistant part of this to another store. |
void |
create(int block_size)
Creates a new black index store and returns leaving the newly created store in an open state. |
void |
delete()
Deletes the store. |
boolean |
exists()
Returns true if the index store file exists. |
boolean |
fix(UserTerminal terminal)
Performs checks to determine that the index store is stable. |
void |
flush()
Flushes all information in this index store to the file representing this store in the file system. |
IndexSet |
getSnapshotIndexSet()
Returns a current snapshot of the current indexes that are committed in this store. |
void |
hardSynch()
Performs a hard synchronization of this index store. |
void |
init()
Initializes the IndexStore. |
boolean |
isReadOnly()
Returns true if this store is read only. |
boolean |
open(boolean read_only)
Opens this index store. |
java.lang.String |
statusString()
Returns a string that contains diagnostic information. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public IndexStore(java.io.File file_name, DebugLogger logger)
file_name
- the path to the file of the index store in the file
system.Method Detail |
---|
public boolean exists() throws java.io.IOException
java.io.IOException
public void create(int block_size) throws java.io.IOException
block_size
- the number of ints stored in each block. This
can be optimized for specific use. Must be between 0 and 32768.
java.io.IOException
public boolean open(boolean read_only) throws java.io.IOException
Returns true if opening the store was dirty (was not closed properly) and may need repair.
If the index store does not exist before this method is called then it is created.
java.io.IOException
public void init() throws java.io.IOException
java.io.IOException
public boolean fix(UserTerminal terminal) throws java.io.IOException
Assumes the index store has been opened previous to calling this.
Returns true if the IndexStore is stable.
java.io.IOException
public boolean isReadOnly()
public void delete()
public void copyTo(java.io.File path) throws java.io.IOException
java.io.IOException
public void close() throws java.io.IOException
java.io.IOException
public void flush() throws java.io.IOException
java.io.IOException
public void hardSynch() throws java.io.IOException
For this to be useful, 'flush' should be called before a hardSynch.
java.io.IOException
public void addIndexLists(int count, byte type)
NOTE: This doesn't write the updated information to the file. You must call 'flush' to write the information to the store.
public IndexSet getSnapshotIndexSet()
A transaction must grab an IndexSet object when it opens.
NOTE: We MUST guarentee that the IndexSet is disposed when the transaction finishes.
public void commitIndexSet(IndexSet index_set)
For this to be used, during the transaction commit function a 'getSnapshopIndexSet' must be obtained, changes made to it from info in the journal, then a call to this method. There must be a guarentee that 'getSnapshotIndexSet' is not called again during this process.
NOTE: This doesn't write the updated information to the file. You must call 'flush' to write the information to the store.
NOTE: We must be guarenteed that when this method is called no other calls to other methods in this object can be called.
public java.lang.String statusString() throws java.io.IOException
java.io.IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |