This is an automated email from the ASF dual-hosted git repository.
leerho pushed a commit to branch IntegrateJava17_v2
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git
The following commit(s) were added to refs/heads/IntegrateJava17_v2 by this
push:
new d1c2edf Interim changes to get BaseState and BaseStateImpl to match
between Java 8 and 17
d1c2edf is described below
commit d1c2edf89a7533518abe699623568431de3ce47f
Author: Lee Rhodes <[email protected]>
AuthorDate: Sun Dec 18 19:52:39 2022 -0800
Interim changes to get BaseState and BaseStateImpl to match between Java
8 and 17
---
.../org/apache/datasketches/memory/BaseState.java | 119 ++++++++-------
.../memory/internal/BaseStateImpl.java | 61 ++++----
.../memory/internal/BaseWritableBufferImpl.java | 14 +-
.../memory/internal/BaseWritableMemoryImpl.java | 10 +-
.../memory/internal/AllocateDirectMemoryTest.java | 8 +-
.../datasketches/memory/internal/Buffer2Test.java | 6 +-
.../memory/internal/DruidIssue11544Test.java | 6 +-
.../datasketches/memory/internal/LeafImplTest.java | 129 +++++++++-------
.../internal/NativeWritableBufferImplTest.java | 6 +-
.../internal/NativeWritableMemoryImplTest.java | 6 +-
.../memory/internal/SpecificLeafTest.java | 93 ++++++------
.../org/apache/datasketches/memory/BaseState.java | 90 +++++++----
.../internal/BBNonNativeWritableBufferImpl.java | 6 +-
.../internal/BBNonNativeWritableMemoryImpl.java | 6 +-
.../memory/internal/BBWritableBufferImpl.java | 6 +-
.../memory/internal/BBWritableMemoryImpl.java | 6 +-
.../memory/internal/BaseBufferImpl.java | 4 +-
.../memory/internal/BaseStateImpl.java | 164 ++++++++++-----------
.../memory/internal/BaseWritableBufferImpl.java | 28 ++--
.../memory/internal/BaseWritableMemoryImpl.java | 48 +++---
.../memory/internal/CompareAndCopy.java | 12 +-
.../DirectNonNativeWritableBufferImpl.java | 2 +-
.../DirectNonNativeWritableMemoryImpl.java | 2 +-
.../memory/internal/DirectWritableBufferImpl.java | 2 +-
.../memory/internal/DirectWritableMemoryImpl.java | 2 +-
.../memory/internal/NativeWritableBufferImpl.java | 8 +-
.../memory/internal/NativeWritableMemoryImpl.java | 38 ++---
.../internal/NonNativeWritableBufferImpl.java | 8 +-
.../internal/NonNativeWritableMemoryImpl.java | 38 ++---
.../memory/internal/AllocateDirectMemoryTest.java | 8 +-
.../datasketches/memory/internal/Buffer2Test.java | 6 +-
.../datasketches/memory/internal/BufferTest.java | 4 +-
.../memory/internal/DruidIssue11544Test.java | 6 +-
.../internal/ExampleMemoryRequestServerTest.java | 10 +-
.../datasketches/memory/internal/LeafImplTest.java | 81 ++++++----
.../datasketches/memory/internal/MemoryTest.java | 4 +-
.../internal/NativeWritableBufferImplTest.java | 10 +-
.../internal/NativeWritableMemoryImplTest.java | 10 +-
.../memory/internal/SpecificLeafTest.java | 96 ++++++------
39 files changed, 610 insertions(+), 553 deletions(-)
diff --git
a/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/BaseState.java
b/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/BaseState.java
index c8fe15b..c40c51c 100644
---
a/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/BaseState.java
+++
b/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/BaseState.java
@@ -74,11 +74,24 @@ public interface BaseState {
*/
long getCapacity();
+ /**
+ * Returns the MemoryRequestSever or null, if it has not been configured.
+ * @return the MemoryRequestSever or null, if it has not been configured.
+ */
+ MemoryRequestServer getMemoryRequestServer();
+
+ /**
+ * Is the underlying resource scope alive?
+ * @return true, if the underlying resource scope is alive.
+ * @see #close()
+ */
+ boolean isAlive();
+
/**
* Returns true if this Memory is backed by a ByteBuffer.
* @return true if this Memory is backed by a ByteBuffer.
*/
- boolean hasByteBuffer();
+ boolean isByteBufferResource();
/**
* Returns true if the Native ByteOrder is the same as the ByteOrder of the
@@ -90,19 +103,59 @@ public interface BaseState {
boolean isByteOrderCompatible(ByteOrder byteOrder);
/**
- * Returns true if the backing resource is direct (off-heap) memory.
+ * If true, the backing resource is direct (off-heap) memory.
* This is the case for allocated direct memory, memory mapped files,
* or from a wrapped ByteBuffer that was allocated direct.
+ * If false, the backing resource is the normal Java heap.
* @return true if the backing resource is direct (off-heap) memory.
*/
- boolean isDirect();
+ boolean isDirectResource();
+
+ /**
+ * Returns true if this instance is a duplicate of a Buffer instance.
+ * @return true if this instance is a duplicate of a Buffer instance.
+ */
+ boolean isDuplicateBufferView();
+
+ /**
+ * If true, this is a <i>Memory</i> or <i>WritableMemory</i> instance, which
provides
+ * the Memory API.
+ * The Memory API is the principal API for this Memory Component.
+ * It provides a rich variety of direct manipulations of four types of
resources:
+ * On-heap memory, direct (off-heap) memory, memory-mapped files, and
ByteBuffers.
+ * If false, this is a <i>Buffer</i> or <i>WritableBuffer</i> instance,
which provides the Buffer API.
+ * The Buffer API is largely parallel to the Memory API except that it adds
a positional API
+ * similar to that in <i>ByteBuffer</i>. The positional API is a
convenience when iterating over structured
+ * arrays, or buffering input or output streams (thus the name).
+ * @return true if this is a Buffer or WritableBuffer instance, which
provides the Buffer API.
+ */
+ boolean isMemoryApi();
+
+ /**
+ * Returns true if the backing resource is a memory mapped file.
+ * @return true if the backing resource is a memory mapped file.
+ */
+ boolean isMemoryMappedFileResource();
+
+ /**
+ * If true, all put and get operations will assume the non-native ByteOrder.
+ * Otherwise, all put and get operations will assume the native ByteOrder.
+ * @return true, if all put and get operations will assume the non-native
ByteOrder.
+ */
+ boolean isNonNativeOrder();
/**
- * Returns true if this object or the backing resource is read-only.
- * @return true if this object or the backing resource is read-only.
+ * Returns true if this or the backing resource is read-only.
+ * @return true if this or the backing resource is read-only.
*/
boolean isReadOnly();
+ /**
+ * Returns true if this instance is a region view of another Memory or Buffer
+ * @return true if this instance is a region view of another Memory or Buffer
+ */
+ boolean isRegionView();
+
/**
* Returns a description of this object with an optional formatted hex
string of the data
* for the specified a range. Used primarily for testing.
@@ -167,44 +220,6 @@ public interface BaseState {
*/
void force();
- /**
- * Returns the configured MemoryRequestSever or null, if it has not been
configured.
- * @return the configured MemoryRequestSever or null, if it has not been
configured.
- */
- MemoryRequestServer getMemoryRequestServer();
-
- /**
- * Returns true if the MemoryRequestServer has been configured.
- * @return true if the MemoryRequestServer has been configured.
- */
- boolean hasMemoryRequestServer();
-
- /**
- * Is the underlying resource scope alive?
- * @return true, if the underlying resource scope is alive.
- */
- boolean isAlive();
-
- /**
- * Returns true if this instance is a Buffer or WritableBuffer instance.
- * @return true if this instance is a Buffer or WritableBuffer instance.
- */
- boolean isBuffer();
-
- /**
- * Returns true if this instance is a duplicate of a Buffer instance.
- * @return true if this instance is a duplicate of a Buffer instance.
- */
- boolean isDuplicate();
-
- /**
- * Returns true if the backing resource is on the Java heap.
- * This can be true for wrapped heap primitive arrays
- * or from a wrapped ByteBuffer that was allocated on the Java heap.
- * @return true if the backing resource is on the Java heap.
- */
- boolean isHeap();
-
/**
* Tells whether or not the contents of this mapped segment is resident in
physical memory. Please refer to
* <a
href="https://docs.oracle.com/en/java/javase/17/docs/api/jdk.incubator.foreign/jdk/incubator/foreign/MemorySegment.html#isLoaded()">isLoaded()</a>
@@ -212,24 +227,6 @@ public interface BaseState {
*/
boolean isLoaded();
- /**
- * Returns true if this instance is of a memory mapped file.
- * @return true if this instance is of a memory mapped file.
- */
- boolean isMapped();
-
- /**
- * Returns true if this instance is of a Memory or WritableMemory instance
- * @return true if this instance is of a Memory or WritableMemory instance
- */
- boolean isMemory();
-
- /**
- * Returns true if this instance is a region view of another Memory or Buffer
- * @return true if this instance is a region view of another Memory or Buffer
- */
- boolean isRegion();
-
/**
* Loads the contents of this mapped segment into physical memory. Please
refer to
* <a
href="https://docs.oracle.com/en/java/javase/17/docs/api/jdk.incubator.foreign/jdk/incubator/foreign/MemorySegment.html#load()">load()</a>
diff --git
a/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseStateImpl.java
b/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseStateImpl.java
index b95f90e..bd445f8 100644
---
a/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseStateImpl.java
+++
b/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseStateImpl.java
@@ -44,6 +44,7 @@ abstract class BaseStateImpl implements BaseState {
static final String JDK; //must be at least "1.8"
static final int JDK_MAJOR; //8, 11, 17, etc
+ //Used to convert "type" to bytes: bytes = longs << LONG_SHIFT
static final int BOOLEAN_SHIFT = 0;
static final int BYTE_SHIFT = 0;
static final long SHORT_SHIFT = 1;
@@ -53,7 +54,8 @@ abstract class BaseStateImpl implements BaseState {
static final long FLOAT_SHIFT = 2;
static final long DOUBLE_SHIFT = 3;
- //class type IDs.
+ //class type IDs. Do not change the bit orders
+ //The first 3 bits are set dynamically
// 0000 0XXX Group 1
static final int READONLY = 1;
static final int REGION = 1 << 1;
@@ -207,7 +209,7 @@ abstract class BaseStateImpl implements BaseState {
final MemorySegment seg = state.seg;
final long capacity = seg.byteSize();
checkBounds(offsetBytes, lengthBytes, capacity);
- final StringBuilder sb = new StringBuilder();
+
final String theComment = (comment != null) ? comment : "";
final String addHCStr = "" + Integer.toHexString(seg.address().hashCode());
final MemoryRequestServer memReqSvr = state.getMemoryRequestServer();
@@ -215,8 +217,9 @@ abstract class BaseStateImpl implements BaseState {
? memReqSvr.getClass().getSimpleName() + ", " +
Integer.toHexString(memReqSvr.hashCode())
: "null";
+ final StringBuilder sb = new StringBuilder();
sb.append(LS + "### DataSketches Memory Component SUMMARY ###").append(LS);
- sb.append("Optional Comment : ").append(theComment).append(LS);
+ sb.append("Header Comment : ").append(theComment).append(LS);
sb.append("TypeId String :
").append(typeDecode(state.typeId)).append(LS);
sb.append("OffsetBytes : ").append(offsetBytes).append(LS);
sb.append("LengthBytes : ").append(lengthBytes).append(LS);
@@ -294,14 +297,14 @@ abstract class BaseStateImpl implements BaseState {
//**NON STATIC METHODS*****************************************
- @Override
+ @Override //Java 17 only
public final ByteBuffer asByteBufferView(final ByteOrder order) {
final ByteBuffer byteBuf = seg.asByteBuffer().order(order);
return byteBuf;
}
//@SuppressWarnings("resource")
- @Override
+ @Override //Java 17 only
public void close() { //moved here
if (seg != null && seg.scope().isAlive() && !seg.scope().isImplicit()) {
if (seg.isNative() || seg.isMapped()) {
@@ -317,7 +320,7 @@ abstract class BaseStateImpl implements BaseState {
return CompareAndCopy.equals(seg, thisOffsetBytes, ((BaseStateImpl)
that).seg, thatOffsetBytes, lengthBytes);
}
- @Override
+ @Override //Java 17 only
public void force() { seg.force(); } //moved here
@Override
@@ -335,25 +338,15 @@ abstract class BaseStateImpl implements BaseState {
return memReqSvr;
}
- @Override
- public final boolean hasByteBuffer() {
- return (typeId & BYTEBUF) > 0;
- }
-
- @Override
- public boolean hasMemoryRequestServer() {
- return memReqSvr != null;
- }
-
//@SuppressWarnings("resource")
@Override
- public boolean isAlive() { //Java 17 only
+ public boolean isAlive() {
return seg.scope().isAlive();
}
@Override
- public final boolean isBuffer() {
- return (typeId & BUFFER) > 0;
+ public final boolean isByteBufferResource() {
+ return (typeId & BYTEBUF) > 0;
}
@Override
@@ -363,35 +356,35 @@ abstract class BaseStateImpl implements BaseState {
}
@Override
- public final boolean isDirect() {
+ public final boolean isDirectResource() {
assert seg.isNative() == (typeId & DIRECT) > 0;
return seg.isNative();
}
@Override
- public final boolean isDuplicate() {
+ public final boolean isDuplicateBufferView() {
return (typeId & DUPLICATE) > 0;
}
- @Override
- public final boolean isHeap() {
- return !isDirect() && !isMapped();
- }
-
- @Override
+ @Override //Java 17 only
public boolean isLoaded() { return seg.isLoaded(); }
@Override
- public boolean isMapped() {
+ public boolean isMemoryMappedFileResource() {
assert seg.isMapped() == (typeId & MAP) > 0;
return seg.isMapped();
}
@Override
- public final boolean isMemory() {
+ public final boolean isMemoryApi() {
return (typeId & BUFFER) == 0;
}
+ @Override
+ public boolean isNonNativeOrder() {
+ return (typeId & NONNATIVE) > 0;
+ }
+
@Override
public final boolean isReadOnly() {
assert seg.isReadOnly() == (typeId & READONLY) > 0;
@@ -399,11 +392,11 @@ abstract class BaseStateImpl implements BaseState {
}
@Override
- public final boolean isRegion() {
+ public final boolean isRegionView() { //isRegionView
return (typeId & REGION) > 0;
}
- @Override
+ @Override //Java 17 only
public void load() { seg.load(); } //moved here
@Override
@@ -414,7 +407,7 @@ abstract class BaseStateImpl implements BaseState {
return seg.mismatch(thatBSI.seg);
}
- @Override
+ @Override //Java 17 only
public final long nativeOverlap(final BaseState that) { //Java 17 only
if (that == null) { return 0; }
if (!that.isAlive()) { return 0; }
@@ -471,7 +464,7 @@ abstract class BaseStateImpl implements BaseState {
return ByteBuffer.wrap(seg.toByteArray());
}
- @Override //Java 17 only
+ @Override
public final String toHexString(final String comment, final long
offsetBytes, final int lengthBytes,
final boolean withData) {
return toHex(this, comment, offsetBytes, lengthBytes, withData);
@@ -484,7 +477,7 @@ abstract class BaseStateImpl implements BaseState {
return arrSeg;
}
- @Override
+ @Override //Java 17 only
public void unload() { seg.unload(); } //moved here
@Override
diff --git
a/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
b/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
index 8692aa0..07a2a31 100644
---
a/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
+++
b/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
@@ -129,11 +129,11 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
final MemorySegment slice = (readOnly && !seg.isReadOnly())
? seg.asSlice(offsetBytes, capacityBytes).asReadOnly()
: seg.asSlice(offsetBytes, capacityBytes);
- final boolean duplicateType = isDuplicate();
+ final boolean duplicateType = isDuplicateBufferView();
final boolean mapType = seg.isMapped();
final boolean directType = seg.isNative();
final boolean nativeBOType = byteOrder == ByteOrder.nativeOrder();
- final boolean byteBufferType = hasByteBuffer();
+ final boolean byteBufferType = isByteBufferResource();
final int type = BUFFER | REGION
| (readOnly ? READONLY : 0)
| (duplicateType ? DUPLICATE : 0)
@@ -178,11 +178,11 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
if (!this.isAlive()) { throw new IllegalStateException("This Memory is not
alive."); }
final boolean readOnly = isReadOnly() || localReadOnly;
final MemorySegment seg2 = (readOnly && !seg.isReadOnly()) ?
seg.asReadOnly() : seg;
- final boolean regionType = isRegion();
+ final boolean regionType = isRegionView();
final boolean mapType = seg.isMapped();
final boolean directType = seg.isNative();
final boolean nativeBOType = byteOrder == ByteOrder.nativeOrder();
- final boolean byteBufferType = hasByteBuffer();
+ final boolean byteBufferType = isByteBufferResource();
final int type = BUFFER | DUPLICATE
| (readOnly ? READONLY : 0)
| (regionType ? REGION : 0)
@@ -217,12 +217,12 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
Objects.requireNonNull(byteOrder, "byteOrder must be non-null");
final boolean readOnly = isReadOnly() || localReadOnly;
final MemorySegment seg2 = (readOnly && !seg.isReadOnly()) ?
seg.asReadOnly() : seg;
- final boolean regionType = isRegion();
- final boolean duplicateType = isDuplicate();
+ final boolean regionType = isRegionView();
+ final boolean duplicateType = isDuplicateBufferView();
final boolean mapType = seg.isMapped();
final boolean directType = seg.isNative();
final boolean nativeBOType = byteOrder == ByteOrder.nativeOrder();
- final boolean byteBufferType = hasByteBuffer();
+ final boolean byteBufferType = isByteBufferResource();
final int type = MEMORY
| (readOnly ? READONLY : 0)
| (regionType ? REGION : 0)
diff --git
a/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
b/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
index a0ca068..0e043ab 100644
---
a/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
+++
b/datasketches-memory-java17/src/main/java17/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
@@ -208,11 +208,11 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
final MemorySegment slice = (readOnly && !seg.isReadOnly())
? seg.asSlice(offsetBytes, capacityBytes).asReadOnly()
: seg.asSlice(offsetBytes, capacityBytes);
- final boolean duplicateType = isDuplicate();
+ final boolean duplicateType = isDuplicateBufferView();
final boolean mapType = seg.isMapped();
final boolean directType = seg.isNative();
final boolean nativeBOType = byteOrder == ByteOrder.nativeOrder();
- final boolean byteBufferType = hasByteBuffer();
+ final boolean byteBufferType = isByteBufferResource();
final int type = MEMORY | REGION
| (readOnly ? READONLY : 0)
| (duplicateType ? DUPLICATE : 0)
@@ -246,12 +246,12 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
Objects.requireNonNull(byteOrder, "byteOrder must be non-null");
final boolean readOnly = isReadOnly() || localReadOnly;
final MemorySegment seg2 = (readOnly && !seg.isReadOnly()) ?
seg.asReadOnly() : seg;
- final boolean regionType = isRegion();
- final boolean duplicateType = isDuplicate();
+ final boolean regionType = isRegionView();
+ final boolean duplicateType = isDuplicateBufferView();
final boolean mapType = seg.isMapped();
final boolean directType = seg.isNative();
final boolean nativeBOType = byteOrder == ByteOrder.nativeOrder();
- final boolean byteBufferType = hasByteBuffer();
+ final boolean byteBufferType = isByteBufferResource();
final int type = BUFFER
| (readOnly ? READONLY : 0)
| (regionType ? REGION : 0)
diff --git
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
index 0032059..ff5bddb 100644
---
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
+++
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
@@ -34,7 +34,7 @@ import jdk.incubator.foreign.ResourceScope;
public class AllocateDirectMemoryTest {
private static final MemoryRequestServer memReqSvr =
BaseState.defaultMemReqSvr;
- @SuppressWarnings("resource")
+ //@SuppressWarnings("resource")
@Test
public void simpleAllocateDirect() {
int longs = 32;
@@ -69,7 +69,7 @@ public class AllocateDirectMemoryTest {
int longs2 = 64;
int bytes2 = longs2 << 3;
WritableMemory newWmem = memReqSvr.request(wmem, bytes2); //on the heap
- assertFalse(newWmem.isDirect()); //on heap by default
+ assertFalse(newWmem.isDirectResource()); //on heap by default
for (int i = 0; i < longs2; i++) {
newWmem.putLong(i << 3, i);
assertEquals(newWmem.getLong(i << 3), i);
@@ -78,7 +78,7 @@ public class AllocateDirectMemoryTest {
} // So we let the TWR close it here
}
- @SuppressWarnings("resource")
+ //@SuppressWarnings("resource")
@Test
public void checkNonNativeDirect() {
WritableMemory wmem = null;
@@ -90,7 +90,7 @@ public class AllocateDirectMemoryTest {
}
}
- @SuppressWarnings("resource")
+ //@SuppressWarnings("resource")
@Test
public void checkExplicitCloseNoTWR() {
final long cap = 128;
diff --git
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/Buffer2Test.java
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/Buffer2Test.java
index d1eb6cb..bbb3d91 100644
---
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/Buffer2Test.java
+++
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/Buffer2Test.java
@@ -53,7 +53,7 @@ public class Buffer2Test {
while (buffer.hasRemaining()) {
assertEquals(bb.get(), buffer.getByte());
}
- assertEquals(true, buffer.hasByteBuffer());
+ assertEquals(true, buffer.isByteBufferResource());
}
@Test
@@ -72,7 +72,7 @@ public class Buffer2Test {
assertEquals(bb.get(), buffer.getByte());
}
- assertEquals(true, buffer.hasByteBuffer());
+ assertEquals(true, buffer.isByteBufferResource());
}
@Test
@@ -94,7 +94,7 @@ public class Buffer2Test {
buffer.getByteArray(copyByteArray, 0, 64);
assertEquals(byteArray, copyByteArray);
- assertEquals(false, buffer.hasByteBuffer());
+ assertEquals(false, buffer.isByteBufferResource());
}
@Test
diff --git
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/DruidIssue11544Test.java
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/DruidIssue11544Test.java
index a9fce8a..ac555b4 100644
---
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/DruidIssue11544Test.java
+++
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/DruidIssue11544Test.java
@@ -61,14 +61,14 @@ public class DruidIssue11544Test {
//Wrap bb into WritableMemory
WritableMemory mem1 = WritableMemory.writableWrap(bb);
- assertTrue(mem1.isDirect()); //confirm mem1 is off-heap
+ assertTrue(mem1.isDirectResource()); //confirm mem1 is off-heap
//Request Bigger Memory
int size2 = size1 * 2;
WritableMemory mem2 = memReqSvr.request(mem1, size2);
//Confirm that mem2 is on the heap (the default) and 2X size1
- assertFalse(mem2.isDirect());
+ assertFalse(mem2.isDirectResource());
assertEquals(mem2.getCapacity(), size2);
//Move data to new memory
@@ -85,7 +85,7 @@ public class DruidIssue11544Test {
WritableMemory mem3 = memReqSvr.request(mem2, size3);
//Confirm that mem3 is still on the heap and 2X of size2
- assertFalse(mem3.isDirect());
+ assertFalse(mem3.isDirectResource());
assertEquals(mem3.getCapacity(), size3);
//Move data to new memory
diff --git
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/LeafImplTest.java
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/LeafImplTest.java
index 59f3f66..968cc95 100644
---
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/LeafImplTest.java
+++
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/LeafImplTest.java
@@ -41,8 +41,6 @@ import jdk.incubator.foreign.ResourceScope;
* @author Lee Rhodes
*/
public class LeafImplTest {
- private static final ByteOrder NBO = NATIVE_BYTE_ORDER;
- private static final ByteOrder NNBO = NON_NATIVE_BYTE_ORDER;
private static final MemoryRequestServer dummyMemReqSvr = new
DummyMemoryRequestServer();
static class DummyMemoryRequestServer implements MemoryRequestServer {
@@ -53,7 +51,7 @@ public class LeafImplTest {
}
private static ByteOrder otherByteOrder(final ByteOrder order) {
- return (order == ByteOrder.nativeOrder()) ? NNBO : ByteOrder.nativeOrder();
+ return (order == NATIVE_BYTE_ORDER) ? NON_NATIVE_BYTE_ORDER :
NATIVE_BYTE_ORDER;
}
@Test
@@ -62,17 +60,17 @@ public class LeafImplTest {
long cap = 128;
// Off Heap, Native order, No ByteBuffer, has MemReqSvr
try (ResourceScope scope = ResourceScope.newConfinedScope()) {
- WritableMemory memNO = WritableMemory.allocateDirect(cap, 8, scope, NBO,
dummyMemReqSvr);
+ WritableMemory memNO = WritableMemory.allocateDirect(cap, 8, scope,
NATIVE_BYTE_ORDER, dummyMemReqSvr);
memNO.putShort(0, (short) 1);
- assertTrue(memNO.isDirect());
- checkCombinations(memNO, off, cap, memNO.isDirect(), NBO, false, true);
+ assertTrue(memNO.isDirectResource());
+ checkCombinations(memNO, off, cap, memNO.isDirectResource(),
NATIVE_BYTE_ORDER, false, true);
}
// Off Heap, Non Native order, No ByteBuffer, has MemReqSvr
try (ResourceScope scope = ResourceScope.newConfinedScope()) {
- WritableMemory memNNO = WritableMemory.allocateDirect(cap, 8, scope,
NNBO, dummyMemReqSvr);
+ WritableMemory memNNO = WritableMemory.allocateDirect(cap, 8, scope,
NON_NATIVE_BYTE_ORDER, dummyMemReqSvr);
memNNO.putShort(0, (short) 1);
- assertTrue(memNNO.isDirect());
- checkCombinations(memNNO, off, cap, memNNO.isDirect(), NNBO, false,
true);
+ assertTrue(memNNO.isDirectResource());
+ checkCombinations(memNNO, off, cap, memNNO.isDirectResource(),
NON_NATIVE_BYTE_ORDER, false, true);
}
}
@@ -82,39 +80,39 @@ public class LeafImplTest {
long cap = 128;
//BB on heap, native order, has ByteBuffer, has MemReqSvr
ByteBuffer bb = ByteBuffer.allocate((int)cap);
- bb.order(NBO);
+ bb.order(NATIVE_BYTE_ORDER);
bb.putShort(0, (short) 1);
- WritableMemory mem = WritableMemory.writableWrap(bb, NBO, dummyMemReqSvr);
- assertEquals(bb.isDirect(), mem.isDirect());
+ WritableMemory mem = WritableMemory.writableWrap(bb, NATIVE_BYTE_ORDER,
dummyMemReqSvr);
+ assertEquals(bb.isDirect(), mem.isDirectResource());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(), true,
false);
+ checkCombinations(mem, off, cap, mem.isDirectResource(),
mem.getByteOrder(), true, false);
//BB off heap, native order, has ByteBuffer, has MemReqSvr
ByteBuffer dbb = ByteBuffer.allocateDirect((int)cap);
- dbb.order(NBO);
+ dbb.order(NATIVE_BYTE_ORDER);
dbb.putShort(0, (short) 1);
- mem = WritableMemory.writableWrap(dbb, NBO, dummyMemReqSvr);
- assertEquals(dbb.isDirect(), mem.isDirect());
+ mem = WritableMemory.writableWrap(dbb, NATIVE_BYTE_ORDER, dummyMemReqSvr);
+ assertEquals(dbb.isDirect(), mem.isDirectResource());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(),
true, false);
+ checkCombinations(mem, off, cap, mem.isDirectResource(),
mem.getByteOrder(), true, false);
//BB on heap, non native order, has ByteBuffer, has MemReqSvr
bb = ByteBuffer.allocate((int)cap);
- bb.order(NNBO);
+ bb.order(NON_NATIVE_BYTE_ORDER);
bb.putShort(0, (short) 1);
- mem = WritableMemory.writableWrap(bb, NNBO, dummyMemReqSvr);
- assertEquals(bb.isDirect(), mem.isDirect());
+ mem = WritableMemory.writableWrap(bb, NON_NATIVE_BYTE_ORDER,
dummyMemReqSvr);
+ assertEquals(bb.isDirect(), mem.isDirectResource());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(), true,
false);
+ checkCombinations(mem, off, cap, mem.isDirectResource(),
mem.getByteOrder(), true, false);
//BB off heap, non native order, has ByteBuffer, has MemReqSvr
dbb = ByteBuffer.allocateDirect((int)cap);
- dbb.order(NNBO);
+ dbb.order(NON_NATIVE_BYTE_ORDER);
dbb.putShort(0, (short) 1);
- mem = WritableMemory.writableWrap(dbb, NNBO, dummyMemReqSvr);
- assertEquals(dbb.isDirect(), mem.isDirect());
+ mem = WritableMemory.writableWrap(dbb, NON_NATIVE_BYTE_ORDER,
dummyMemReqSvr);
+ assertEquals(dbb.isDirect(), mem.isDirectResource());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(),
true, false);
+ checkCombinations(mem, off, cap, mem.isDirectResource(),
mem.getByteOrder(), true, false);
}
@Test
@@ -131,17 +129,17 @@ public class LeafImplTest {
file.deleteOnExit(); //comment out if you want to examine the file.
// Off Heap, Native order, No ByteBuffer, No MemReqSvr
try (ResourceScope scope = ResourceScope.newConfinedScope()) {
- WritableMemory memNO = WritableMemory.writableMap(file, off, cap, scope,
NBO);
+ WritableMemory memNO = WritableMemory.writableMap(file, off, cap, scope,
NATIVE_BYTE_ORDER);
memNO.putShort(0, (short) 1);
- assertTrue(memNO.isDirect());
- checkCombinations(memNO, off, cap, memNO.isDirect(), NBO, false, false);
+ assertTrue(memNO.isDirectResource());
+ checkCombinations(memNO, off, cap, memNO.isDirectResource(),
NATIVE_BYTE_ORDER, false, false);
}
// Off heap, Non Native order, No ByteBuffer, no MemReqSvr
try (ResourceScope scope = ResourceScope.newConfinedScope()) {
- WritableMemory memNNO = WritableMemory.writableMap(file, off, cap,
scope, NNBO);
+ WritableMemory memNNO = WritableMemory.writableMap(file, off, cap,
scope, NON_NATIVE_BYTE_ORDER);
memNNO.putShort(0, (short) 1);
- assertTrue(memNNO.isDirect());
- checkCombinations(memNNO, off, cap, memNNO.isDirect(), NNBO, false,
false);
+ assertTrue(memNNO.isDirectResource());
+ checkCombinations(memNNO, off, cap, memNNO.isDirectResource(),
NON_NATIVE_BYTE_ORDER, false, false);
}
}
@@ -150,16 +148,16 @@ public class LeafImplTest {
long off = 0;
long cap = 128;
// On Heap, Native order, No ByteBuffer, MemReqSvr
- WritableMemory memNO = WritableMemory.allocate((int)cap, NBO,
dummyMemReqSvr); //assumes NBO
+ WritableMemory memNO = WritableMemory.allocate((int)cap,
NATIVE_BYTE_ORDER, dummyMemReqSvr); //assumes NATIVE_BYTE_ORDER
memNO.putShort(0, (short) 1);
- assertFalse(memNO.isDirect());
- checkCombinations(memNO, off, cap, memNO.isDirect(), NBO, false, true);
+ assertFalse(memNO.isDirectResource());
+ checkCombinations(memNO, off, cap, memNO.isDirectResource(),
NATIVE_BYTE_ORDER, false, true);
// On Heap, Non-native order, No ByteBuffer, MemReqSvr
- WritableMemory memNNO = WritableMemory.allocate((int)cap, NNBO,
dummyMemReqSvr);
+ WritableMemory memNNO = WritableMemory.allocate((int)cap,
NON_NATIVE_BYTE_ORDER, dummyMemReqSvr);
memNNO.putShort(0, (short) 1);
- assertFalse(memNNO.isDirect());
- checkCombinations(memNNO, off, cap, memNNO.isDirect(), NNBO, false, true);
+ assertFalse(memNNO.isDirectResource());
+ checkCombinations(memNNO, off, cap, memNNO.isDirectResource(),
NON_NATIVE_BYTE_ORDER, false, true);
}
private static void checkCombinations(WritableMemory mem, long off, long cap,
@@ -173,18 +171,18 @@ public class LeafImplTest {
assertEquals(mem.asWritableBuffer(oo).getShort(0), 256);
assertTrue(mem.getByteOrder() == bo);
- if (fromByteBuffer) { assertTrue(mem.hasByteBuffer()); }
- else { assertFalse(mem.hasByteBuffer()); }
+ if (fromByteBuffer) { assertTrue(mem.isByteBufferResource()); }
+ else { assertFalse(mem.isByteBufferResource()); }
if (hasMemReqSvr) {
- assertTrue(mem.hasMemoryRequestServer());
+ assertTrue(mem.getMemoryRequestServer() != null);
assertTrue(mem.getMemoryRequestServer() instanceof
DummyMemoryRequestServer);
}
if (direct) {
- assertTrue(mem.isDirect());
+ assertTrue(mem.isDirectResource());
} else {
- assertFalse(mem.isDirect());
+ assertFalse(mem.isDirectResource());
}
assertTrue(mem.isAlive() == true);
@@ -197,17 +195,17 @@ public class LeafImplTest {
assertEquals(buf.writableDuplicate(oo).getShort(0), 256);
assertTrue(buf.getByteOrder() == bo);
- if (fromByteBuffer) { assertTrue(buf.hasByteBuffer()); }
+ if (fromByteBuffer) { assertTrue(buf.isByteBufferResource()); }
if (hasMemReqSvr) {
- assertTrue(buf.hasMemoryRequestServer());
+ assertTrue(mem.getMemoryRequestServer() != null);
assertTrue(buf.getMemoryRequestServer() instanceof
DummyMemoryRequestServer);
}
if (direct) {
- assertTrue(buf.isDirect());
+ assertTrue(buf.isDirectResource());
} else {
- assertFalse(buf.isDirect());
+ assertFalse(buf.isDirectResource());
}
assertTrue(buf.isAlive() == true);
@@ -221,17 +219,17 @@ public class LeafImplTest {
assertTrue(nnMem.getByteOrder() == oo);
- if (fromByteBuffer) { assertTrue(nnMem.hasByteBuffer()); }
+ if (fromByteBuffer) { assertTrue(nnMem.isByteBufferResource()); }
if (hasMemReqSvr) {
- assertTrue(nnMem.hasMemoryRequestServer());
+ assertTrue(mem.getMemoryRequestServer() != null);
assertTrue(nnMem.getMemoryRequestServer() instanceof
DummyMemoryRequestServer);
}
if (direct) {
- assertTrue(nnMem.isDirect());
+ assertTrue(nnMem.isDirectResource());
} else {
- assertFalse(nnMem.isDirect());
+ assertFalse(nnMem.isDirectResource());
}
assertTrue(nnMem.isAlive() == true);
@@ -245,16 +243,41 @@ public class LeafImplTest {
assertTrue(nnBuf.getByteOrder() == oo);
- if (fromByteBuffer) { assertTrue(nnBuf.hasByteBuffer()); }
+ if (fromByteBuffer) { assertTrue(nnBuf.isByteBufferResource()); }
if (hasMemReqSvr) { assertTrue(nnBuf.getMemoryRequestServer() instanceof
DummyMemoryRequestServer); }
if (direct) {
- assertTrue(nnBuf.isDirect());
+ assertTrue(nnBuf.isDirectResource());
} else {
- assertFalse(nnBuf.isDirect());
+ assertFalse(nnBuf.isDirectResource());
}
assertTrue(nnBuf.isAlive() == true);
}
+ @Test
+ public void confirmByteBufferView() {
+ long le = 0X0807060504030201L;
+ long be = 0X0102030405060708L;
+ ByteBuffer bb = ByteBuffer.allocate(128);
+ bb.order(NATIVE_BYTE_ORDER);
+ bb.putLong(0, le);
+ WritableMemory mem = WritableMemory.writableWrap(bb, NATIVE_BYTE_ORDER,
dummyMemReqSvr);
+ assertEquals(le, mem.getLong(0)); //mem reads what BB put
+ mem.putLong(0, be);
+ assertEquals(be, bb.getLong(0)); //BB reads what mem put
+ //This confirms that mem and BB both have a R/W view of the same backing
store
+
+ //Changing the byte order never changes what is already in the backing
store
+ //It will change how bytes in the store are interpreted going in or coming
out.
+ bb.order(NON_NATIVE_BYTE_ORDER);
+ assertEquals(le, bb.getLong(0)); //converts to LE on read;
+ assertEquals(be, mem.getLong(0)); //backing memory is still BE!
+
+ WritableMemory mem2 = WritableMemory.writableWrap(bb,
NON_NATIVE_BYTE_ORDER, dummyMemReqSvr);
+ assertEquals(le, mem2.getLong(0)); //converts to LE on read;
+ mem2.putLong(0, le); //should put it as BE
+ assertEquals(le, mem2.getLong(0)); //converts to LE on read;
+ }
+
}
diff --git
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
index 142091e..f1a707c 100644
---
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
+++
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
@@ -238,7 +238,7 @@ public class NativeWritableBufferImplTest {
assertEquals(wbuf.getByte(), byteBuf.get(i));
}
- assertTrue(wbuf.hasByteBuffer());
+ assertTrue(wbuf.isByteBufferResource());
ByteBuffer byteBuf2 = wbuf.toByteBuffer(ByteOrder.nativeOrder());
assertEquals(byteBuf2, byteBuf);
//println( mem.toHexString("HeapBB", 0, memCapacity));
@@ -330,11 +330,11 @@ public class NativeWritableBufferImplTest {
public void checkIsDirect() throws Exception {
int memCapacity = 64;
WritableBuffer mem =
WritableMemory.allocate(memCapacity).asWritableBuffer();
- assertFalse(mem.isDirect());
+ assertFalse(mem.isDirectResource());
ResourceScope scope = ResourceScope.newConfinedScope();
WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, scope,
memReqSvr);
WritableBuffer wbuf = wmem.asWritableBuffer();
- assertTrue(wbuf.isDirect());
+ assertTrue(wbuf.isDirectResource());
wmem.close(); //immediate close
}
diff --git
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
index c0768ff..a62ef30 100644
---
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
+++
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
@@ -429,7 +429,7 @@ public class NativeWritableMemoryImplTest {
assertEquals(wmem.getByte(i), byteBuf.get(i));
}
- assertTrue(wmem.hasByteBuffer());
+ assertTrue(wmem.isByteBufferResource());
ByteBuffer byteBuf2 = wmem.toByteBuffer(ByteOrder.nativeOrder());
assertEquals(byteBuf2, byteBuf);
//println( mem.toHexString("HeapBB", 0, memCapacity));
@@ -518,10 +518,10 @@ public class NativeWritableMemoryImplTest {
public void checkIsDirect() throws Exception {
int memCapacity = 64;
WritableMemory mem = WritableMemory.allocate(memCapacity);
- assertFalse(mem.isDirect());
+ assertFalse(mem.isDirectResource());
try (ResourceScope scope = ResourceScope.newConfinedScope()) {
WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, scope,
memReqSvr);
- assertTrue(wmem.isDirect());
+ assertTrue(wmem.isDirectResource());
}
}
diff --git
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/SpecificLeafTest.java
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/SpecificLeafTest.java
index 6c6bcf7..b08b07d 100644
---
a/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/SpecificLeafTest.java
+++
b/datasketches-memory-java17/src/test/java17/org/apache/datasketches/memory/internal/SpecificLeafTest.java
@@ -52,11 +52,11 @@ public class SpecificLeafTest {
bb.order(NATIVE_BYTE_ORDER);
Memory mem = Memory.wrap(bb).region(0, bytes, NATIVE_BYTE_ORDER);
- assertTrue(mem.hasByteBuffer());
+ assertTrue(mem.isByteBufferResource());
assertTrue(mem.isReadOnly());
- assertTrue(mem.isMemory());
- assertFalse(mem.isDirect());
- assertFalse(mem.isMapped());
+ assertTrue(mem.isMemoryApi());
+ assertFalse(mem.isDirectResource());
+ assertFalse(mem.isMemoryMappedFileResource());
checkCrossLeafTypeIds(mem);
Buffer buf = mem.asBuffer().region(0, bytes, NATIVE_BYTE_ORDER);
assertEquals(buf.getByteOrder(), NATIVE_BYTE_ORDER);
@@ -66,11 +66,11 @@ public class SpecificLeafTest {
Buffer buf2 = mem2.asBuffer().region(0, bytes, NON_NATIVE_BYTE_ORDER);
Buffer buf3 = buf2.duplicate();
- assertTrue(mem.isRegion());
- assertTrue(mem2.isRegion());
- assertTrue(buf.isRegion());
- assertTrue(buf2.isRegion());
- assertTrue(buf3.isDuplicate());
+ assertTrue(mem.isRegionView());
+ assertTrue(mem2.isRegionView());
+ assertTrue(buf.isRegionView());
+ assertTrue(buf2.isRegionView());
+ assertTrue(buf3.isDuplicateBufferView());
}
@Test
@@ -79,8 +79,7 @@ public class SpecificLeafTest {
try (ResourceScope scope = ResourceScope.newConfinedScope()) {
WritableMemory wmem = WritableMemory.allocateDirect(bytes, scope,
memReqSvr);
assertFalse(((BaseStateImpl)wmem).isReadOnly());
- assertTrue(wmem.isDirect());
- assertFalse(wmem.isHeap());
+ assertTrue(wmem.isDirectResource());
assertFalse(wmem.isReadOnly());
checkCrossLeafTypeIds(wmem);
WritableMemory nnwmem = wmem.writableRegion(0, bytes,
NON_NATIVE_BYTE_ORDER);
@@ -93,12 +92,12 @@ public class SpecificLeafTest {
Buffer buf2 = mem2.asBuffer().region(0, bytes, NON_NATIVE_BYTE_ORDER);
Buffer buf3 = buf2.duplicate();
- assertTrue(mem.isRegion());
- assertTrue(mem2.isRegion());
- assertTrue(buf.isRegion());
- assertTrue(buf2.isRegion());
- assertTrue(buf3.isDuplicate());
- assertTrue(mem2.isMemory());
+ assertTrue(mem.isRegionView());
+ assertTrue(mem2.isRegionView());
+ assertTrue(buf.isRegionView());
+ assertTrue(buf2.isRegionView());
+ assertTrue(buf3.isDuplicateBufferView());
+ assertTrue(mem2.isMemoryApi());
}
}
@@ -116,7 +115,7 @@ public class SpecificLeafTest {
final long bytes = 128;
try (ResourceScope scope = ResourceScope.newConfinedScope()) {
WritableMemory mem = WritableMemory.writableMap(file, 0L, bytes, scope,
ByteOrder.nativeOrder());
- assertTrue(mem.isMapped());
+ assertTrue(mem.isMemoryMappedFileResource());
assertFalse(mem.isReadOnly());
checkCrossLeafTypeIds(mem);
Memory nnreg = mem.region(0, bytes, NON_NATIVE_BYTE_ORDER);
@@ -129,14 +128,14 @@ public class SpecificLeafTest {
Buffer buf2 = reg2.asBuffer().region(0, bytes, NON_NATIVE_BYTE_ORDER);
Buffer buf3 = buf2.duplicate();
- assertTrue(reg.isRegion());
- assertTrue(reg2.isRegion());
+ assertTrue(reg.isRegionView());
+ assertTrue(reg2.isRegionView());
assertEquals(reg2.getByteOrder(), NON_NATIVE_BYTE_ORDER);
- assertTrue(buf.isRegion());
- assertFalse(buf.isMemory());
- assertTrue(buf2.isRegion());
- assertTrue(buf3.isDuplicate());
- assertTrue(buf4.isDuplicate());
+ assertTrue(buf.isRegionView());
+ assertFalse(buf.isMemoryApi());
+ assertTrue(buf2.isRegionView());
+ assertTrue(buf3.isDuplicateBufferView());
+ assertTrue(buf4.isDuplicateBufferView());
}
}
@@ -144,7 +143,7 @@ public class SpecificLeafTest {
public void checkHeapLeafs() {
int bytes = 128;
Memory mem = Memory.wrap(new byte[bytes]);
- assertTrue(mem.isHeap());
+ assertFalse(mem.isDirectResource());
assertTrue(((BaseStateImpl)mem).isReadOnly());
checkCrossLeafTypeIds(mem);
Memory nnreg = mem.region(0, bytes, NON_NATIVE_BYTE_ORDER);
@@ -157,46 +156,46 @@ public class SpecificLeafTest {
Buffer buf2 = reg2.asBuffer().region(0, bytes, NON_NATIVE_BYTE_ORDER);
Buffer buf3 = buf2.duplicate();
- assertFalse(mem.isRegion());
- assertTrue(reg2.isRegion());
- assertTrue(buf.isRegion());
- assertTrue(buf2.isRegion());
- assertTrue(buf3.isDuplicate());
- assertTrue(buf4.isDuplicate());
+ assertFalse(mem.isRegionView());
+ assertTrue(reg2.isRegionView());
+ assertTrue(buf.isRegionView());
+ assertTrue(buf2.isRegionView());
+ assertTrue(buf3.isDuplicateBufferView());
+ assertTrue(buf4.isDuplicateBufferView());
}
private static void checkCrossLeafTypeIds(Memory mem) {
Memory reg1 = mem.region(0, mem.getCapacity());
- assertTrue(reg1.isRegion());
+ assertTrue(reg1.isRegionView());
Buffer buf1 = reg1.asBuffer();
- assertTrue(buf1.isRegion());
- assertTrue(buf1.isBuffer());
+ assertTrue(buf1.isRegionView());
+ assertFalse(buf1.isMemoryApi());
assertTrue(buf1.isReadOnly());
Buffer buf2 = buf1.duplicate();
- assertTrue(buf2.isRegion());
- assertTrue(buf2.isBuffer());
- assertTrue(buf2.isDuplicate());
+ assertTrue(buf2.isRegionView());
+ assertFalse(buf1.isMemoryApi());
+ assertTrue(buf2.isDuplicateBufferView());
assertTrue(buf2.isReadOnly());
Memory mem2 = buf1.asMemory(); //
- assertTrue(mem2.isRegion());
- assertFalse(mem2.isBuffer());
- assertFalse(mem2.isDuplicate());
+ assertTrue(mem2.isRegionView());
+ assertTrue(mem2.isMemoryApi());
+ assertFalse(mem2.isDuplicateBufferView());
assertTrue(mem2.isReadOnly());
Buffer buf3 = buf1.duplicate(NON_NATIVE_BYTE_ORDER);
- assertTrue(buf3.isRegion());
- assertTrue(buf3.isBuffer());
- assertTrue(buf3.isDuplicate());
+ assertTrue(buf3.isRegionView());
+ assertFalse(buf1.isMemoryApi());
+ assertTrue(buf3.isDuplicateBufferView());
assertEquals(buf3.getByteOrder(), NON_NATIVE_BYTE_ORDER);
assertTrue(buf3.isReadOnly());
Memory mem3 = buf3.asMemory();
- assertTrue(mem3.isRegion());
- assertFalse(mem3.isBuffer());
- assertTrue(mem3.isDuplicate());
+ assertTrue(mem3.isRegionView());
+ assertTrue(mem2.isMemoryApi());
+ assertTrue(mem3.isDuplicateBufferView());
assertEquals(mem3.getByteOrder(), NON_NATIVE_BYTE_ORDER);
assertTrue(mem3.isReadOnly());
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BaseState.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BaseState.java
index 1ed7378..2a6858f 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BaseState.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BaseState.java
@@ -71,18 +71,24 @@ public interface BaseState {
long getCapacity();
/**
- * Returns true if this Memory is backed by a ByteBuffer.
- * @return true if this Memory is backed by a ByteBuffer.
+ * Returns the MemoryRequestSever or null, if it has not been configured.
+ * @return the MemoryRequestSever or null, if it has not been configured.
*/
- boolean hasByteBuffer();
+ MemoryRequestServer getMemoryRequestServer();
/**
- * Is this resource alive?
- * @return true, if this resource is alive. That is, it has not been closed.
- * @see close()
+ * Is the underlying resource alive?
+ * @return true, if the underlying resource is alive.
+ * @See {@link java.lang.AutoCloseable#close()}
*/
boolean isAlive();
+ /**
+ * Returns true if this Memory is backed by a ByteBuffer.
+ * @return true if this Memory is backed by a ByteBuffer.
+ */
+ boolean isByteBufferResource();
+
/**
* Returns true if the Native ByteOrder is the same as the ByteOrder of the
* current Buffer or Memory and the same ByteOrder as the given byteOrder.
@@ -93,28 +99,69 @@ public interface BaseState {
boolean isByteOrderCompatible(ByteOrder byteOrder);
/**
- * Returns true if the backing resource is direct (off-heap) memory.
+ * If true, the backing resource is direct (off-heap) memory.
* This is the case for allocated direct memory, memory mapped files,
* or from a wrapped ByteBuffer that was allocated direct.
+ * If false, the backing resource is the normal Java heap.
* @return true if the backing resource is direct (off-heap) memory.
*/
- boolean isDirect();
+ boolean isDirectResource();
+
+ /**
+ * Returns true if this instance is a duplicate of a Buffer instance.
+ * @return true if this instance is a duplicate of a Buffer instance.
+ */
+ boolean isDuplicateBufferView();
+
+ /**
+ * If true, this is a <i>Memory</i> or <i>WritableMemory</i> instance, which
provides
+ * the Memory API.
+ * The Memory API is the principal API for this Memory Component.
+ * It provides a rich variety of direct manipulations of four types of
resources:
+ * On-heap memory, direct (off-heap) memory, memory-mapped files, and
ByteBuffers.
+ * If false, this is a <i>Buffer</i> or <i>WritableBuffer</i> instance,
which provides the Buffer API.
+ * The Buffer API is largely parallel to the Memory API except that it adds
a positional API
+ * similar to that in <i>ByteBuffer</i>. The positional API is a
convenience when iterating over structured
+ * arrays, or buffering input or output streams (thus the name).
+ * @return true if this is a Buffer or WritableBuffer instance, which
provides the Buffer API.
+ */
+ boolean isMemoryApi();
/**
- * Returns true if this object or the backing resource is read-only.
- * @return true if this object or the backing resource is read-only.
+ * Returns true if the backing resource is a memory mapped file.
+ * @return true if the backing resource is a memory mapped file.
+ */
+ boolean isMemoryMappedFileResource();
+
+ /**
+ * If true, all put and get operations will assume the non-native ByteOrder.
+ * Otherwise, all put and get operations will assume the native ByteOrder.
+ * @return true, if all put and get operations will assume the non-native
ByteOrder.
+ */
+ boolean isNonNativeOrder();
+
+ /**
+ * Returns true if this or the backing resource is read-only.
+ * @return true if this or the backing resource is read-only.
*/
boolean isReadOnly();
/**
- * Returns a formatted hex string of a range of this object.
- * Used primarily for testing.
- * @param header a descriptive header
+ * Returns true if this instance is a region view of another Memory or Buffer
+ * @return true if this instance is a region view of another Memory or Buffer
+ */
+ boolean isRegionView();
+
+ /**
+ * Returns a description of this object with an optional formatted hex
string of the data
+ * for the specified a range. Used primarily for testing.
+ * @param comment a description
* @param offsetBytes offset bytes relative to this object start
* @param lengthBytes number of bytes to convert to a hex string
- * @return a formatted hex string in a human readable array
+ * @param withData include output listing of byte data in the given range
+ * @return a description and hex output in a human readable format.
*/
- String toHexString(String header, long offsetBytes, int lengthBytes);
+ String toHexString(String comment, long offsetBytes, int lengthBytes,
boolean withData);
/**
* Returns a 64-bit hash from a single long. This method has been optimized
for speed when only
@@ -147,19 +194,10 @@ public interface BaseState {
* @param that A different non-null object
* @return true if the backing resource of <i>this</i> is the same as the
backing resource
* of <i>that</i>.
- * @deprecated no longer supported as of Java 17 versions. Use
nativeOverlap(BaseState) instead.
+ * @deprecated no longer supported as of Java 17 versions.
+ * With Java 17 use nativeOverlap(other) instead.
*/
@Deprecated
boolean isSameResource(Object that);
- /**
- * Returns true if this object is valid and has not been closed.
- * This is relevant only for direct (off-heap) memory and Mapped Files.
- * @return true if this object is valid and has not been closed.
- * @deprecated no longer supported as of Java 17 versions. Use
<i>isAlive()</i> instead.
- */
- //@Deprecated
- @Deprecated
- default boolean isValid() { return isAlive(); }
-
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
index 17a9e36..d8b596b 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
@@ -88,13 +88,13 @@ final class BBNonNativeWritableBufferImpl extends
NonNativeWritableBufferImpl {
@Override
public ByteBuffer getByteBuffer() {
- checkValid();
+ checkAlive();
return byteBuf;
}
@Override
public MemoryRequestServer getMemoryRequestServer() {
- checkValid();
+ checkAlive();
return memReqSvr;
}
@@ -110,7 +110,7 @@ final class BBNonNativeWritableBufferImpl extends
NonNativeWritableBufferImpl {
@Override
Object getUnsafeObject() {
- checkValid();
+ checkAlive();
return unsafeObj;
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
index b1c8482..a5d8c0e 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
@@ -78,13 +78,13 @@ final class BBNonNativeWritableMemoryImpl extends
NonNativeWritableMemoryImpl {
@Override
public ByteBuffer getByteBuffer() {
- checkValid();
+ checkAlive();
return byteBuf;
}
@Override
public MemoryRequestServer getMemoryRequestServer() {
- checkValid();
+ checkAlive();
return memReqSvr;
}
@@ -100,7 +100,7 @@ final class BBNonNativeWritableMemoryImpl extends
NonNativeWritableMemoryImpl {
@Override
Object getUnsafeObject() {
- checkValid();
+ checkAlive();
return unsafeObj;
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
index fac0215..e7da0b0 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
@@ -88,13 +88,13 @@ final class BBWritableBufferImpl extends
NativeWritableBufferImpl {
@Override
public ByteBuffer getByteBuffer() {
- checkValid();
+ checkAlive();
return byteBuf;
}
@Override
public MemoryRequestServer getMemoryRequestServer() {
- checkValid();
+ checkAlive();
return memReqSvr;
}
@@ -110,7 +110,7 @@ final class BBWritableBufferImpl extends
NativeWritableBufferImpl {
@Override
Object getUnsafeObject() {
- checkValid();
+ checkAlive();
return unsafeObj;
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
index 27143dd..45fd2d6 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
@@ -78,13 +78,13 @@ final class BBWritableMemoryImpl extends
NativeWritableMemoryImpl {
@Override
public ByteBuffer getByteBuffer() {
- checkValid();
+ checkAlive();
return byteBuf;
}
@Override
public MemoryRequestServer getMemoryRequestServer() {
- checkValid();
+ checkAlive();
return memReqSvr;
}
@@ -100,7 +100,7 @@ final class BBWritableMemoryImpl extends
NativeWritableMemoryImpl {
@Override
Object getUnsafeObject() {
- checkValid();
+ checkAlive();
return unsafeObj;
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseBufferImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseBufferImpl.java
index 68c699e..a8e7c07 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseBufferImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseBufferImpl.java
@@ -111,7 +111,7 @@ public abstract class BaseBufferImpl extends BaseStateImpl
implements BaseBuffer
//checks are used for arrays and apply at runtime
final void incrementAndCheckPosition(final long position, final long
increment) {
- checkValid();
+ checkAlive();
final long newPos = position + increment;
checkInvariants(start, newPos, end, capacity);
pos = newPos;
@@ -125,7 +125,7 @@ public abstract class BaseBufferImpl extends BaseStateImpl
implements BaseBuffer
}
final void checkValidForWrite() {
- checkValid();
+ checkAlive();
if (isReadOnly()) {
throw new ReadOnlyException("Buffer is read-only.");
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseStateImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseStateImpl.java
index e21cea2..e71ef70 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseStateImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseStateImpl.java
@@ -53,27 +53,25 @@ public abstract class BaseStateImpl implements BaseState {
//class type IDs. Do not change the bit orders
//The first 3 bits are set dynamically
- // 0000 0XXX
- static final int READONLY = 1;
- static final int REGION = 2;
- static final int DUPLICATE = 4;
-
- //The following 5 bits are set by the 16 leaf nodes
- // 000X X000
- static final int HEAP = 0;
- static final int DIRECT = 1 << 3;
- static final int MAP = 2 << 3;
+ // 0000 0XXX Group 1
+ static final int READONLY = 1;
+ static final int REGION = 1 << 1;
+ static final int DUPLICATE = 1 << 2; //for Buffer only
+ // 000X X000 Group 2
+ static final int HEAP = 0;
+ static final int DIRECT = 1 << 3;
+ static final int MAP = 1 << 4; //Map is always Direct also
- // 00X0 0000
- static final int NATIVE = 0;
+ // 00X0 0000 Group 3
+ static final int NATIVE = 0;
static final int NONNATIVE = 1 << 5;
- // 0X00 0000
+ // 0X00 0000 Group 4
static final int MEMORY = 0;
static final int BUFFER = 1 << 6;
- // X000 0000
+ // X000 0000 Group 5
static final int BYTEBUF = 1 << 7;
/**
@@ -102,6 +100,8 @@ public abstract class BaseStateImpl implements BaseState {
*/
final long cumBaseOffset_; //NOT USED in JDK 17
+ MemoryRequestServer memReqSvr = null; //selected by the user
+
/**
* Constructor
* @param unsafeObj The primitive backing array. It may be null. Used by
Unsafe calls.
@@ -181,16 +181,21 @@ public abstract class BaseStateImpl implements BaseState {
* Returns a formatted hex string of an area of this object.
* Used primarily for testing.
* @param state the BaseStateImpl
- * @param preamble a descriptive header
+ * @param comment a descriptive header
* @param offsetBytes offset bytes relative to the MemoryImpl start
* @param lengthBytes number of bytes to convert to a hex string
* @return a formatted hex string in a human readable array
*/
- static final String toHex(final BaseStateImpl state, final String preamble,
final long offsetBytes,
- final int lengthBytes) {
+ static final String toHex(final BaseStateImpl state, final String comment,
final long offsetBytes,
+ final int lengthBytes, final boolean withData) {
final long capacity = state.getCapacity();
checkBounds(offsetBytes, lengthBytes, capacity);
- final StringBuilder sb = new StringBuilder();
+
+ final String theComment = (comment != null) ? comment : "";
+ final String s1 = String.format("(..., %d, %d)", offsetBytes, lengthBytes);
+ final long hcode = state.hashCode() & 0XFFFFFFFFL;
+ final String call = ".toHexString" + s1 + ", hashCode: " + hcode;
+
final Object uObj = state.getUnsafeObject();
final String uObjStr;
final long uObjHeader;
@@ -209,7 +214,11 @@ public abstract class BaseStateImpl implements BaseState {
? memReqSvr.getClass().getSimpleName() + ", " + (memReqSvr.hashCode()
& 0XFFFFFFFFL)
: "null";
final long cumBaseOffset = state.getCumulativeOffset(0);
- sb.append(preamble).append(LS);
+
+ final StringBuilder sb = new StringBuilder();
+ sb.append(LS + "### DataSketches Memory Component SUMMARY ###").append(LS);
+ sb.append("Header Comment : ").append(theComment).append(LS);
+ sb.append("Call Parameters : ").append(call);
sb.append("UnsafeObj, hashCode : ").append(uObjStr).append(LS);
sb.append("UnsafeObjHeader : ").append(uObjHeader).append(LS);
sb.append("ByteBuf, hashCode : ").append(bbStr).append(LS);
@@ -217,21 +226,22 @@ public abstract class BaseStateImpl implements BaseState {
sb.append("Capacity : ").append(capacity).append(LS);
sb.append("CumBaseOffset : ").append(cumBaseOffset).append(LS);
sb.append("MemReqSvr, hashCode : ").append(memReqStr).append(LS);
- sb.append("Valid : ").append(state.isAlive()).append(LS);
sb.append("Read Only : ").append(state.isReadOnly()).append(LS);
sb.append("Type Byte Order :
").append(state.getByteOrder().toString()).append(LS);
sb.append("Native Byte Order :
").append(NATIVE_BYTE_ORDER.toString()).append(LS);
sb.append("JDK Runtime Version : ").append(JDK).append(LS);
//Data detail
- sb.append("Data, littleEndian : 0 1 2 3 4 5 6 7");
-
- for (long i = 0; i < lengthBytes; i++) {
- final int b = unsafe.getByte(uObj, cumBaseOffset + offsetBytes + i) &
0XFF;
- if (i % 8 == 0) { //row header
- sb.append(String.format("%n%20s: ", offsetBytes + i));
+ if (withData) {
+ sb.append("Data, littleEndian : 0 1 2 3 4 5 6 7");
+ for (long i = 0; i < lengthBytes; i++) {
+ final int b = unsafe.getByte(uObj, cumBaseOffset + offsetBytes + i) &
0XFF;
+ if (i % 8 == 0) { //row header
+ sb.append(String.format("%n%20s: ", offsetBytes + i));
+ }
+ sb.append(String.format("%02x ", b));
}
- sb.append(String.format("%02x ", b));
}
+ sb.append(LS + "### END SUMMARY ###");
sb.append(LS);
return sb.toString();
@@ -287,7 +297,7 @@ public abstract class BaseStateImpl implements BaseState {
//**NON STATIC METHODS*****************************************
- void checkValid() { //Java 8 & 11 only
+ void checkAlive() { //Java 8 & 11 only
if (!isAlive()) {
throw new IllegalStateException("Memory not valid.");
}
@@ -308,36 +318,39 @@ public abstract class BaseStateImpl implements BaseState {
@Override
public final ByteOrder getByteOrder() {
- return isNonNativeType() ? NON_NATIVE_BYTE_ORDER : NATIVE_BYTE_ORDER;
+ return isNonNativeOrder() ? NON_NATIVE_BYTE_ORDER : NATIVE_BYTE_ORDER;
}
//Overridden by ByteBuffer Leafs
- public ByteBuffer getByteBuffer() {
- checkValid();
+ public ByteBuffer getByteBuffer() { //TODO Keep??
+ checkAlive();
return null;
}
@Override
public final long getCapacity() {
- checkValid();
+ checkAlive();
return capacityBytes_;
}
- public final long getCumulativeOffset(final long offsetBytes) { //Java 8 &
11 only
- checkValid();
+ final long getCumulativeOffset(final long offsetBytes) { //Java 8 & 11 only
+ checkAlive();
return cumBaseOffset_ + offsetBytes;
}
//Documented in WritableMemory and WritableBuffer interfaces.
- //Implemented in the Leaf nodes; Required here by toHex(...).
- abstract MemoryRequestServer getMemoryRequestServer();
+ //Overridden in the Leaf nodes; Required here by toHex(...).
+ @Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
//Overridden by ByteBuffer, Direct and Map leafs
long getNativeBaseOffset() { //Java 8 & 11 only
return 0;
}
- public final long getRegionOffset(final long offsetBytes) { //Java 8 & 11
only
+ final long getRegionOffset(final long offsetBytes) { //Java 8 & 11 only
final Object unsafeObj = getUnsafeObject();
return offsetBytes + (unsafeObj == null
? cumBaseOffset_ - getNativeBaseOffset()
@@ -353,31 +366,17 @@ public abstract class BaseStateImpl implements BaseState {
return null;
}
- @Override
- public final boolean hasByteBuffer() { //Java 8 & 11 only
- checkValid();
- return isByteBufferType();
- }
-
- @Override
- public final int hashCode() { //Java 8 & 11 only
- return (int) xxHash64(0, capacityBytes_, 0); //xxHash64() calls
checkValid()
- }
-
//Overridden by Direct and Map leafs
@Override
public boolean isAlive() {
return true;
}
- final boolean isByteBufferType() {
+ @Override
+ public final boolean isByteBufferResource() { //Java 8 & 11 only
return (getTypeId() & BYTEBUF) > 0;
}
- final boolean isBufferType() {
- return (getTypeId() & BUFFER) > 0;
- }
-
@Override
public final boolean isByteOrderCompatible(final ByteOrder byteOrder) {
final ByteOrder typeBO = getByteOrder();
@@ -385,54 +384,47 @@ public abstract class BaseStateImpl implements BaseState {
}
@Override
- public final boolean isDirect() {
- return getUnsafeObject() == null;
- }
-
- final boolean isDirectType() {
- return (getTypeId() >>> 3 & 3) == 1;
+ public final boolean isDirectResource() {
+ final int bits = (getTypeId() >>> 3) & 3;
+ return bits == 1 || bits == 3 || getUnsafeObject() == null;
}
- final boolean isDuplicateType() {
+ @Override
+ public final boolean isDuplicateBufferView() {
return (getTypeId() & DUPLICATE) > 0;
}
- final boolean isHeapType() {
- return (getTypeId() >>> 3 & 3) == 0;
- }
-
- final boolean isMapType() {
+ @Override
+ public final boolean isMemoryMappedFileResource() {
return (getTypeId() >>> 3 & 3) == 2;
}
- final boolean isMemoryType() {
+ @Override
+ public final boolean isMemoryApi() {
return (getTypeId() & BUFFER) == 0;
}
- final boolean isNonNativeType() {
+ @Override
+ public final boolean isNonNativeOrder() {
return (getTypeId() & NONNATIVE) > 0;
}
@Override
public final boolean isReadOnly() {
- checkValid();
- return isReadOnlyType();
- }
-
- final boolean isReadOnlyType() {
return (getTypeId() & READONLY) > 0;
}
- final boolean isRegionType() {
+ @Override
+ public final boolean isRegionView() {
return (getTypeId() & REGION) > 0;
}
- @Override
- public final boolean isSameResource(final Object that) { //Java 8 & 11 only
- checkValid();
+ @Override //Java 8 & 11 only
+ public final boolean isSameResource(final Object that) {
+ checkAlive();
if (that == null) { return false; }
final BaseStateImpl that1 = (BaseStateImpl) that;
- that1.checkValid();
+ that1.checkAlive();
if (this == that1) { return true; }
return cumBaseOffset_ == that1.cumBaseOffset_
@@ -442,23 +434,15 @@ public abstract class BaseStateImpl implements BaseState {
}
@Override
- public final String toHexString(final String header, final long offsetBytes,
- final int lengthBytes) {
- checkValid();
- final String klass = this.getClass().getSimpleName();
- final String s1 = String.format("(..., %d, %d)", offsetBytes, lengthBytes);
- final long hcode = hashCode() & 0XFFFFFFFFL;
- final String call = ".toHexString" + s1 + ", hashCode: " + hcode;
- final StringBuilder sb = new StringBuilder();
- sb.append("### ").append(klass).append(" SUMMARY ###").append(LS);
- sb.append("Header Comment : ").append(header).append(LS);
- sb.append("Call Parameters : ").append(call);
- return toHex(this, sb.toString(), offsetBytes, lengthBytes);
+ public final String toHexString(final String comment, final long offsetBytes,
+ final int lengthBytes, boolean withData) {
+ checkAlive();
+ return toHex(this, comment, offsetBytes, lengthBytes, withData);
}
@Override
public final long xxHash64(final long offsetBytes, final long lengthBytes,
final long seed) {
- checkValid();
+ checkAlive();
return XxHash64.hash(getUnsafeObject(), cumBaseOffset_ + offsetBytes,
lengthBytes, seed);
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
index 4c1971a..f9e7a0e 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
@@ -105,7 +105,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
if (isReadOnly() && !localReadOnly) {
throw new ReadOnlyException("Writable region of a read-only Buffer is
not allowed.");
}
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, capacityBytes, capacityBytes_);
final boolean readOnly = isReadOnly() || localReadOnly;
final WritableBuffer wbuf = toWritableRegion(offsetBytes, capacityBytes,
readOnly, byteOrder);
@@ -183,7 +183,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
@Override
public final boolean getBoolean(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BOOLEAN_INDEX_SCALE, capacityBytes_);
return unsafe.getBoolean(getUnsafeObject(),
getCumulativeOffset(offsetBytes));
}
@@ -212,7 +212,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
@Override
public final byte getByte(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BYTE_INDEX_SCALE, capacityBytes_);
return unsafe.getByte(getUnsafeObject(), getCumulativeOffset(offsetBytes));
}
@@ -240,7 +240,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
}
final char getNativeOrderedChar(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_CHAR_INDEX_SCALE, capacityBytes_);
return unsafe.getChar(getUnsafeObject(), getCumulativeOffset(offsetBytes));
}
@@ -252,7 +252,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
}
final int getNativeOrderedInt(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_INT_INDEX_SCALE, capacityBytes_);
return unsafe.getInt(getUnsafeObject(), getCumulativeOffset(offsetBytes));
}
@@ -264,7 +264,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
}
final long getNativeOrderedLong(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
return unsafe.getLong(getUnsafeObject(), getCumulativeOffset(offsetBytes));
}
@@ -276,7 +276,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
}
final short getNativeOrderedShort(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_SHORT_INDEX_SCALE, capacityBytes_);
return unsafe.getShort(getUnsafeObject(),
getCumulativeOffset(offsetBytes));
}
@@ -304,7 +304,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
@Override
public final void putBoolean(final long offsetBytes, final boolean value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BOOLEAN_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putBoolean(getUnsafeObject(), getCumulativeOffset(offsetBytes),
value);
@@ -334,7 +334,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
@Override
public final void putByte(final long offsetBytes, final byte value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BYTE_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putByte(getUnsafeObject(), getCumulativeOffset(offsetBytes), value);
@@ -363,7 +363,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
}
final void putNativeOrderedChar(final long offsetBytes, final char value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_CHAR_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putChar(getUnsafeObject(), getCumulativeOffset(offsetBytes), value);
@@ -376,7 +376,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
}
final void putNativeOrderedInt(final long offsetBytes, final int value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_INT_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putInt(getUnsafeObject(), getCumulativeOffset(offsetBytes), value);
@@ -389,7 +389,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
}
final void putNativeOrderedLong(final long offsetBytes, final long value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putLong(getUnsafeObject(), getCumulativeOffset(offsetBytes), value);
@@ -402,7 +402,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
}
final void putNativeOrderedShort(final long offsetBytes, final short value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_SHORT_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putShort(getUnsafeObject(), getCumulativeOffset(offsetBytes),
value);
@@ -411,7 +411,7 @@ public abstract class BaseWritableBufferImpl extends
BaseBufferImpl implements W
//OTHER
@Override
public final Object getArray() {
- checkValid();
+ checkAlive();
return getUnsafeObject();
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
index d734742..4ca49ca 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
@@ -167,7 +167,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
negativeCheck(offsetBytes, "offsetBytes must be >= 0");
negativeCheck(capacityBytes, "capacityBytes must be >= 0");
Objects.requireNonNull(byteOrder, "byteOrder must be non-null.");
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, capacityBytes, capacityBytes_);
final boolean readOnly = isReadOnly() || localReadOnly;
return toWritableRegion(offsetBytes, capacityBytes, readOnly, byteOrder);
@@ -204,7 +204,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
//PRIMITIVE getX() and getXArray()
@Override
public final boolean getBoolean(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BOOLEAN_INDEX_SCALE, capacityBytes_);
return unsafe.getBoolean(getUnsafeObject(),
getCumulativeOffset(offsetBytes));
}
@@ -213,7 +213,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
public final void getBooleanArray(final long offsetBytes, final boolean[]
dstArray,
final int dstOffsetBooleans, final int lengthBooleans) {
final long copyBytes = lengthBooleans;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkBounds(dstOffsetBooleans, lengthBooleans, dstArray.length);
CompareAndCopy.copyMemoryCheckingDifferentObject(
@@ -226,7 +226,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
@Override
public final byte getByte(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BYTE_INDEX_SCALE, capacityBytes_);
return unsafe.getByte(getUnsafeObject(), getCumulativeOffset(offsetBytes));
}
@@ -235,7 +235,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
public final void getByteArray(final long offsetBytes, final byte[] dstArray,
final int dstOffsetBytes, final int lengthBytes) {
final long copyBytes = lengthBytes;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkBounds(dstOffsetBytes, lengthBytes, dstArray.length);
CompareAndCopy.copyMemoryCheckingDifferentObject(
@@ -249,7 +249,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
@Override
public final int getCharsFromUtf8(final long offsetBytes, final int
utf8LengthBytes,
final Appendable dst) throws IOException, Utf8CodingException {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, utf8LengthBytes, capacityBytes_);
return Utf8.getCharsFromUtf8(offsetBytes, utf8LengthBytes, dst,
getCumulativeOffset(0),
getUnsafeObject());
@@ -269,25 +269,25 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
//PRIMITIVE getX() Native Endian (used by both endians)
final char getNativeOrderedChar(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_CHAR_INDEX_SCALE, capacityBytes_);
return unsafe.getChar(getUnsafeObject(), getCumulativeOffset(offsetBytes));
}
final int getNativeOrderedInt(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_INT_INDEX_SCALE, capacityBytes_);
return unsafe.getInt(getUnsafeObject(), getCumulativeOffset(offsetBytes));
}
final long getNativeOrderedLong(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
return unsafe.getLong(getUnsafeObject(), getCumulativeOffset(offsetBytes));
}
final short getNativeOrderedShort(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_SHORT_INDEX_SCALE, capacityBytes_);
return unsafe.getShort(getUnsafeObject(),
getCumulativeOffset(offsetBytes));
}
@@ -310,7 +310,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
@Override
public final void writeTo(final long offsetBytes, final long lengthBytes,
final WritableByteChannel out) throws IOException {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, lengthBytes, capacityBytes_);
if (getUnsafeObject() instanceof byte[]) {
writeByteArrayTo((byte[]) getUnsafeObject(), offsetBytes, lengthBytes,
out);
@@ -326,7 +326,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
//PRIMITIVE putX() and putXArray() implementations
@Override
public final void putBoolean(final long offsetBytes, final boolean value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BOOLEAN_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putBoolean(getUnsafeObject(), getCumulativeOffset(offsetBytes),
value);
@@ -336,7 +336,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
public final void putBooleanArray(final long offsetBytes, final boolean[]
srcArray,
final int srcOffsetBooleans, final int lengthBooleans) {
final long copyBytes = lengthBooleans;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
checkBounds(srcOffsetBooleans, lengthBooleans, srcArray.length);
@@ -351,7 +351,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
@Override
public final void putByte(final long offsetBytes, final byte value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BYTE_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putByte(getUnsafeObject(), getCumulativeOffset(offsetBytes), value);
@@ -361,7 +361,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
public final void putByteArray(final long offsetBytes, final byte[] srcArray,
final int srcOffsetBytes, final int lengthBytes) {
final long copyBytes = lengthBytes;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
checkBounds(srcOffsetBytes, lengthBytes, srcArray.length);
@@ -376,35 +376,35 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
@Override
public final long putCharsToUtf8(final long offsetBytes, final CharSequence
src) {
- checkValid();
+ checkAlive();
return Utf8.putCharsToUtf8(offsetBytes, src, getCapacity(),
getCumulativeOffset(0),
getUnsafeObject());
}
//PRIMITIVE putX() Native Endian (used by both endians)
final void putNativeOrderedChar(final long offsetBytes, final char value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_CHAR_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putChar(getUnsafeObject(), getCumulativeOffset(offsetBytes), value);
}
final void putNativeOrderedInt(final long offsetBytes, final int value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_INT_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putInt(getUnsafeObject(), getCumulativeOffset(offsetBytes), value);
}
final void putNativeOrderedLong(final long offsetBytes, final long value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putLong(getUnsafeObject(), getCumulativeOffset(offsetBytes), value);
}
final void putNativeOrderedShort(final long offsetBytes, final short value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_SHORT_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putShort(getUnsafeObject(), getCumulativeOffset(offsetBytes),
value);
@@ -413,7 +413,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
//OTHER WRITE METHODS
@Override
public final Object getArray() {
- checkValid();
+ checkAlive();
return getUnsafeObject();
}
@@ -435,7 +435,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
@Override
public final void clearBits(final long offsetBytes, final byte bitMask) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BYTE_INDEX_SCALE, capacityBytes_);
checkWritable();
final long cumBaseOff = getCumulativeOffset(offsetBytes);
@@ -451,7 +451,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
@Override
public final void fill(long offsetBytes, long lengthBytes, final byte value)
{
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, lengthBytes, capacityBytes_);
checkWritable();
while (lengthBytes > 0) {
@@ -464,7 +464,7 @@ public abstract class BaseWritableMemoryImpl extends
BaseStateImpl implements Wr
@Override
public final void setBits(final long offsetBytes, final byte bitMask) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_BYTE_INDEX_SCALE, capacityBytes_);
checkWritable();
final long myOffset = getCumulativeOffset(offsetBytes);
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java
index 5be228d..d22d1e7 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java
@@ -40,9 +40,9 @@ final class CompareAndCopy {
static int compare(
final BaseStateImpl state1, final long offsetBytes1, final long
lengthBytes1,
final BaseStateImpl state2, final long offsetBytes2, final long
lengthBytes2) {
- state1.checkValid();
+ state1.checkAlive();
checkBounds(offsetBytes1, lengthBytes1, state1.getCapacity());
- state2.checkValid();
+ state2.checkAlive();
checkBounds(offsetBytes2, lengthBytes2, state2.getCapacity());
final long cumOff1 = state1.getCumulativeOffset(offsetBytes1);
final long cumOff2 = state2.getCumulativeOffset(offsetBytes2);
@@ -72,9 +72,9 @@ final class CompareAndCopy {
static boolean equals(
final BaseStateImpl state1, final long offsetBytes1,
final BaseStateImpl state2, final long offsetBytes2, long lengthBytes) {
- state1.checkValid();
+ state1.checkAlive();
checkBounds(offsetBytes1, lengthBytes, state1.getCapacity());
- state2.checkValid();
+ state2.checkAlive();
checkBounds(offsetBytes2, lengthBytes, state2.getCapacity());
long cumOff1 = state1.getCumulativeOffset(offsetBytes1);
long cumOff2 = state2.getCumulativeOffset(offsetBytes2);
@@ -114,9 +114,9 @@ final class CompareAndCopy {
static void copy(final BaseStateImpl srcState, final long srcOffsetBytes,
final BaseStateImpl dstState, final long dstOffsetBytes, final long
lengthBytes) {
- srcState.checkValid();
+ srcState.checkAlive();
checkBounds(srcOffsetBytes, lengthBytes, srcState.getCapacity());
- dstState.checkValid();
+ dstState.checkAlive();
checkBounds(dstOffsetBytes, lengthBytes, dstState.getCapacity());
final long srcAdd = srcState.getCumulativeOffset(srcOffsetBytes);
final long dstAdd = dstState.getCumulativeOffset(dstOffsetBytes);
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
index 1ea130d..ed69483 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
@@ -84,7 +84,7 @@ final class DirectNonNativeWritableBufferImpl extends
NonNativeWritableBufferImp
@Override
public MemoryRequestServer getMemoryRequestServer() {
- checkValid();
+ checkAlive();
return memReqSvr;
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
index 484a193..90d182a 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
@@ -74,7 +74,7 @@ final class DirectNonNativeWritableMemoryImpl extends
NonNativeWritableMemoryImp
@Override
public MemoryRequestServer getMemoryRequestServer() {
- checkValid();
+ checkAlive();
return memReqSvr;
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
index 921480f..669e663 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
@@ -84,7 +84,7 @@ final class DirectWritableBufferImpl extends
NativeWritableBufferImpl {
@Override
public MemoryRequestServer getMemoryRequestServer() {
- checkValid();
+ checkAlive();
return memReqSvr;
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java
index 0f30939..bd97d1c 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java
@@ -74,7 +74,7 @@ final class DirectWritableMemoryImpl extends
NativeWritableMemoryImpl {
@Override
public MemoryRequestServer getMemoryRequestServer() {
- checkValid();
+ checkAlive();
return memReqSvr;
}
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
index 2d10857..8b83e51 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
@@ -79,7 +79,7 @@ abstract class NativeWritableBufferImpl extends
BaseWritableBufferImpl {
@Override
public double getDouble(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_DOUBLE_INDEX_SCALE, capacityBytes_);
return unsafe.getDouble(getUnsafeObject(),
getCumulativeOffset(offsetBytes));
}
@@ -108,7 +108,7 @@ abstract class NativeWritableBufferImpl extends
BaseWritableBufferImpl {
@Override
public float getFloat(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_FLOAT_INDEX_SCALE, capacityBytes_);
return unsafe.getFloat(getUnsafeObject(),
getCumulativeOffset(offsetBytes));
}
@@ -235,7 +235,7 @@ abstract class NativeWritableBufferImpl extends
BaseWritableBufferImpl {
@Override
public void putDouble(final long offsetBytes, final double value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_DOUBLE_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putDouble(getUnsafeObject(), getCumulativeOffset(offsetBytes),
value);
@@ -265,7 +265,7 @@ abstract class NativeWritableBufferImpl extends
BaseWritableBufferImpl {
@Override
public void putFloat(final long offsetBytes, final float value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_FLOAT_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putFloat(getUnsafeObject(), getCumulativeOffset(offsetBytes),
value);
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
index 8586d97..44f9113 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
@@ -56,7 +56,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getCharArray(final long offsetBytes, final char[] dstArray,
final int dstOffsetChars,
final int lengthChars) {
final long copyBytes = ((long) lengthChars) << CHAR_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkBounds(dstOffsetChars, lengthChars, dstArray.length);
CompareAndCopy.copyMemoryCheckingDifferentObject(
@@ -69,7 +69,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public double getDouble(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_DOUBLE_INDEX_SCALE, capacityBytes_);
return unsafe.getDouble(getUnsafeObject(),
getCumulativeOffset(offsetBytes));
}
@@ -78,7 +78,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getDoubleArray(final long offsetBytes, final double[] dstArray,
final int dstOffsetDoubles, final int lengthDoubles) {
final long copyBytes = ((long) lengthDoubles) << DOUBLE_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkBounds(dstOffsetDoubles, lengthDoubles, dstArray.length);
CompareAndCopy.copyMemoryCheckingDifferentObject(
@@ -91,7 +91,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public float getFloat(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_FLOAT_INDEX_SCALE, capacityBytes_);
return unsafe.getFloat(getUnsafeObject(),
getCumulativeOffset(offsetBytes));
}
@@ -100,7 +100,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getFloatArray(final long offsetBytes, final float[] dstArray,
final int dstOffsetFloats, final int lengthFloats) {
final long copyBytes = ((long) lengthFloats) << FLOAT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkBounds(dstOffsetFloats, lengthFloats, dstArray.length);
CompareAndCopy.copyMemoryCheckingDifferentObject(
@@ -120,7 +120,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getIntArray(final long offsetBytes, final int[] dstArray, final
int dstOffsetInts,
final int lengthInts) {
final long copyBytes = ((long) lengthInts) << INT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkBounds(dstOffsetInts, lengthInts, dstArray.length);
CompareAndCopy.copyMemoryCheckingDifferentObject(
@@ -140,7 +140,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getLongArray(final long offsetBytes, final long[] dstArray,
final int dstOffsetLongs, final int lengthLongs) {
final long copyBytes = ((long) lengthLongs) << LONG_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkBounds(dstOffsetLongs, lengthLongs, dstArray.length);
CompareAndCopy.copyMemoryCheckingDifferentObject(
@@ -160,7 +160,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getShortArray(final long offsetBytes, final short[] dstArray,
final int dstOffsetShorts, final int lengthShorts) {
final long copyBytes = ((long) lengthShorts) << SHORT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkBounds(dstOffsetShorts, lengthShorts, dstArray.length);
CompareAndCopy.copyMemoryCheckingDifferentObject(
@@ -181,7 +181,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putCharArray(final long offsetBytes, final char[] srcArray,
final int srcOffsetChars, final int lengthChars) {
final long copyBytes = ((long) lengthChars) << CHAR_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
checkBounds(srcOffsetChars, lengthChars, srcArray.length);
@@ -196,7 +196,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public void putDouble(final long offsetBytes, final double value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_DOUBLE_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putDouble(getUnsafeObject(), getCumulativeOffset(offsetBytes),
value);
@@ -206,7 +206,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putDoubleArray(final long offsetBytes, final double[] srcArray,
final int srcOffsetDoubles, final int lengthDoubles) {
final long copyBytes = ((long) lengthDoubles) << DOUBLE_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
checkBounds(srcOffsetDoubles, lengthDoubles, srcArray.length);
@@ -221,7 +221,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public void putFloat(final long offsetBytes, final float value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_FLOAT_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putFloat(getUnsafeObject(), getCumulativeOffset(offsetBytes),
value);
@@ -231,7 +231,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putFloatArray(final long offsetBytes, final float[] srcArray,
final int srcOffsetFloats, final int lengthFloats) {
final long copyBytes = ((long) lengthFloats) << FLOAT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
checkBounds(srcOffsetFloats, lengthFloats, srcArray.length);
@@ -253,7 +253,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putIntArray(final long offsetBytes, final int[] srcArray, final
int srcOffsetInts,
final int lengthInts) {
final long copyBytes = ((long) lengthInts) << INT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
checkBounds(srcOffsetInts, lengthInts, srcArray.length);
@@ -275,7 +275,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putLongArray(final long offsetBytes, final long[] srcArray,
final int srcOffsetLongs,
final int lengthLongs) {
final long copyBytes = ((long) lengthLongs) << LONG_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
checkBounds(srcOffsetLongs, lengthLongs, srcArray.length);
@@ -297,7 +297,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putShortArray(final long offsetBytes, final short[] srcArray,
final int srcOffsetShorts, final int lengthShorts) {
final long copyBytes = ((long) lengthShorts) << SHORT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
checkBounds(srcOffsetShorts, lengthShorts, srcArray.length);
@@ -313,7 +313,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
//Atomic Write Methods
@Override
public long getAndAddLong(final long offsetBytes, final long delta) { //JDK
8+
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
checkWritable();
final long addr = getCumulativeOffset(offsetBytes);
@@ -322,7 +322,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public long getAndSetLong(final long offsetBytes, final long newValue) {
//JDK 8+
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
checkWritable();
final long addr = getCumulativeOffset(offsetBytes);
@@ -331,7 +331,7 @@ abstract class NativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public boolean compareAndSwapLong(final long offsetBytes, final long expect,
final long update) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
checkWritable();
return unsafe.compareAndSwapLong(
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
index fe8a04d..fd5b1c1 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
@@ -69,7 +69,7 @@ abstract class NonNativeWritableBufferImpl extends
BaseWritableBufferImpl {
@Override
public double getDouble(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_DOUBLE_INDEX_SCALE, capacityBytes_);
return Double.longBitsToDouble(
Long.reverseBytes(unsafe.getLong(getUnsafeObject(),
getCumulativeOffset(offsetBytes))));
@@ -95,7 +95,7 @@ abstract class NonNativeWritableBufferImpl extends
BaseWritableBufferImpl {
@Override
public float getFloat(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_FLOAT_INDEX_SCALE, capacityBytes_);
return Float.intBitsToFloat(
Integer.reverseBytes(unsafe.getInt(getUnsafeObject(),
getCumulativeOffset(offsetBytes))));
@@ -199,7 +199,7 @@ abstract class NonNativeWritableBufferImpl extends
BaseWritableBufferImpl {
@Override
public void putDouble(final long offsetBytes, final double value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_DOUBLE_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putLong(getUnsafeObject(), getCumulativeOffset(offsetBytes),
@@ -226,7 +226,7 @@ abstract class NonNativeWritableBufferImpl extends
BaseWritableBufferImpl {
@Override
public void putFloat(final long offsetBytes, final float value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_FLOAT_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putInt(getUnsafeObject(), getCumulativeOffset(offsetBytes),
diff --git
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
index 1d5cbda..7e15cbb 100644
---
a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
+++
b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
@@ -50,7 +50,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getCharArray(final long offsetBytes, final char[] dstArray,
final int dstOffsetChars,
final int lengthChars) {
final long copyBytes = ((long) lengthChars) << CHAR_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
CompareAndCopy.getNonNativeChars(getUnsafeObject(),
getCumulativeOffset(offsetBytes),
copyBytes, dstArray, dstOffsetChars, lengthChars);
@@ -58,7 +58,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public double getDouble(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_DOUBLE_INDEX_SCALE, capacityBytes_);
return Double.longBitsToDouble(
Long.reverseBytes(unsafe.getLong(getUnsafeObject(),
getCumulativeOffset(offsetBytes))));
@@ -68,7 +68,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getDoubleArray(final long offsetBytes, final double[] dstArray,
final int dstOffsetDoubles, final int lengthDoubles) {
final long copyBytes = ((long) lengthDoubles) << DOUBLE_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
CompareAndCopy.getNonNativeDoubles(getUnsafeObject(),
getCumulativeOffset(offsetBytes),
copyBytes, dstArray, dstOffsetDoubles, lengthDoubles);
@@ -76,7 +76,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public float getFloat(final long offsetBytes) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_FLOAT_INDEX_SCALE, capacityBytes_);
return Float.intBitsToFloat(
Integer.reverseBytes(unsafe.getInt(getUnsafeObject(),
getCumulativeOffset(offsetBytes))));
@@ -86,7 +86,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getFloatArray(final long offsetBytes, final float[] dstArray,
final int dstOffsetFloats, final int lengthFloats) {
final long copyBytes = ((long) lengthFloats) << FLOAT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
CompareAndCopy.getNonNativeFloats(getUnsafeObject(),
getCumulativeOffset(offsetBytes),
copyBytes, dstArray, dstOffsetFloats, lengthFloats);
@@ -101,7 +101,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getIntArray(final long offsetBytes, final int[] dstArray, final
int dstOffsetInts,
final int lengthInts) {
final long copyBytes = ((long) lengthInts) << INT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
CompareAndCopy.getNonNativeInts(getUnsafeObject(),
getCumulativeOffset(offsetBytes), copyBytes,
dstArray, dstOffsetInts, lengthInts);
@@ -116,7 +116,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getLongArray(final long offsetBytes, final long[] dstArray,
final int dstOffsetLongs, final int lengthLongs) {
final long copyBytes = ((long) lengthLongs) << LONG_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
CompareAndCopy.getNonNativeLongs(getUnsafeObject(),
getCumulativeOffset(offsetBytes), copyBytes,
dstArray, dstOffsetLongs, lengthLongs);
@@ -131,7 +131,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void getShortArray(final long offsetBytes, final short[] dstArray,
final int dstOffsetShorts, final int lengthShorts) {
final long copyBytes = ((long) lengthShorts) << SHORT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
CompareAndCopy.getNonNativeShorts(getUnsafeObject(),
getCumulativeOffset(offsetBytes),
copyBytes, dstArray, dstOffsetShorts, lengthShorts);
@@ -147,7 +147,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putCharArray(final long offsetBytes, final char[] srcArray,
final int srcOffsetChars,
final int lengthChars) {
final long copyBytes = ((long) lengthChars) << CHAR_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
CompareAndCopy.putNonNativeChars(srcArray, srcOffsetChars, lengthChars,
copyBytes,
@@ -156,7 +156,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public void putDouble(final long offsetBytes, final double value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_DOUBLE_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putLong(getUnsafeObject(), getCumulativeOffset(offsetBytes),
@@ -167,7 +167,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putDoubleArray(final long offsetBytes, final double[] srcArray,
final int srcOffsetDoubles, final int lengthDoubles) {
final long copyBytes = ((long) lengthDoubles) << DOUBLE_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
CompareAndCopy.putNonNativeDoubles(srcArray, srcOffsetDoubles,
lengthDoubles, copyBytes,
@@ -176,7 +176,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public void putFloat(final long offsetBytes, final float value) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_FLOAT_INDEX_SCALE, capacityBytes_);
checkWritable();
unsafe.putInt(getUnsafeObject(), getCumulativeOffset(offsetBytes),
@@ -187,7 +187,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putFloatArray(final long offsetBytes, final float[] srcArray,
final int srcOffsetFloats, final int lengthFloats) {
final long copyBytes = ((long) lengthFloats) << FLOAT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
CompareAndCopy.putNonNativeFloats(srcArray, srcOffsetFloats, lengthFloats,
copyBytes,
@@ -203,7 +203,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putIntArray(final long offsetBytes, final int[] srcArray, final
int srcOffsetInts,
final int lengthInts) {
final long copyBytes = ((long) lengthInts) << INT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
CompareAndCopy.putNonNativeInts(srcArray, srcOffsetInts, lengthInts,
copyBytes,
@@ -219,7 +219,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putLongArray(final long offsetBytes, final long[] srcArray,
final int srcOffsetLongs,
final int lengthLongs) {
final long copyBytes = ((long) lengthLongs) << LONG_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
CompareAndCopy.putNonNativeLongs(srcArray, srcOffsetLongs, lengthLongs,
copyBytes,
@@ -235,7 +235,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
public void putShortArray(final long offsetBytes, final short[] srcArray,
final int srcOffsetShorts, final int lengthShorts) {
final long copyBytes = ((long) lengthShorts) << SHORT_SHIFT;
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, copyBytes, capacityBytes_);
checkWritable();
CompareAndCopy.putNonNativeShorts(srcArray, srcOffsetShorts, lengthShorts,
copyBytes,
@@ -245,7 +245,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
//Atomic Write Methods
@Override
public long getAndAddLong(final long offsetBytes, final long delta) { //JDK
8+
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
checkWritable();
final long addr = getCumulativeOffset(offsetBytes);
@@ -262,7 +262,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public long getAndSetLong(final long offsetBytes, final long newValue) {
//JDK 8+
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
checkWritable();
final long addr = getCumulativeOffset(offsetBytes);
@@ -272,7 +272,7 @@ abstract class NonNativeWritableMemoryImpl extends
BaseWritableMemoryImpl {
@Override
public boolean compareAndSwapLong(final long offsetBytes, final long expect,
final long update) {
- checkValid();
+ checkAlive();
checkBounds(offsetBytes, ARRAY_LONG_INDEX_SCALE, capacityBytes_);
checkWritable();
return unsafe.compareAndSwapLong(getUnsafeObject(),
getCumulativeOffset(offsetBytes),
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
index c5cb6d5..641dd5a 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
@@ -44,12 +44,12 @@ public class AllocateDirectMemoryTest {
assertEquals(wMem.getLong(i << 3), i);
}
//inside the TWR block the memory should be valid
- ((BaseStateImpl)wMem).checkValid();
+ ((BaseStateImpl)wMem).checkAlive();
//OK
}
//The TWR block has exited, so the memory should be invalid
try {
- ((BaseStateImpl)wMem).checkValid();
+ ((BaseStateImpl)wMem).checkAlive();
fail();
} catch (final RuntimeException e) {
//OK
@@ -66,7 +66,7 @@ public class AllocateDirectMemoryTest {
origWmem.putLong(i << 3, i);
assertEquals(origWmem.getLong(i << 3), i);
}
- println(origWmem.toHexString("Test", 0, 32 * 8));
+ println(origWmem.toHexString("Test", 0, 32 * 8, true));
int longs2 = 64;
int bytes2 = longs2 << 3;
@@ -77,7 +77,7 @@ public class AllocateDirectMemoryTest {
memReqSvr = origWmem.getMemoryRequestServer();
}
WritableMemory newWmem = memReqSvr.request(origWmem, bytes2);
- assertFalse(newWmem.isDirect()); //on heap by default
+ assertFalse(newWmem.isDirectResource()); //on heap by default
for (int i = 0; i < longs2; i++) {
newWmem.putLong(i << 3, i);
assertEquals(newWmem.getLong(i << 3), i);
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java
index abf330a..f857210 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java
@@ -54,7 +54,7 @@ public class Buffer2Test {
assertEquals(bb.get(), buffer.getByte());
}
- assertEquals(true, buffer.hasByteBuffer());
+ assertEquals(true, buffer.isByteBufferResource());
}
@Test
@@ -72,7 +72,7 @@ public class Buffer2Test {
while (buffer.hasRemaining()) {
assertEquals(bb.get(), buffer.getByte());
}
- assertEquals(true, buffer.hasByteBuffer());
+ assertEquals(true, buffer.isByteBufferResource());
}
@Test
@@ -94,7 +94,7 @@ public class Buffer2Test {
buffer.getByteArray(copyByteArray, 0, 64);
assertEquals(byteArray, copyByteArray);
- assertEquals(false, buffer.hasByteBuffer());
+ assertEquals(false, buffer.isByteBufferResource());
}
@Test
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java
index 614b10a..2424119 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java
@@ -222,8 +222,8 @@ public class BufferTest {
for (int i = 0; i < 64; i++) {
assertEquals(buf.getByte(), 64 + i);
}
- buf.toHexString("slice", 0, slice.capacity());
- //println(s);
+ String s = buf.toHexString("slice", 0, slice.capacity(), true);
+ println(s);
}
@Test
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/DruidIssue11544Test.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/DruidIssue11544Test.java
index b48b8ca..17a951a 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/DruidIssue11544Test.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/DruidIssue11544Test.java
@@ -61,7 +61,7 @@ public class DruidIssue11544Test {
//Wrap bb into WritableMemory
WritableMemory mem1 = WritableMemory.writableWrap(bb);
- assertTrue(mem1.isDirect()); //confirm mem1 is off-heap
+ assertTrue(mem1.isDirectResource()); //confirm mem1 is off-heap
//Acquire the DefaultMemoryRequestServer
//NOTE: it is a policy decision to allow the DefaultMemoryServer to be set
as a default.
@@ -77,7 +77,7 @@ public class DruidIssue11544Test {
WritableMemory mem2 = svr.request(mem1, size2);
//Confirm that mem2 is on the heap (the default) and 2X size1
- assertFalse(mem2.isDirect());
+ assertFalse(mem2.isDirectResource());
assertEquals(mem2.getCapacity(), size2);
//Move data to new memory
@@ -94,7 +94,7 @@ public class DruidIssue11544Test {
WritableMemory mem3 = svr.request(mem2, size3);
//Confirm that mem3 is still on the heap and 2X of size2
- assertFalse(mem3.isDirect());
+ assertFalse(mem3.isDirectResource());
assertEquals(mem3.getCapacity(), size3);
//Move data to new memory
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java
index 528bde9..2324672 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java
@@ -77,9 +77,7 @@ public class ExampleMemoryRequestServerTest {
@Test(expectedExceptions = IllegalArgumentException.class)
public void checkZeroCapacity() throws Exception {
ExampleMemoryRequestServer svr = new ExampleMemoryRequestServer();
- try (WritableHandle wh = WritableMemory.allocateDirect(0,
NATIVE_BYTE_ORDER, svr)) {
-
- }
+ try (WritableHandle wh = WritableMemory.allocateDirect(0,
NATIVE_BYTE_ORDER, svr)) { }
}
/**
@@ -101,7 +99,7 @@ public class ExampleMemoryRequestServerTest {
void process() {
long cap1 = smallMem.getCapacity();
smallMem.fill((byte) 1); //fill it, but not big enough
- println(smallMem.toHexString("Small", 0, (int)cap1));
+ println(smallMem.toHexString("Small", 0, (int)cap1, true));
WritableMemory bigMem = svr.request(smallMem, 2 * cap1); //get bigger mem
long cap2 = bigMem.getCapacity();
@@ -109,7 +107,7 @@ public class ExampleMemoryRequestServerTest {
svr.requestClose(smallMem, bigMem); //done with smallMem, release it
bigMem.fill(cap1, cap1, (byte) 2); //fill the rest of bigMem, still
not big enough
- println(bigMem.toHexString("Big", 0, (int)cap2));
+ println(bigMem.toHexString("Big", 0, (int)cap2, true));
WritableMemory giantMem = svr.request(bigMem, 2 * cap2); //get giant mem
long cap3 = giantMem.getCapacity();
@@ -117,7 +115,7 @@ public class ExampleMemoryRequestServerTest {
svr.requestClose(bigMem, giantMem); //done with bigMem, release it
giantMem.fill(cap2, cap2, (byte) 3); //fill the rest of giantMem
- println(giantMem.toHexString("Giant", 0, (int)cap3));
+ println(giantMem.toHexString("Giant", 0, (int)cap3, true));
svr.requestClose(giantMem, null); //done with giantMem,
release it
}
}
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java
index 0defa50..71b184a 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java
@@ -65,16 +65,16 @@ public class LeafImplTest {
WritableMemory memNO = wdh.getWritable();
memNO.putShort(0, (short) 1);
assertNull(((BaseStateImpl)memNO).getUnsafeObject());
- assertTrue(memNO.isDirect());
- checkCombinations(memNO, off, cap, memNO.isDirect(), NATIVE_BYTE_ORDER,
false, true);
+ assertTrue(memNO.isDirectResource());
+ checkCombinations(memNO, off, cap, memNO.isDirectResource(),
NATIVE_BYTE_ORDER, false, true);
}
// Off Heap, Non Native order, No ByteBuffer, has MemReqSvr
try (WritableHandle wdh = WritableMemory.allocateDirect(cap,
NON_NATIVE_BYTE_ORDER, dummyMemReqSvr)) {
WritableMemory memNNO = wdh.getWritable();
memNNO.putShort(0, (short) 1);
assertNull(((BaseStateImpl)memNNO).getUnsafeObject());
- assertTrue(memNNO.isDirect());
- checkCombinations(memNNO, off, cap, memNNO.isDirect(),
NON_NATIVE_BYTE_ORDER, false, true);
+ assertTrue(memNNO.isDirectResource());
+ checkCombinations(memNNO, off, cap, memNNO.isDirectResource(),
NON_NATIVE_BYTE_ORDER, false, true);
}
}
@@ -87,36 +87,36 @@ public class LeafImplTest {
bb.order(NATIVE_BYTE_ORDER);
bb.putShort(0, (short) 1);
WritableMemory mem = WritableMemory.writableWrap(bb, NATIVE_BYTE_ORDER,
dummyMemReqSvr);
- assertEquals(bb.isDirect(), mem.isDirect());
+ assertEquals(bb.isDirect(), mem.isDirectResource());
assertNotNull(((BaseStateImpl)mem).getUnsafeObject());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(), true,
true);
+ checkCombinations(mem, off, cap, mem.isDirectResource(),
mem.getByteOrder(), true, true);
//BB off heap, native order, has ByteBuffer, has MemReqSvr
ByteBuffer dbb = ByteBuffer.allocateDirect((int)cap);
dbb.order(NATIVE_BYTE_ORDER);
dbb.putShort(0, (short) 1);
mem = WritableMemory.writableWrap(dbb, NATIVE_BYTE_ORDER, dummyMemReqSvr);
- assertEquals(dbb.isDirect(), mem.isDirect());
+ assertEquals(dbb.isDirect(), mem.isDirectResource());
assertNull(((BaseStateImpl)mem).getUnsafeObject());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(),
true, true);
+ checkCombinations(mem, off, cap, mem.isDirectResource(),
mem.getByteOrder(), true, true);
//BB on heap, non native order, has ByteBuffer, has MemReqSvr
bb = ByteBuffer.allocate((int)cap);
bb.order(NON_NATIVE_BYTE_ORDER);
bb.putShort(0, (short) 1);
mem = WritableMemory.writableWrap(bb, NON_NATIVE_BYTE_ORDER,
dummyMemReqSvr);
- assertEquals(bb.isDirect(), mem.isDirect());
+ assertEquals(bb.isDirect(), mem.isDirectResource());
assertNotNull(((BaseStateImpl)mem).getUnsafeObject());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(), true,
true);
+ checkCombinations(mem, off, cap, mem.isDirectResource(),
mem.getByteOrder(), true, true);
//BB off heap, non native order, has ByteBuffer, has MemReqSvr
dbb = ByteBuffer.allocateDirect((int)cap);
dbb.order(NON_NATIVE_BYTE_ORDER);
dbb.putShort(0, (short) 1);
mem = WritableMemory.writableWrap(dbb, NON_NATIVE_BYTE_ORDER,
dummyMemReqSvr);
- assertEquals(dbb.isDirect(), mem.isDirect());
+ assertEquals(dbb.isDirect(), mem.isDirectResource());
assertNull(((BaseStateImpl)mem).getUnsafeObject());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(),
true, true);
+ checkCombinations(mem, off, cap, mem.isDirectResource(),
mem.getByteOrder(), true, true);
}
@Test
@@ -140,16 +140,16 @@ public class LeafImplTest {
WritableMemory memNO = wmh.getWritable();
memNO.putShort(0, (short) 1);
assertNull(((BaseStateImpl)memNO).getUnsafeObject());
- assertTrue(memNO.isDirect());
- checkCombinations(memNO, off, cap, memNO.isDirect(), NATIVE_BYTE_ORDER,
false, false);
+ assertTrue(memNO.isDirectResource());
+ checkCombinations(memNO, off, cap, memNO.isDirectResource(),
NATIVE_BYTE_ORDER, false, false);
}
// Off heap, Non Native order, No ByteBuffer, no MemReqSvr
try (WritableMapHandle wmh = WritableMemory.writableMap(file, off, cap,
NON_NATIVE_BYTE_ORDER)) {
WritableMemory memNNO = wmh.getWritable();
memNNO.putShort(0, (short) 1);
assertNull(((BaseStateImpl)memNNO).getUnsafeObject());
- assertTrue(memNNO.isDirect());
- checkCombinations(memNNO, off, cap, memNNO.isDirect(),
NON_NATIVE_BYTE_ORDER, false, false);
+ assertTrue(memNNO.isDirectResource());
+ checkCombinations(memNNO, off, cap, memNNO.isDirectResource(),
NON_NATIVE_BYTE_ORDER, false, false);
}
}
@@ -161,14 +161,14 @@ public class LeafImplTest {
WritableMemory memNO = WritableMemory.allocate((int)cap); //assumes
NATIVE_BYTE_ORDER
memNO.putShort(0, (short) 1);
assertNotNull(((BaseStateImpl)memNO).getUnsafeObject());
- assertFalse(memNO.isDirect());
- checkCombinations(memNO, off, cap, memNO.isDirect(), NATIVE_BYTE_ORDER,
false, false);
+ assertFalse(memNO.isDirectResource());
+ checkCombinations(memNO, off, cap, memNO.isDirectResource(),
NATIVE_BYTE_ORDER, false, false);
// On Heap, Non-native order, No ByteBuffer, No MemReqSvr
WritableMemory memNNO = WritableMemory.allocate((int)cap,
NON_NATIVE_BYTE_ORDER);
memNNO.putShort(0, (short) 1);
assertNotNull(((BaseStateImpl)memNNO).getUnsafeObject());
- assertFalse(memNNO.isDirect());
- checkCombinations(memNNO, off, cap, memNNO.isDirect(),
NON_NATIVE_BYTE_ORDER, false, false);
+ assertFalse(memNNO.isDirectResource());
+ checkCombinations(memNNO, off, cap, memNNO.isDirectResource(),
NON_NATIVE_BYTE_ORDER, false, false);
}
private static void checkCombinations(WritableMemory mem, long off, long cap,
@@ -190,10 +190,10 @@ public class LeafImplTest {
Object obj = ((BaseStateImpl)mem).getUnsafeObject();
if (direct) {
- assertTrue(mem.isDirect());
+ assertTrue(mem.isDirectResource());
assertNull(obj);
} else {
- assertFalse(mem.isDirect());
+ assertFalse(mem.isDirectResource());
assertNotNull(obj);
}
@@ -215,10 +215,10 @@ public class LeafImplTest {
obj = ((BaseStateImpl)buf).getUnsafeObject();
if (direct) {
- assertTrue(buf.isDirect());
+ assertTrue(buf.isDirectResource());
assertNull(obj);
} else {
- assertFalse(buf.isDirect());
+ assertFalse(buf.isDirectResource());
assertNotNull(obj);
}
@@ -240,10 +240,10 @@ public class LeafImplTest {
obj = ((BaseStateImpl)nnMem).getUnsafeObject();
if (direct) {
- assertTrue(nnMem.isDirect());
+ assertTrue(nnMem.isDirectResource());
assertNull(obj);
} else {
- assertFalse(nnMem.isDirect());
+ assertFalse(nnMem.isDirectResource());
assertNotNull(obj);
}
@@ -265,14 +265,39 @@ public class LeafImplTest {
obj = ((BaseStateImpl)nnBuf).getUnsafeObject();
if (direct) {
- assertTrue(nnBuf.isDirect());
+ assertTrue(nnBuf.isDirectResource());
assertNull(obj);
} else {
- assertFalse(nnBuf.isDirect());
+ assertFalse(nnBuf.isDirectResource());
assertNotNull(obj);
}
assertTrue(nnBuf.isAlive() == true);
}
+ @Test
+ public void confirmByteBufferView() {
+ long le = 0X0807060504030201L;
+ long be = 0X0102030405060708L;
+ ByteBuffer bb = ByteBuffer.allocate(128);
+ bb.order(NATIVE_BYTE_ORDER);
+ bb.putLong(0, le);
+ WritableMemory mem = WritableMemory.writableWrap(bb, NATIVE_BYTE_ORDER,
dummyMemReqSvr);
+ assertEquals(le, mem.getLong(0)); //mem reads what BB put
+ mem.putLong(0, be);
+ assertEquals(be, bb.getLong(0)); //BB reads what mem put
+ //This confirms that mem and BB both have a R/W view of the same backing
store
+
+ //Changing the byte order never changes what is already in the backing
store
+ //It will change how bytes in the store are interpreted going in or coming
out.
+ bb.order(NON_NATIVE_BYTE_ORDER);
+ assertEquals(le, bb.getLong(0)); //converts to LE on read;
+ assertEquals(be, mem.getLong(0)); //backing memory is still BE!
+
+ WritableMemory mem2 = WritableMemory.writableWrap(bb,
NON_NATIVE_BYTE_ORDER, dummyMemReqSvr);
+ assertEquals(le, mem2.getLong(0)); //converts to LE on read;
+ mem2.putLong(0, le); //should put it as BE
+ assertEquals(le, mem2.getLong(0)); //converts to LE on read;
+ }
+
}
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
index 7504b62..147b31b 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
@@ -225,8 +225,8 @@ public class MemoryTest {
for (int i = 0; i < 64; i++) {
assertEquals(mem.getByte(i), 64 + i);
}
- mem.toHexString("slice", 0, slice.capacity());
- //println(s);
+ String s = mem.toHexString("slice", 0, slice.capacity(), true);
+ println(s);
}
@Test
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
index 7f5572f..d3c7e6d 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
@@ -76,7 +76,7 @@ public class NativeWritableBufferImplTest {
for (int i=0; i<8; i++) {
assertEquals(dstArray[i], srcArray[i]);
}
- assertFalse(buf.isDirect());
+ assertFalse(buf.isDirectResource());
}
@Test
@@ -211,7 +211,7 @@ public class NativeWritableBufferImplTest {
try (WritableHandle wrh = WritableMemory.allocateDirect(memCapacity)) {
WritableMemory wmem = wrh.getWritable();
WritableBuffer wbuf = wmem.asWritableBuffer();
- wbuf.toHexString("Force BoundsException", memCapacity, 8);
+ wbuf.toHexString("Force BoundsException", memCapacity, 8, true);
} catch (BoundsException e) {
//ok
}
@@ -257,7 +257,7 @@ public class NativeWritableBufferImplTest {
assertEquals(wbuf.getByte(), byteBuf.get(i));
}
- assertTrue(wbuf.hasByteBuffer());
+ assertTrue(wbuf.isByteBufferResource());
ByteBuffer byteBuf2 = ((BaseStateImpl)wbuf).getByteBuffer();
assertEquals(byteBuf2, byteBuf);
//println( mem.toHexString("HeapBB", 0, memCapacity));
@@ -348,11 +348,11 @@ public class NativeWritableBufferImplTest {
public void checkIsDirect() throws Exception {
int memCapacity = 64;
WritableBuffer mem =
WritableMemory.allocate(memCapacity).asWritableBuffer();
- assertFalse(mem.isDirect());
+ assertFalse(mem.isDirectResource());
try (WritableHandle wrh = WritableMemory.allocateDirect(memCapacity)) {
WritableMemory mem2 = wrh.getWritable();
WritableBuffer wbuf = mem2.asWritableBuffer();
- assertTrue(wbuf.isDirect());
+ assertTrue(wbuf.isDirectResource());
wrh.close(); //immediate close
}
}
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
index 1ea90f6..ee61ce9 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
@@ -74,7 +74,7 @@ public class NativeWritableMemoryImplTest {
for (int i=0; i<8; i++) {
assertEquals(dstArray[i], srcArray[i]);
}
- assertFalse(mem.isDirect());
+ assertFalse(mem.isDirectResource());
}
@Test
@@ -208,7 +208,7 @@ public class NativeWritableMemoryImplTest {
int memCapacity = 64;
try (WritableHandle wrh = WritableMemory.allocateDirect(memCapacity)) {
WritableMemory mem = wrh.getWritable();
- mem.toHexString("Force Bounds Error", memCapacity, 8);
+ mem.toHexString("Force Bounds Error", memCapacity, 8, true);
} catch (BoundsException e) {
//ok
}
@@ -452,7 +452,7 @@ public class NativeWritableMemoryImplTest {
assertEquals(wmem.getByte(i), byteBuf.get(i));
}
- assertTrue(wmem.hasByteBuffer());
+ assertTrue(wmem.isByteBufferResource());
ByteBuffer byteBuf2 = ((BaseStateImpl)wmem).getByteBuffer();
assertEquals(byteBuf2, byteBuf);
//println( mem.toHexString("HeapBB", 0, memCapacity));
@@ -541,10 +541,10 @@ public class NativeWritableMemoryImplTest {
public void checkIsDirect() throws Exception {
int memCapacity = 64;
WritableMemory mem = WritableMemory.allocate(memCapacity);
- assertFalse(mem.isDirect());
+ assertFalse(mem.isDirectResource());
try (WritableHandle wrh = WritableMemory.allocateDirect(memCapacity)) {
mem = wrh.getWritable();
- assertTrue(mem.isDirect());
+ assertTrue(mem.isDirectResource());
wrh.close();
}
}
diff --git
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java
index 57c2e62..575ba81 100644
---
a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java
+++
b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java
@@ -48,11 +48,11 @@ public class SpecificLeafTest {
bb.order(NATIVE_BYTE_ORDER);
Memory mem = Memory.wrap(bb).region(0, bytes, NATIVE_BYTE_ORDER);
- assertTrue(((BaseStateImpl)mem).isByteBufferType());
+ assertTrue(((BaseStateImpl)mem).isByteBufferResource());
assertTrue(mem.isReadOnly());
- assertTrue(((BaseStateImpl)mem).isMemoryType());
- assertFalse(((BaseStateImpl)mem).isDirectType());
- assertFalse(((BaseStateImpl)mem).isMapType());
+ assertTrue(((BaseStateImpl)mem).isMemoryApi());
+ assertFalse(((BaseStateImpl)mem).isDirectResource());
+ assertFalse(((BaseStateImpl)mem).isMemoryMappedFileResource());
checkCrossLeafTypeIds(mem);
Buffer buf = mem.asBuffer().region(0, bytes, NATIVE_BYTE_ORDER);
assertEquals(buf.getByteOrder(), NATIVE_BYTE_ORDER);
@@ -62,11 +62,11 @@ public class SpecificLeafTest {
Buffer buf2 = mem2.asBuffer().region(0, bytes, NON_NATIVE_BYTE_ORDER);
Buffer buf3 = buf2.duplicate();
- assertTrue(((BaseStateImpl)mem).isRegionType());
- assertTrue(((BaseStateImpl)mem2).isRegionType());
- assertTrue(((BaseStateImpl)buf).isRegionType());
- assertTrue(((BaseStateImpl)buf2).isRegionType());
- assertTrue(((BaseStateImpl)buf3).isDuplicateType());
+ assertTrue(((BaseStateImpl)mem).isRegionView());
+ assertTrue(((BaseStateImpl)mem2).isRegionView());
+ assertTrue(((BaseStateImpl)buf).isRegionView());
+ assertTrue(((BaseStateImpl)buf2).isRegionView());
+ assertTrue(((BaseStateImpl)buf3).isDuplicateBufferView());
}
@Test
@@ -74,7 +74,7 @@ public class SpecificLeafTest {
int bytes = 128;
try (WritableHandle h = WritableMemory.allocateDirect(bytes)) {
WritableMemory wmem = h.getWritable(); //native mem
- assertTrue(((BaseStateImpl)wmem).isDirectType());
+ assertTrue(((BaseStateImpl)wmem).isDirectResource());
assertFalse(wmem.isReadOnly());
checkCrossLeafTypeIds(wmem);
WritableMemory nnwmem = wmem.writableRegion(0, bytes,
NON_NATIVE_BYTE_ORDER);
@@ -87,12 +87,12 @@ public class SpecificLeafTest {
Buffer buf2 = mem2.asBuffer().region(0, bytes, NON_NATIVE_BYTE_ORDER);
Buffer buf3 = buf2.duplicate();
- assertTrue(((BaseStateImpl)mem).isRegionType());
- assertTrue(((BaseStateImpl)mem2).isRegionType());
- assertTrue(((BaseStateImpl)buf).isRegionType());
- assertTrue(((BaseStateImpl)buf2).isRegionType());
- assertTrue(((BaseStateImpl)buf3).isDuplicateType());
- assertTrue(((BaseStateImpl)mem).isMemoryType());
+ assertTrue(((BaseStateImpl)mem).isRegionView());
+ assertTrue(((BaseStateImpl)mem2).isRegionView());
+ assertTrue(((BaseStateImpl)buf).isRegionView());
+ assertTrue(((BaseStateImpl)buf2).isRegionView());
+ assertTrue(((BaseStateImpl)buf3).isDuplicateBufferView());
+ assertTrue(((BaseStateImpl)mem).isMemoryApi());
}
}
@@ -115,7 +115,7 @@ public class SpecificLeafTest {
try (WritableMapHandle h = WritableMemory.writableMap(file, 0L, bytes,
NATIVE_BYTE_ORDER)) {
WritableMemory mem = h.getWritable(); //native mem
- assertTrue(((BaseStateImpl)mem).isMapType());
+ assertTrue(((BaseStateImpl)mem).isMemoryMappedFileResource());
assertFalse(mem.isReadOnly());
checkCrossLeafTypeIds(mem);
Memory nnreg = mem.region(0, bytes, NON_NATIVE_BYTE_ORDER);
@@ -128,12 +128,12 @@ public class SpecificLeafTest {
Buffer buf2 = reg2.asBuffer().region(0, bytes, NON_NATIVE_BYTE_ORDER);
Buffer buf3 = buf2.duplicate();
- assertTrue(((BaseStateImpl)reg).isRegionType());
- assertTrue(((BaseStateImpl)reg2).isRegionType());
- assertTrue(((BaseStateImpl)buf).isRegionType());
- assertTrue(((BaseStateImpl)buf2).isRegionType());
- assertTrue(((BaseStateImpl)buf3).isDuplicateType());
- assertTrue(((BaseStateImpl)buf4).isDuplicateType());
+ assertTrue(((BaseStateImpl)reg).isRegionView());
+ assertTrue(((BaseStateImpl)reg2).isRegionView());
+ assertTrue(((BaseStateImpl)buf).isRegionView());
+ assertTrue(((BaseStateImpl)buf2).isRegionView());
+ assertTrue(((BaseStateImpl)buf3).isDuplicateBufferView());
+ assertTrue(((BaseStateImpl)buf4).isDuplicateBufferView());
}
}
@@ -141,8 +141,8 @@ public class SpecificLeafTest {
public void checkHeapLeafs() {
int bytes = 128;
Memory mem = Memory.wrap(new byte[bytes]);
- assertTrue(((BaseStateImpl)mem).isHeapType());
- assertTrue(((BaseStateImpl)mem).isReadOnlyType());
+ assertFalse(((BaseStateImpl)mem).isDirectResource());
+ assertTrue(((BaseStateImpl)mem).isReadOnly());
checkCrossLeafTypeIds(mem);
Memory nnreg = mem.region(0, bytes, NON_NATIVE_BYTE_ORDER);
@@ -154,47 +154,47 @@ public class SpecificLeafTest {
Buffer buf2 = reg2.asBuffer().region(0, bytes, NON_NATIVE_BYTE_ORDER);
Buffer buf3 = buf2.duplicate();
- assertFalse(((BaseStateImpl)mem).isRegionType());
- assertTrue(((BaseStateImpl)reg2).isRegionType());
- assertTrue(((BaseStateImpl)buf).isRegionType());
- assertTrue(((BaseStateImpl)buf2).isRegionType());
- assertTrue(((BaseStateImpl)buf3).isDuplicateType());
- assertTrue(((BaseStateImpl)buf4).isDuplicateType());
+ assertFalse(((BaseStateImpl)mem).isRegionView());
+ assertTrue(((BaseStateImpl)reg2).isRegionView());
+ assertTrue(((BaseStateImpl)buf).isRegionView());
+ assertTrue(((BaseStateImpl)buf2).isRegionView());
+ assertTrue(((BaseStateImpl)buf3).isDuplicateBufferView());
+ assertTrue(((BaseStateImpl)buf4).isDuplicateBufferView());
}
private static void checkCrossLeafTypeIds(Memory mem) {
Memory reg1 = mem.region(0, mem.getCapacity());
- assertTrue(((BaseStateImpl)reg1).isRegionType());
+ assertTrue(((BaseStateImpl)reg1).isRegionView());
Buffer buf1 = reg1.asBuffer();
- assertTrue(((BaseStateImpl)buf1).isRegionType());
- assertTrue(((BaseStateImpl)buf1).isBufferType());
+ assertTrue(((BaseStateImpl)buf1).isRegionView());
+ assertFalse(((BaseStateImpl)buf1).isMemoryApi());
assertTrue(buf1.isReadOnly());
Buffer buf2 = buf1.duplicate();
- assertTrue(((BaseStateImpl)buf2).isRegionType());
- assertTrue(((BaseStateImpl)buf2).isBufferType());
- assertTrue(((BaseStateImpl)buf2).isDuplicateType());
+ assertTrue(((BaseStateImpl)buf2).isRegionView());
+ assertFalse(((BaseStateImpl)buf1).isMemoryApi());
+ assertTrue(((BaseStateImpl)buf2).isDuplicateBufferView());
assertTrue(buf2.isReadOnly());
Memory mem2 = buf1.asMemory(); //
- assertTrue(((BaseStateImpl)mem2).isRegionType());
- assertFalse(((BaseStateImpl)mem2).isBufferType());
- assertFalse(((BaseStateImpl)mem2).isDuplicateType());
+ assertTrue(((BaseStateImpl)mem2).isRegionView());
+ assertFalse(((BaseStateImpl)buf1).isMemoryApi());
+ assertFalse(((BaseStateImpl)mem2).isDuplicateBufferView());
assertTrue(mem2.isReadOnly());
Buffer buf3 = buf1.duplicate(NON_NATIVE_BYTE_ORDER);
- assertTrue(((BaseStateImpl)buf3).isRegionType());
- assertTrue(((BaseStateImpl)buf3).isBufferType());
- assertTrue(((BaseStateImpl)buf3).isDuplicateType());
- assertTrue(((BaseStateImpl)buf3).isNonNativeType());
+ assertTrue(((BaseStateImpl)buf3).isRegionView());
+ assertFalse(((BaseStateImpl)buf1).isMemoryApi());
+ assertTrue(((BaseStateImpl)buf3).isDuplicateBufferView());
+ assertTrue(((BaseStateImpl)buf3).isNonNativeOrder());
assertTrue(buf3.isReadOnly());
Memory mem3 = buf3.asMemory();
- assertTrue(((BaseStateImpl)mem3).isRegionType());
- assertFalse(((BaseStateImpl)mem3).isBufferType());
- assertTrue(((BaseStateImpl)mem3).isDuplicateType());
- assertTrue(((BaseStateImpl)mem3).isNonNativeType());
+ assertTrue(((BaseStateImpl)mem3).isRegionView());
+ assertTrue(((BaseStateImpl)mem3).isMemoryApi());
+ assertTrue(((BaseStateImpl)mem3).isDuplicateBufferView());
+ assertTrue(((BaseStateImpl)mem3).isNonNativeOrder());
assertTrue(mem3.isReadOnly());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]