diff options
author | Dico200 <dico.karssiens@gmail.com> | 2018-07-22 07:12:53 +0200 |
---|---|---|
committer | Dico200 <dico.karssiens@gmail.com> | 2018-07-22 07:12:53 +0200 |
commit | 9f81a74bd9e89541448bf79d73d0b9bc297e72ee (patch) | |
tree | d32eb5e641bf8f81c172d866fdf05d22018c08ba /src/main/kotlin/io/dico/parcels2/storage/Backing.kt | |
parent | dbcc90ac8a938e9098dc93206f061cc2a4765ad6 (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.kt | 37 |
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 |