Unified module template providers interface
This commit is contained in:
parent
8b13d0a2e9
commit
8b3fc9355f
@ -3,6 +3,10 @@ package ru.landgrafhomyak.serdha.api.v0.ddl
|
|||||||
import ru.landgrafhomyak.serdha.api.v0.runtime.Transaction
|
import ru.landgrafhomyak.serdha.api.v0.runtime.Transaction
|
||||||
|
|
||||||
public interface ModuleTemplate<ModuleUserExtension : Any> {
|
public interface ModuleTemplate<ModuleUserExtension : Any> {
|
||||||
|
public interface Provider<UserExtension : Any> {
|
||||||
|
public fun createModuleTemplates(creator: Creator): UserExtension
|
||||||
|
}
|
||||||
|
|
||||||
public interface Creator {
|
public interface Creator {
|
||||||
public fun <NewModuleUserExtension : Any> createTemplate(
|
public fun <NewModuleUserExtension : Any> createTemplate(
|
||||||
versionKey: String,
|
versionKey: String,
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
package ru.landgrafhomyak.serdha.api.v0.runtime
|
package ru.landgrafhomyak.serdha.api.v0.runtime
|
||||||
|
|
||||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ModuleCreator
|
|
||||||
import ru.landgrafhomyak.serdha.api.v0.ddl.ModuleTemplate
|
import ru.landgrafhomyak.serdha.api.v0.ddl.ModuleTemplate
|
||||||
import ru.landgrafhomyak.serdha.api.v0.ddl.Namespace
|
|
||||||
|
|
||||||
@Suppress("SpellCheckingInspection")
|
@Suppress("SpellCheckingInspection")
|
||||||
public interface UnsynchronizedDatabase {
|
public interface UnsynchronizedDatabase {
|
||||||
public fun <ModuleUserExtension : Any> createModule(initialVersionKey: String, content: ModuleTemplate.CreateModule<ModuleUserExtension>): ModuleTemplate<ModuleUserExtension>
|
public fun <UserExtension : Any> addModuleTemplates(creator: ModuleTemplate.Provider<UserExtension>): UserExtension
|
||||||
|
|
||||||
public suspend fun <ModuleUserExtension : Any> synchronize(conent: ModuleTemplate<ModuleUserExtension>): SynchronizedDatabase<ModuleUserExtension>
|
public suspend fun <ModuleUserExtension : Any> synchronize(conent: ModuleTemplate<ModuleUserExtension>): SynchronizedDatabase<ModuleUserExtension>
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user