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