T
- buffer type@ThreadSafe public abstract class LMDBKVDatabase<T> extends Object implements KVDatabase
KVDatabase
view of an LMDB database.
A database directory is the only required configuration property. Instances may be stopped and (re)started multiple times.
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_DATABASE_NAME
Default LMDB database name ("permazen").
|
protected Logger |
log |
Modifier | Constructor and Description |
---|---|
protected |
LMDBKVDatabase(org.lmdbjava.Env.Builder<T> defaultBuilder)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
LMDBKVTransaction<T> |
createTransaction()
Create a new transaction.
|
LMDBKVTransaction<T> |
createTransaction(Map<String,?> options)
Create a new transaction with the specified options.
|
protected abstract LMDBKVTransaction<T> |
doCreateTransaction(org.lmdbjava.Env<T> env,
org.lmdbjava.Dbi<T> db,
Map<String,?> options) |
protected void |
finalize()
Finalize this instance.
|
String |
getDatabaseName()
Get the LMDB database name to use.
|
File |
getDirectory()
Get the filesystem directory containing the database.
|
org.lmdbjava.Env<T> |
getEnv()
Get the
Env associated with this instance. |
org.lmdbjava.Env.Builder<T> |
getEnvBuilder()
Get the
Env.Builder that will be used when opening the associated Env . |
EnumSet<org.lmdbjava.EnvFlags> |
getEnvFlags()
Get the
EnvFlags that will be used when opening the associated Env . |
void |
setDatabaseName(String databaseName)
Set the LMDB database name to use.
|
void |
setDirectory(File directory)
Configure the filesystem directory containing the database.
|
void |
setEnvBuilder(EnumSet<org.lmdbjava.EnvFlags> flags)
Set the flags to be used when opening the associated
Env . |
void |
setEnvBuilder(org.lmdbjava.Env.Builder<T> builder)
Set a custom builder to be used when opening the associated
Env . |
void |
start()
Start this instance.
|
void |
stop()
Stop this instance.
|
String |
toString() |
public static final String DEFAULT_DATABASE_NAME
protected final Logger log
protected LMDBKVDatabase(org.lmdbjava.Env.Builder<T> defaultBuilder)
defaultBuilder
- the default builderIllegalArgumentException
- if defaultBuilder
is nullpublic File getDirectory()
public void setDirectory(File directory)
directory
- database directoryIllegalStateException
- if this instance is already start()
edpublic String getDatabaseName()
public void setDatabaseName(String databaseName)
Default value is DEFAULT_DATABASE_NAME
.
databaseName
- database nameIllegalStateException
- if this instance is already start()
edIllegalArgumentException
- if databaseName
is nullpublic EnumSet<org.lmdbjava.EnvFlags> getEnvFlags()
EnvFlags
that will be used when opening the associated Env
.public void setEnvBuilder(EnumSet<org.lmdbjava.EnvFlags> flags)
Env
.
Default is empty set.
flags
- environment flagsIllegalStateException
- if this instance is already start()
edIllegalArgumentException
- if flags
is nullpublic org.lmdbjava.Env.Builder<T> getEnvBuilder()
Env.Builder
that will be used when opening the associated Env
.public void setEnvBuilder(org.lmdbjava.Env.Builder<T> builder)
Env
.builder
- environment builderIllegalStateException
- if this instance is already start()
edIllegalArgumentException
- if builder
is nullpublic org.lmdbjava.Env<T> getEnv()
Env
associated with this instance.Env
IllegalStateException
- if this instance is not start()
ed@PostConstruct public void start()
KVDatabase
This method is idempotent: if this instance is already started, nothing happens.
Whether an instance that has been started and stopped can be restarted is implementation-dependent.
start
in interface KVDatabase
@PreDestroy public void stop()
KVDatabase
This method is idempotent: if this instance has not been started, or is already stopped, nothing happens.
stop
in interface KVDatabase
public LMDBKVTransaction<T> createTransaction()
KVDatabase
createTransaction
in interface KVDatabase
public LMDBKVTransaction<T> createTransaction(Map<String,?> options)
KVDatabase
createTransaction
in interface KVDatabase
options
- optional transaction options; may be nullprotected abstract LMDBKVTransaction<T> doCreateTransaction(org.lmdbjava.Env<T> env, org.lmdbjava.Dbi<T> db, Map<String,?> options)
protected void finalize() throws Throwable
stop()
to close any unclosed iterators.Copyright © 2022. All rights reserved.