Package io.permazen.kv.raft
Class RaftKVImplementation
java.lang.Object
io.permazen.kv.raft.RaftKVImplementation
- All Implemented Interfaces:
KVImplementation<RaftKVImplementation.Config>
public class RaftKVImplementation
extends Object
implements KVImplementation<RaftKVImplementation.Config>
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddOptions(joptsimple.OptionParser parser) Add implementation-specific command line options.buildConfig(joptsimple.OptionSet options) Build a configuration from implementation-specific command line options, if any were given.createKVDatabase(RaftKVImplementation.Config config, KVDatabase kvdb, AtomicKVStore kvstore) Create anKVDatabaseusing the specified configuration.Generate a short, human-readable description of theKVDatabaseinstance configured as given.booleanDetermine whether thisKVImplementationincludes an implementation of theKVDatabaseinterface.booleanDetermine whether this instance'sKVDatabaseimplementation requires an underlyingAtomicKVStore.booleanDetermine whether this instance'sKVDatabaseimplementation requires some other underlyingKVDatabase.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.permazen.kv.KVImplementation
createAtomicKVStore, getConfigType, providesAtomicKVStore
-
Constructor Details
-
RaftKVImplementation
public RaftKVImplementation()
-
-
Method Details
-
addOptions
public void addOptions(joptsimple.OptionParser parser) Description copied from interface:KVImplementationAdd implementation-specific command line options.All of the added options must be optional, because multiple key/value implementations will be available when the command line is parsed, and the presence of implementation-specific options determines which one(s) are chosen.
- Specified by:
addOptionsin interfaceKVImplementation<RaftKVImplementation.Config>- Parameters:
parser- command line flag parser
-
buildConfig
Description copied from interface:KVImplementationBuild a configuration from implementation-specific command line options, if any were given.If none of this implementation's options were provided, then this method must return null.
- Specified by:
buildConfigin interfaceKVImplementation<RaftKVImplementation.Config>- Parameters:
options- parsed command line options- Returns:
- corresponding configuration, or null if this implementation was not configured
-
providesKVDatabase
Description copied from interface:KVImplementationDetermine whether thisKVImplementationincludes an implementation of theKVDatabaseinterface.The implementation in
KVImplementationreturn false.- Specified by:
providesKVDatabasein interfaceKVImplementation<RaftKVImplementation.Config>- Parameters:
config- implementation configuration returned bybuildConfig()- Returns:
- true if this instance can create an
KVDatabase
-
createKVDatabase
public KVDatabase createKVDatabase(RaftKVImplementation.Config config, KVDatabase kvdb, AtomicKVStore kvstore) Description copied from interface:KVImplementationCreate anKVDatabaseusing the specified configuration.The implementation in
KVImplementationalways throwsUnsupportedOperationException.- Specified by:
createKVDatabasein interfaceKVImplementation<RaftKVImplementation.Config>- Parameters:
config- implementation configuration returned bybuildConfig()kvdb- requiredKVDatabase; will be null unlessKVImplementation.requiresKVDatabase(C)returned truekvstore- requiredAtomicKVStore; will be null unlessKVImplementation.requiresAtomicKVStore(C)returned true- Returns:
- new
KVDatabaseinstance
-
requiresAtomicKVStore
Description copied from interface:KVImplementationDetermine whether this instance'sKVDatabaseimplementation requires an underlyingAtomicKVStore.This method and
requiresKVDatabase()may not both return true.The implementation in
KVImplementationreturn false.- Specified by:
requiresAtomicKVStorein interfaceKVImplementation<RaftKVImplementation.Config>- Parameters:
config- implementation configuration returned bybuildConfig()- Returns:
- true if the implementation relies on an underlying
AtomicKVStore
-
requiresKVDatabase
Description copied from interface:KVImplementationDetermine whether this instance'sKVDatabaseimplementation requires some other underlyingKVDatabase.This method and
requiresAtomicKVStore()may not both return true.The implementation in
KVImplementationreturn false.- Specified by:
requiresKVDatabasein interfaceKVImplementation<RaftKVImplementation.Config>- Parameters:
config- implementation configuration returned bybuildConfig()- Returns:
- true if the implementation relies on an underlying
KVDatabase
-
getDescription
Description copied from interface:KVImplementationGenerate a short, human-readable description of theKVDatabaseinstance configured as given.- Specified by:
getDescriptionin interfaceKVImplementation<RaftKVImplementation.Config>- Parameters:
config- implementation configuration returned bybuildConfig()- Returns:
- human-readable description
-