From 6f754f42effb62da6f6734c87b9b73d770dd1f75 Mon Sep 17 00:00:00 2001 From: Ludovic Le Frioux <ludovic.le-frioux@inria.fr> Date: Mon, 12 Oct 2020 11:37:57 +0200 Subject: [PATCH] Wrapper for PNCounter --- src/commonMain/kotlin/client/PNCounter.kt | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/commonMain/kotlin/client/PNCounter.kt diff --git a/src/commonMain/kotlin/client/PNCounter.kt b/src/commonMain/kotlin/client/PNCounter.kt new file mode 100644 index 0000000..f0df009 --- /dev/null +++ b/src/commonMain/kotlin/client/PNCounter.kt @@ -0,0 +1,30 @@ +package client + +import client.utils.CObjectUId +import crdtlib.crdt.PNCounter + +class PNCounter(val oid: CObjectUId<PNCounter>, val readOnly: Boolean) : + CObject<PNCounter>(oid, readOnly) { + + private val counterCrdt: PNCounter + get() = this.crdt as PNCounter + + fun get(): Int { + this.beforeGetter() + val value = this.counterCrdt.get() + this.afterGetter() + return value + } + + fun increment(amount: Int) { + val ts = this.beforeUpdate() + this.counterCrdt.increment(amount, ts) + this.afterUpdate() + } + + fun decrement(amount: Int) { + val ts = this.beforeUpdate() + this.counterCrdt.decrement(amount, ts) + this.afterUpdate() + } +} -- GitLab