summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/storage/Backing.kt
diff options
context:
space:
mode:
authorDico200 <dico.karssiens@gmail.com>2018-07-22 07:12:53 +0200
committerDico200 <dico.karssiens@gmail.com>2018-07-22 07:12:53 +0200
commit9f81a74bd9e89541448bf79d73d0b9bc297e72ee (patch)
treed32eb5e641bf8f81c172d866fdf05d22018c08ba /src/main/kotlin/io/dico/parcels2/storage/Backing.kt
parentdbcc90ac8a938e9098dc93206f061cc2a4765ad6 (diff)
port RedstonerPlots a bit
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/storage/Backing.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/storage/Backing.kt37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/storage/Backing.kt b/src/main/kotlin/io/dico/parcels2/storage/Backing.kt
new file mode 100644
index 0000000..cd33b3d
--- /dev/null
+++ b/src/main/kotlin/io/dico/parcels2/storage/Backing.kt
@@ -0,0 +1,37 @@
+package io.dico.parcels2.storage
+
+import io.dico.parcels2.Parcel
+import io.dico.parcels2.ParcelData
+import io.dico.parcels2.ParcelOwner
+import io.dico.parcels2.storage.SerializableParcel
+import kotlinx.coroutines.experimental.channels.ProducerScope
+import java.util.*
+
+interface Backing {
+
+ val name: String
+
+ suspend fun init()
+
+ suspend fun shutdown()
+
+ /**
+ * This producer function is capable of constantly reading plots from a potentially infinite sequence,
+ * and provide plotdata for it as read from the database.
+ */
+
+ suspend fun ProducerScope<Pair<Parcel, ParcelData?>>.produceParcelData(parcels: Sequence<Parcel>)
+
+ suspend fun readParcelData(plotFor: Parcel): ParcelData?
+
+ suspend fun getOwnedParcels(user: ParcelOwner): List<SerializableParcel>
+
+ suspend fun setParcelOwner(plotFor: Parcel, owner: ParcelOwner?)
+
+ suspend fun setParcelPlayerState(plotFor: Parcel, player: UUID, state: Boolean?)
+
+ suspend fun setParcelAllowsInteractInventory(plot: Parcel, value: Boolean)
+
+ suspend fun setParcelAllowsInteractInputs(plot: Parcel, value: Boolean)
+
+} \ No newline at end of file