61 lines
1.6 KiB
Java
61 lines
1.6 KiB
Java
package it.cavallium.dbengine.database.memory;
|
|
|
|
import it.cavallium.buffer.Buf;
|
|
import it.cavallium.dbengine.database.LLDelta;
|
|
import it.cavallium.dbengine.database.LLDictionaryResultType;
|
|
import it.cavallium.dbengine.database.LLSingleton;
|
|
import it.cavallium.dbengine.database.LLSnapshot;
|
|
import it.cavallium.dbengine.database.UpdateReturnMode;
|
|
import it.cavallium.dbengine.database.disk.BinarySerializationFunction;
|
|
import java.nio.charset.StandardCharsets;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
public class LLMemorySingleton implements LLSingleton {
|
|
|
|
private final LLMemoryDictionary dict;
|
|
private final String columnNameString;
|
|
private final Buf singletonName;
|
|
|
|
public LLMemorySingleton(LLMemoryDictionary dict, String columnNameString, byte[] singletonName) {
|
|
this.dict = dict;
|
|
this.columnNameString = columnNameString;
|
|
this.singletonName = Buf.wrap(singletonName);
|
|
}
|
|
|
|
@Override
|
|
public String getDatabaseName() {
|
|
return dict.getDatabaseName();
|
|
}
|
|
|
|
@Override
|
|
public Buf get(@Nullable LLSnapshot snapshot) {
|
|
return dict.get(snapshot, singletonName);
|
|
}
|
|
|
|
@Override
|
|
public void set(Buf value) {
|
|
dict.put(singletonName, value, LLDictionaryResultType.VOID);
|
|
}
|
|
|
|
@Override
|
|
public Buf update(BinarySerializationFunction updater,
|
|
UpdateReturnMode updateReturnMode) {
|
|
return dict.update(singletonName, updater, updateReturnMode);
|
|
}
|
|
|
|
@Override
|
|
public LLDelta updateAndGetDelta(BinarySerializationFunction updater) {
|
|
return dict.updateAndGetDelta(singletonName, updater);
|
|
}
|
|
|
|
@Override
|
|
public String getColumnName() {
|
|
return columnNameString;
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return singletonName.toString(StandardCharsets.UTF_8);
|
|
}
|
|
}
|