summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/storage/Backing.kt
diff options
context:
space:
mode:
authorDico <dico.karssiens@gmail.com>2018-08-02 18:22:36 +0100
committerDico <dico.karssiens@gmail.com>2018-08-02 18:22:36 +0100
commit0af2e615d3fa1d8509be46e14f99d40dc9cdb342 (patch)
tree3864043218969a67b5df17784a05c6af424e3617 /src/main/kotlin/io/dico/parcels2/storage/Backing.kt
parent6513ad9237dbda0244a52608ae639fee5822b3ee (diff)
Refactor and improve a lot of the API. Move default implementations into a package. Reformatting.
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/storage/Backing.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/storage/Backing.kt31
1 files changed, 14 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 7224dd1..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.AddedStatus
-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,31 +19,31 @@ 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 setLocalPlayerStatus(parcelFor: Parcel, player: UUID, status: AddedStatus)
+ 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 ProducerScope<Pair<ParcelOwner, MutableMap<UUID, AddedStatus>>>.produceAllGlobalAddedData()
+ suspend fun produceAllGlobalAddedData(channel: SendChannel<AddedDataPair<ParcelOwner>>)
- suspend fun readGlobalAddedData(owner: ParcelOwner): MutableMap<UUID, AddedStatus>
+ suspend fun readGlobalAddedData(owner: ParcelOwner): MutableAddedDataMap
suspend fun setGlobalPlayerStatus(owner: ParcelOwner, player: UUID, status: AddedStatus)