From 6005bad8060064539f33184b35324020d43adaf0 Mon Sep 17 00:00:00 2001 From: Tefek <493msi@gmail.com> Date: Thu, 3 Sep 2020 02:53:09 +0200 Subject: [PATCH] Marked plutodb as deprecated until made stable --- .../cz/tefek/pluto/lmdb/ILMDBValueRecipe.java | 16 ++++++++++------ .../java/cz/tefek/pluto/lmdb/LMDBDatabase.java | 18 ++++++++++++++++-- .../cz/tefek/pluto/lmdb/LMDBEnvironment.java | 4 ++++ .../cz/tefek/pluto/lmdb/LMDBIntegerKey.java | 6 +++++- .../main/java/cz/tefek/pluto/lmdb/LMDBKey.java | 4 ++++ .../java/cz/tefek/pluto/lmdb/LMDBLongKey.java | 6 +++++- .../java/cz/tefek/pluto/lmdb/LMDBSchema.java | 4 ++++ .../cz/tefek/pluto/lmdb/LMDBStringKey.java | 6 +++++- .../cz/tefek/pluto/lmdb/LMDBTransaction.java | 18 ++++++++++++------ .../java/cz/tefek/pluto/lmdb/package-info.java | 1 + 10 files changed, 66 insertions(+), 17 deletions(-) create mode 100644 plutodb/src/main/java/cz/tefek/pluto/lmdb/package-info.java diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/ILMDBValueRecipe.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/ILMDBValueRecipe.java index ad04b63..0bb251e 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/ILMDBValueRecipe.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/ILMDBValueRecipe.java @@ -4,20 +4,24 @@ import org.lwjgl.system.MemoryUtil; import java.nio.ByteBuffer; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated public interface ILMDBValueRecipe { - public int sizeOf(); + int sizeOf(); - public void serialize(ByteBuffer output); + void serialize(ByteBuffer output); - public void deserialize(ByteBuffer input); + void deserialize(ByteBuffer input); - public static int sizeOfUTF8(CharSequence string) + static int sizeOfUTF8(CharSequence string) { return Integer.BYTES + MemoryUtil.memLengthUTF8(string, false); } - public static void putUTF8(CharSequence string, ByteBuffer output) + static void putUTF8(CharSequence string, ByteBuffer output) { int strLen = MemoryUtil.memUTF8(string, false, output, output.position() + Integer.BYTES); output.putInt(strLen); @@ -25,7 +29,7 @@ public interface ILMDBValueRecipe output.position(output.position() + strLen); } - public static String getUTF8(ByteBuffer input) + static String getUTF8(ByteBuffer input) { var strLen = input.getInt(); var string = MemoryUtil.memUTF8(input, strLen); diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBDatabase.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBDatabase.java index d24ce2b..f1cd86b 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBDatabase.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBDatabase.java @@ -8,6 +8,10 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated public class LMDBDatabase { private LMDBTransaction transaction; @@ -42,7 +46,12 @@ public class LMDBDatabase var valueStruct = MDBVal.mallocStack(stack).mv_data(data).mv_size(size); - assert LMDB.mdb_put(this.transaction.getAddress(), this.handle, keyStruct, valueStruct, 0) == LMDB.MDB_SUCCESS; + int retval = LMDB.mdb_put(this.transaction.getAddress(), this.handle, keyStruct, valueStruct, 0); + + if (retval != LMDB.MDB_SUCCESS) + { + throw new RuntimeException(String.format("Error: mdb_put failed with the following error code: %d", retval)); + } } } @@ -68,7 +77,12 @@ public class LMDBDatabase var valueStruct = MDBVal.mallocStack(stack); - assert LMDB.mdb_get(this.transaction.getAddress(), this.handle, keyStruct, valueStruct) == LMDB.MDB_SUCCESS; + int retval = LMDB.mdb_get(this.transaction.getAddress(), this.handle, keyStruct, valueStruct); + + if (retval != LMDB.MDB_SUCCESS) + { + throw new RuntimeException(String.format("Error: mdb_get failed with the following error code: %d", retval)); + } valueToUpdate.deserialize(valueStruct.mv_data()); diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBEnvironment.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBEnvironment.java index dee0b75..454df08 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBEnvironment.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBEnvironment.java @@ -12,6 +12,10 @@ import java.io.IOException; import javax.annotation.concurrent.ThreadSafe; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated @ThreadSafe public class LMDBEnvironment implements AutoCloseable { diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBIntegerKey.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBIntegerKey.java index 15fd7b0..ec4290f 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBIntegerKey.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBIntegerKey.java @@ -3,9 +3,13 @@ package cz.tefek.pluto.lmdb; import org.lwjgl.system.MemoryStack; import org.lwjgl.util.lmdb.MDBVal; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated public class LMDBIntegerKey extends LMDBKey { - private int key; + private final int key; private LMDBIntegerKey(int key) { diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBKey.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBKey.java index 20a5356..6401ff3 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBKey.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBKey.java @@ -3,6 +3,10 @@ package cz.tefek.pluto.lmdb; import org.lwjgl.system.MemoryStack; import org.lwjgl.util.lmdb.MDBVal; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated public abstract class LMDBKey { public abstract MDBVal toMDBVal(MemoryStack stack); diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBLongKey.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBLongKey.java index d7bfb81..4878678 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBLongKey.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBLongKey.java @@ -3,9 +3,13 @@ package cz.tefek.pluto.lmdb; import org.lwjgl.system.MemoryStack; import org.lwjgl.util.lmdb.MDBVal; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated public class LMDBLongKey extends LMDBKey { - private long key; + private final long key; private LMDBLongKey(long key) { diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBSchema.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBSchema.java index 53bdf19..bd58b92 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBSchema.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBSchema.java @@ -1,5 +1,9 @@ package cz.tefek.pluto.lmdb; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated public class LMDBSchema { private String name; diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBStringKey.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBStringKey.java index ee0b903..bd2cdc7 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBStringKey.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBStringKey.java @@ -3,9 +3,13 @@ package cz.tefek.pluto.lmdb; import org.lwjgl.system.MemoryStack; import org.lwjgl.util.lmdb.MDBVal; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated public class LMDBStringKey extends LMDBKey { - private String key; + private final String key; private LMDBStringKey(String key) { diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBTransaction.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBTransaction.java index af1b565..cf20fac 100644 --- a/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBTransaction.java +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/LMDBTransaction.java @@ -3,6 +3,10 @@ package cz.tefek.pluto.lmdb; import org.lwjgl.system.MemoryStack; import org.lwjgl.util.lmdb.LMDB; +/** + * @deprecated Usage discouraged until tested well enough. + * */ +@Deprecated public class LMDBTransaction implements AutoCloseable { private long ptr; @@ -73,11 +77,7 @@ public class LMDBTransaction implements AutoCloseable { return new LMDBDatabase(this, dbHandle, recipeClazz); } - catch (NoSuchMethodException e) - { - e.printStackTrace(); - } - catch (IllegalAccessException e) + catch (NoSuchMethodException | IllegalAccessException e) { e.printStackTrace(); } @@ -87,7 +87,13 @@ public class LMDBTransaction implements AutoCloseable public void commit() { - LMDB.mdb_txn_commit(this.ptr); + int returnCode = LMDB.mdb_txn_commit(this.ptr); + + if (returnCode != LMDB.MDB_SUCCESS) + { + throw new RuntimeException(String.format("Error: mdb_txn_commit failed with the following error code: %d", returnCode)); + } + this.uncommited = false; } diff --git a/plutodb/src/main/java/cz/tefek/pluto/lmdb/package-info.java b/plutodb/src/main/java/cz/tefek/pluto/lmdb/package-info.java new file mode 100644 index 0000000..80d92e0 --- /dev/null +++ b/plutodb/src/main/java/cz/tefek/pluto/lmdb/package-info.java @@ -0,0 +1 @@ +package cz.tefek.pluto.lmdb; \ No newline at end of file