From f2c2cd34d0f5a3c0a7b64d44f9083b445aec2e28 Mon Sep 17 00:00:00 2001 From: Anton Khodakivskiy Date: Fri, 22 Feb 2019 02:06:58 +0200 Subject: [PATCH] HaloDB.size method --- src/main/java/com/oath/halodb/HaloDB.java | 4 ++++ src/main/java/com/oath/halodb/HaloDBInternal.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/com/oath/halodb/HaloDB.java b/src/main/java/com/oath/halodb/HaloDB.java index cae6236..2424406 100644 --- a/src/main/java/com/oath/halodb/HaloDB.java +++ b/src/main/java/com/oath/halodb/HaloDB.java @@ -40,6 +40,10 @@ public byte[] get(byte[] key) throws HaloDBException { } } + public int size(byte[] key) { + return dbInternal.size(key); + } + public boolean put(byte[] key, byte[] value) throws HaloDBException { try { return dbInternal.put(key, value); diff --git a/src/main/java/com/oath/halodb/HaloDBInternal.java b/src/main/java/com/oath/halodb/HaloDBInternal.java index 8216db9..ee47597 100644 --- a/src/main/java/com/oath/halodb/HaloDBInternal.java +++ b/src/main/java/com/oath/halodb/HaloDBInternal.java @@ -414,6 +414,15 @@ long size() { return inMemoryIndex.size(); } + int size(byte[] key) { + InMemoryIndexMetaData metaData = inMemoryIndex.get(key); + if (metaData == null) { + return -1; + } + + return metaData.getValueSize(); + } + void setIOErrorFlag() throws IOException { DBMetaData metaData = new DBMetaData(dbDirectory); metaData.loadFromFileIfExists();