summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/storage/Backing.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/storage/Backing.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/storage/Backing.kt33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/storage/Backing.kt b/src/main/kotlin/io/dico/parcels2/storage/Backing.kt
index 31b6574..88ee5fd 100644
--- a/src/main/kotlin/io/dico/parcels2/storage/Backing.kt
+++ b/src/main/kotlin/io/dico/parcels2/storage/Backing.kt
@@ -1,11 +1,8 @@
package io.dico.parcels2.storage
-import io.dico.parcels2.AddedData
-import io.dico.parcels2.Parcel
-import io.dico.parcels2.ParcelData
-import io.dico.parcels2.ParcelOwner
-import kotlinx.coroutines.experimental.channels.ProducerScope
-import java.util.*
+import io.dico.parcels2.*
+import kotlinx.coroutines.experimental.channels.SendChannel
+import java.util.UUID
interface Backing {
@@ -22,30 +19,32 @@ interface Backing {
* This producer function is capable of constantly reading parcels from a potentially infinite sequence,
* and provide parcel data for it as read from the database.
*/
- suspend fun ProducerScope<Pair<Parcel, ParcelData?>>.produceParcelData(parcels: Sequence<Parcel>)
+ suspend fun produceParcelData(channel: SendChannel<DataPair>, parcels: Sequence<ParcelId>)
- suspend fun ProducerScope<Pair<SerializableParcel, ParcelData?>>.produceAllParcelData()
+ suspend fun produceAllParcelData(channel: SendChannel<DataPair>)
- suspend fun readParcelData(parcelFor: Parcel): ParcelData?
+ suspend fun readParcelData(parcel: ParcelId): ParcelData?
- suspend fun getOwnedParcels(user: ParcelOwner): List<SerializableParcel>
+ suspend fun getOwnedParcels(user: ParcelOwner): List<ParcelId>
suspend fun getNumParcels(user: ParcelOwner): Int = getOwnedParcels(user).size
- suspend fun setParcelData(parcelFor: Parcel, data: ParcelData?)
+ suspend fun setParcelData(parcel: ParcelId, data: ParcelData?)
- suspend fun setParcelOwner(parcelFor: Parcel, owner: ParcelOwner?)
+ suspend fun setParcelOwner(parcel: ParcelId, owner: ParcelOwner?)
- suspend fun setParcelPlayerState(parcelFor: Parcel, player: UUID, state: Boolean?)
+ suspend fun setLocalPlayerStatus(parcel: ParcelId, player: UUID, status: AddedStatus)
- suspend fun setParcelAllowsInteractInventory(parcel: Parcel, value: Boolean)
+ suspend fun setParcelAllowsInteractInventory(parcel: ParcelId, value: Boolean)
- suspend fun setParcelAllowsInteractInputs(parcel: Parcel, value: Boolean)
+ suspend fun setParcelAllowsInteractInputs(parcel: ParcelId, value: Boolean)
- suspend fun readGlobalPlayerStateData(owner: ParcelOwner): AddedData?
+ suspend fun produceAllGlobalAddedData(channel: SendChannel<AddedDataPair<ParcelOwner>>)
- suspend fun setGlobalPlayerState(owner: ParcelOwner, player: UUID, state: Boolean?)
+ suspend fun readGlobalAddedData(owner: ParcelOwner): MutableAddedDataMap
+
+ suspend fun setGlobalPlayerStatus(owner: ParcelOwner, player: UUID, status: AddedStatus)
} \ No newline at end of file