From 3c843d40047e05c81966f75556709d4d9db3acee Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Wed, 19 Oct 2022 17:55:26 +0200 Subject: [PATCH] Add DataLockAPI.java --- api/src/main/java/com/alttd/DataLockAPI.java | 31 ++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 api/src/main/java/com/alttd/DataLockAPI.java 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); + +}