2020-12-07 22:15:18 +01:00
|
|
|
package it.cavallium.dbengine.database;
|
|
|
|
|
2023-03-06 12:19:08 +01:00
|
|
|
import it.cavallium.buffer.Buf;
|
2023-03-27 22:00:32 +02:00
|
|
|
import it.cavallium.dbengine.database.serialization.SerializationFunction;
|
2023-02-09 23:34:25 +01:00
|
|
|
import java.io.IOException;
|
2020-12-07 22:15:18 +01:00
|
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
|
|
|
|
public interface LLSingleton extends LLKeyValueDatabaseStructure {
|
|
|
|
|
2023-02-09 23:34:25 +01:00
|
|
|
Buf get(@Nullable LLSnapshot snapshot);
|
2021-11-12 02:05:44 +01:00
|
|
|
|
2023-02-09 23:34:25 +01:00
|
|
|
void set(Buf value);
|
2021-11-12 02:05:44 +01:00
|
|
|
|
2023-03-27 22:00:32 +02:00
|
|
|
default Buf update(SerializationFunction<@Nullable Buf, @Nullable Buf> updater, UpdateReturnMode updateReturnMode) {
|
2023-02-09 23:34:25 +01:00
|
|
|
var prev = this.updateAndGetDelta(updater);
|
|
|
|
return LLUtils.resolveLLDelta(prev, updateReturnMode);
|
2022-03-20 14:33:27 +01:00
|
|
|
}
|
|
|
|
|
2023-03-27 22:00:32 +02:00
|
|
|
LLDelta updateAndGetDelta(SerializationFunction<@Nullable Buf, @Nullable Buf> updater);
|
2022-03-20 14:33:27 +01:00
|
|
|
|
|
|
|
String getColumnName();
|
|
|
|
|
|
|
|
String getName();
|
2020-12-07 22:15:18 +01:00
|
|
|
}
|