Package net.morimekta.providence.storage
Class DirectoryMessageStore<K,M extends PMessage<M,F>,F extends PField>
- java.lang.Object
-
- net.morimekta.providence.storage.DirectoryMessageStore<K,M,F>
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,MessageReadOnlyStore<K,M,F>
,MessageStore<K,M,F>
,ReadOnlyStore<K,M>
,ReadWriteStore<K,M>
public class DirectoryMessageStore<K,M extends PMessage<M,F>,F extends PField> extends java.lang.Object implements MessageStore<K,M,F>, java.io.Closeable
Simple file-based storage of providence messages that keeps an in-memory key index, a message cache, and stores messages to individual files in a single directly.Note that the directory store is not parallel compatible between instances, as all of them would be able to read, write etc all the files all the time.
TL;DR Each directory can only have one
DirectoryMessageStore
instance active at a time.
-
-
Constructor Summary
Constructors Constructor Description DirectoryMessageStore(java.io.File directory, java.util.function.Function<K,java.lang.String> keyBuilder, java.util.function.Function<java.lang.String,K> keyParser, PMessageDescriptor<M,F> descriptor, Serializer serializer)
DirectoryMessageStore(java.nio.file.Path directory, java.util.function.Function<K,java.lang.String> keyBuilder, java.util.function.Function<java.lang.String,K> keyParser, PMessageDescriptor<M,F> descriptor, Serializer serializer)
DirectoryMessageStore(FileManager<K> manager, PMessageDescriptor<M,F> descriptor, Serializer serializer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
boolean
containsKey(K key)
java.util.Map<K,M>
getAll(java.util.Collection<K> keys)
Look up a set of keys from the storage.java.util.Collection<K>
keys()
Get a collection of all the keys in the store.java.util.Map<K,M>
putAll(java.util.Map<K,M> values)
java.util.Map<K,M>
removeAll(java.util.Collection<K> keys)
Remove the values for the given keys.int
size()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.morimekta.providence.storage.MessageReadOnlyStore
getAllBuilders, getBuilder
-
Methods inherited from interface net.morimekta.providence.storage.MessageStore
putAllBuilders, putBuilder
-
Methods inherited from interface net.morimekta.providence.storage.ReadOnlyStore
get
-
Methods inherited from interface net.morimekta.providence.storage.ReadWriteStore
put, remove
-
-
-
-
Constructor Detail
-
DirectoryMessageStore
public DirectoryMessageStore(@Nonnull java.io.File directory, @Nonnull java.util.function.Function<K,java.lang.String> keyBuilder, @Nonnull java.util.function.Function<java.lang.String,K> keyParser, @Nonnull PMessageDescriptor<M,F> descriptor, @Nonnull Serializer serializer)
-
DirectoryMessageStore
public DirectoryMessageStore(@Nonnull java.nio.file.Path directory, @Nonnull java.util.function.Function<K,java.lang.String> keyBuilder, @Nonnull java.util.function.Function<java.lang.String,K> keyParser, @Nonnull PMessageDescriptor<M,F> descriptor, @Nonnull Serializer serializer)
-
DirectoryMessageStore
public DirectoryMessageStore(@Nonnull FileManager<K> manager, @Nonnull PMessageDescriptor<M,F> descriptor, @Nonnull Serializer serializer)
-
-
Method Detail
-
containsKey
public boolean containsKey(@Nonnull K key)
- Specified by:
containsKey
in interfaceReadOnlyStore<K,M extends PMessage<M,F>>
- Parameters:
key
- The key to look up.- Returns:
- True if the key was contained in the map.
-
keys
@Nonnull public java.util.Collection<K> keys()
Description copied from interface:ReadOnlyStore
Get a collection of all the keys in the store.
-
size
public int size()
-
getAll
@Nonnull public java.util.Map<K,M> getAll(@Nonnull java.util.Collection<K> keys)
Description copied from interface:ReadOnlyStore
Look up a set of keys from the storage.
-
removeAll
@Nonnull public java.util.Map<K,M> removeAll(java.util.Collection<K> keys)
Description copied from interface:ReadWriteStore
Remove the values for the given keys.
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
-
-