diff --git a/api/src/main/java/com/alttd/DataLockAPI.java b/api/src/main/java/com/alttd/DataLockAPI.java new file mode 100644 index 0000000..e2e4a19 --- /dev/null +++ b/api/src/main/java/com/alttd/DataLockAPI.java @@ -0,0 +1,31 @@ +package com.alttd; + +import org.jetbrains.annotations.ApiStatus; + +public interface DataLockAPI { + + static DataLockAPI get() { + return Provider.instance; + } + + final class Provider { + private static DataLockAPI instance = null; + + @ApiStatus.Internal + static void register(DataLockAPI instance) { + if (Provider.instance != null) + throw new UnsupportedOperationException("Cannot redefine singleton"); + + Provider.instance = instance; + } + } + + void tryLock(String channel, String data); + + void tryUnlock(String channel, String data); + + void registerChannel(String channel); + + boolean isActiveChannel(String channel); + +}