You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by le...@apache.org on 2023/01/13 21:57:17 UTC
[datasketches-memory] 03/03: Interim - passes all tests, almost done.
This is an automated email from the ASF dual-hosted git repository.
leerho pushed a commit to branch master_tempfix
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git
commit d54aceb3823948908d7cc88fe555693181b2e2ac
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Fri Jan 13 13:56:56 2023 -0800
Interim - passes all tests, almost done.
---
.../org/apache/datasketches/memory/BaseState.java | 55 ++++------------------
.../org/apache/datasketches/memory/Buffer.java | 2 +-
.../memory/DefaultMemoryRequestServer.java | 2 +-
.../apache/datasketches/memory/MurmurHash3v2.java | 4 +-
.../apache/datasketches/memory/WritableMemory.java | 4 +-
.../memory/internal/AccessByteBuffer.java | 10 ++--
.../internal/BBNonNativeWritableBufferImpl.java | 23 ++++-----
.../internal/BBNonNativeWritableMemoryImpl.java | 23 ++++-----
.../memory/internal/BBWritableBufferImpl.java | 31 ++++++------
.../memory/internal/BBWritableMemoryImpl.java | 28 +++++------
.../memory/internal/BaseStateImpl.java | 32 ++++++++++---
.../memory/internal/BaseWritableBufferImpl.java | 10 ++--
.../DirectNonNativeWritableBufferImpl.java | 17 ++-----
.../DirectNonNativeWritableMemoryImpl.java | 17 ++-----
.../memory/internal/DirectWritableBufferImpl.java | 17 ++-----
.../memory/internal/DirectWritableMemoryImpl.java | 17 ++-----
.../internal/HeapNonNativeWritableBufferImpl.java | 17 ++-----
.../internal/HeapNonNativeWritableMemoryImpl.java | 17 ++-----
.../memory/internal/HeapWritableBufferImpl.java | 17 ++-----
.../memory/internal/HeapWritableMemoryImpl.java | 17 ++-----
.../internal/MapNonNativeWritableBufferImpl.java | 17 ++-----
.../internal/MapNonNativeWritableMemoryImpl.java | 17 ++-----
.../memory/internal/MapWritableBufferImpl.java | 17 ++-----
.../memory/internal/MapWritableMemoryImpl.java | 16 ++-----
.../memory/internal/AaByteBufferTest.java | 53 ---------------------
.../internal/AllocateDirectMapMemoryTest.java | 20 ++++----
.../datasketches/memory/internal/Buffer2Test.java | 6 +--
.../datasketches/memory/internal/BufferTest.java | 19 ++++----
.../internal/ExampleMemoryRequestServerTest.java | 2 +-
.../datasketches/memory/internal/LeafImplTest.java | 16 +++----
.../datasketches/memory/internal/MemoryTest.java | 4 +-
.../internal/NativeWritableBufferImplTest.java | 13 +++--
.../internal/NativeWritableMemoryImplTest.java | 5 +-
.../internal/NonNativeWritableBufferImplTest.java | 8 ++--
.../internal/NonNativeWritableMemoryImplTest.java | 4 +-
.../memory/internal/WritableMemoryTest.java | 14 +++---
36 files changed, 204 insertions(+), 387 deletions(-)
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 2da19c4..aff64aa 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
@@ -115,55 +115,20 @@ public interface BaseState {
long getCapacity();
/**
- * Gets the cumulative offset in bytes of this object from the backing resource.
- * This offset may also include other offset components such as the native off-heap
- * memory address, DirectByteBuffer split offsets, region offsets, and unsafe arrayBaseOffsets.
- *
- * @return the cumulative offset in bytes of this object from the backing resource.
+ * Returns the offset of address zero of this object relative to the base address of the
+ * backing resource. This does not include the object header for heap arrays nor the initial
+ * offset of a memory-mapped file.
+ * @return the offset of address zero of this object relative to the base address of the
+ * backing resource.
*/
- long getCumulativeOffset();
-
- /**
- * Gets the cumulative offset in bytes of this object from the backing resource including the given
- * localOffsetBytes. This offset may also include other offset components such as the native off-heap
- * memory address, DirectByteBuffer split offsets, region offsets, and object arrayBaseOffsets.
- *
- * @param localOffsetBytes offset to be added to the cumulative offset.
- * @return the cumulative offset in bytes of this object from the backing resource including the
- * given offsetBytes.
- */
- default long getCumulativeOffset(long localOffsetBytes) {
- return getCumulativeOffset() + localOffsetBytes;
- }
-
- /**
- * Returns the offset of address zero of this object relative to the address zero of the
- * backing resource but not including the size of any Java object header.
- * This is only used when moving directly across to Memory, Buffer or Buffer duplicate.
- * @return the offset of address zero of this object relative to the address zero of the
- * backing resource but not including the size of any Java object header.
- */
- long getRegionOffset();
-
- /**
- * Returns the offset of address zero of this object relative to the address zero of the
- * backing resource plus the given offsetBytes but not including the size of any Java object
- * header.
- * @param offsetBytes the given offsetBytes
- * @return the offset of address zero of this object relative to the address zero of the
- * backing resource plus the given offsetBytes but not including the size of any Java object
- * header.
- */
- default long getRegionOffset(long offsetBytes) {
- return getRegionOffset() + offsetBytes;
- }
+ long getTotalOffset();
/**
- * Gets the current Type ByteOrder.
- * This may be different from the ByteOrder of the backing resource and of the Native Byte Order.
- * @return the current Type ByteOrder.
+ * Gets the current ByteOrder.
+ * This may be different from the ByteOrder of the backing resource and {@link ByteOrder#nativeOrder()}
+ * @return the current ByteOrder.
*/
- ByteOrder getTypeByteOrder();
+ ByteOrder getByteOrder();
/**
* Returns true if this object is backed by an on-heap primitive array
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java
index fe4a9c8..9c75edb 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java
@@ -143,7 +143,7 @@ public interface Buffer extends BaseBuffer {
* @return Memory
*/
default Memory asMemory() {
- return asMemory(getTypeByteOrder());
+ return asMemory(getByteOrder());
}
/**
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
index 51c2d2b..f8f828c 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
@@ -73,7 +73,7 @@ public final class DefaultMemoryRequestServer implements MemoryRequestServer {
*/
@Override
public WritableMemory request(final WritableMemory currentWritableMemory, final long capacityBytes) {
- final WritableMemory wmem = WritableMemory.allocate((int)capacityBytes, currentWritableMemory.getTypeByteOrder());
+ final WritableMemory wmem = WritableMemory.allocate((int)capacityBytes, currentWritableMemory.getByteOrder());
return wmem;
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java
index 67c4830..673490a 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.datasketches.memory.internal.UnsafeUtil.unsafe;
+import org.apache.datasketches.memory.internal.BaseStateImpl;
+
/**
* <p>The MurmurHash3 is a fast, non-cryptographic, 128-bit hash function that has
* excellent avalanche and 2-way bit independence properties.</p>
@@ -177,7 +179,7 @@ public final class MurmurHash3v2 {
if (uObj == null) {
throw new IllegalArgumentException("The backing resource of input mem is not on-heap.");
}
- long cumOff = mem.getCumulativeOffset(offsetBytes);
+ long cumOff = ((BaseStateImpl)mem).getCumulativeOffset(offsetBytes);
long h1 = seed;
long h2 = seed;
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
index feacb1b..d8fbd12 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
@@ -167,7 +167,7 @@ public interface WritableMemory extends Memory {
* @return a new <i>WritableMemory</i> representing the defined writable region.
*/
default WritableMemory writableRegion(long regionOffsetBytes, long capacityBytes) {
- return writableRegion(regionOffsetBytes, capacityBytes, getTypeByteOrder());
+ return writableRegion(regionOffsetBytes, capacityBytes, getByteOrder());
}
/**
@@ -201,7 +201,7 @@ public interface WritableMemory extends Memory {
* @return a new <i>WritableBuffer</i> with a view of this WritableMemory
*/
default WritableBuffer asWritableBuffer() {
- return asWritableBuffer(getTypeByteOrder());
+ return asWritableBuffer(getByteOrder());
}
/**
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java
index 71f30a7..9319e82 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java
@@ -47,6 +47,7 @@ final class AccessByteBuffer {
UnsafeUtil.getFieldOffset(java.nio.ByteBuffer.class, "offset");
final long nativeBaseOffset;
+ final long initialCumOffset;
final long capacityBytes;
final long offsetBytes;
final Object unsafeObj;
@@ -65,14 +66,17 @@ final class AccessByteBuffer {
if (direct) {
nativeBaseOffset = ((sun.nio.ch.DirectBuffer) byteBuf).address();
unsafeObj = null;
- offsetBytes = 0L; //address() is already adjusted for direct slices, so regionOffset = 0
+ offsetBytes = 0L; //address() is already adjusted for direct slices, so offset = 0
+ initialCumOffset = nativeBaseOffset;
} else {
nativeBaseOffset = 0L;
// ByteBuffer.arrayOffset() and ByteBuffer.array() throw ReadOnlyBufferException if
- // ByteBuffer is read-only. This uses reflection for both writable and read-only cases.
- // Includes the slice() offset for heap.
+ // ByteBuffer is read-only, so this uses reflection for both writable and read-only cases.
+ // OffsetBytes includes the slice() offset for heap. The original array is still there because
+ // this is a view.
offsetBytes = unsafe.getInt(byteBuf, BYTE_BUFFER_OFFSET_FIELD_OFFSET);
unsafeObj = unsafe.getObject(byteBuf, BYTE_BUFFER_HB_FIELD_OFFSET);
+ initialCumOffset = UnsafeUtil.getArrayBaseOffset(unsafeObj.getClass()) + offsetBytes;
}
}
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 cc4e834..a024f11 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
@@ -39,7 +39,6 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
BBNonNativeWritableBufferImpl(
@@ -58,7 +57,6 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | BYTEBUF | BUFFER | NONNATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
this.byteBuf = byteBuf;
}
@@ -69,19 +67,18 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | BUFFER | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new BBWritableBufferImpl(
- unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, byteBuf);
+ unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, byteBuf);
} else {
typeIdOut |= NONNATIVE;
return new BBNonNativeWritableBufferImpl(
- unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, byteBuf);
+ unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, byteBuf);
}
}
@@ -138,17 +135,11 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
@@ -161,4 +152,10 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
return unsafeObj;
}
+ @Override
+ public ByteBuffer getByteBuffer() {
+ assertValid();
+ return byteBuf;
+ }
+
}
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 6ea83f9..80604b4 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
@@ -39,7 +39,6 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
BBNonNativeWritableMemoryImpl(
@@ -58,7 +57,6 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | BYTEBUF | MEMORY | NONNATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
this.byteBuf = byteBuf;
}
@@ -69,19 +67,18 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MEMORY | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new BBWritableMemoryImpl(
- unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, byteBuf);
+ unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, byteBuf);
} else {
typeIdOut |= NONNATIVE;
return new BBNonNativeWritableMemoryImpl(
- unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, byteBuf);
+ unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, byteBuf);
}
}
@@ -123,17 +120,11 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
@@ -146,4 +137,10 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
return unsafeObj;
}
+ @Override
+ public ByteBuffer getByteBuffer() {
+ assertValid();
+ return byteBuf;
+ }
+
}
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 a05eedc..fcd47f3 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
@@ -32,14 +32,13 @@ import org.apache.datasketches.memory.WritableBuffer;
* @author Lee Rhodes
*/
final class BBWritableBufferImpl extends NativeWritableBufferImpl {
- private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
private final Object unsafeObj;
- private final long nativeBaseOffset;
- private final long offsetBytes;
+ private final long nativeBaseOffset; //raw off-heap address of root allocation (whether direct or ByteBuffer)
+ private final long offsetBytes; //from the root resource including original ByteBuffer position or split offset
private final long capacityBytes;
private final int typeId;
- private long cumOffsetBytes;
- private long regionOffsetBytes;
+ private long cumOffsetBytes; //includes array header if heap and nativeBaseOffset if off-heap
private final MemoryRequestServer memReqSvr;
BBWritableBufferImpl(
@@ -58,7 +57,6 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | BYTEBUF | BUFFER | NATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
this.byteBuf = byteBuf;
}
@@ -69,19 +67,18 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | BUFFER | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new BBWritableBufferImpl(
- unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, byteBuf);
+ unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, byteBuf);
} else {
typeIdOut |= NONNATIVE;
return new BBNonNativeWritableBufferImpl(
- unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, byteBuf);
+ unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, byteBuf);
}
}
@@ -138,17 +135,11 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
@@ -161,4 +152,10 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
return unsafeObj;
}
+ @Override
+ public ByteBuffer getByteBuffer() {
+ assertValid();
+ return byteBuf;
+ }
+
}
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 9c0cf14..c80bcef 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
@@ -34,12 +34,11 @@ import org.apache.datasketches.memory.WritableMemory;
final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
private final Object unsafeObj;
- private final long nativeBaseOffset;
- private final long offsetBytes;
+ private final long nativeBaseOffset; //raw off-heap address of root allocation (whether direct or ByteBuffer)
+ private final long offsetBytes; //from the root resource including original ByteBuffer position or region offset
private final long capacityBytes;
private final int typeId;
- private long cumOffsetBytes;
- private long regionOffsetBytes;
+ private long cumOffsetBytes; //includes array header if heap and nativeBaseOffset if off-heap
private final MemoryRequestServer memReqSvr;
BBWritableMemoryImpl(
@@ -58,7 +57,6 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | BYTEBUF | MEMORY | NATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
this.byteBuf = byteBuf;
}
@@ -69,19 +67,18 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MEMORY | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new BBWritableMemoryImpl(
- unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, byteBuf);
+ unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, byteBuf);
} else {
typeIdOut |= NONNATIVE;
return new BBNonNativeWritableMemoryImpl(
- unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, byteBuf);
+ unsafeObj, nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, byteBuf);
}
}
@@ -123,17 +120,11 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
@@ -146,4 +137,9 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
return unsafeObj;
}
+ @Override
+ public ByteBuffer getByteBuffer() {
+ assertValid();
+ return byteBuf;
+ }
}
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 a63343f..fa75de8 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
@@ -141,6 +141,28 @@ public abstract class BaseStateImpl implements BaseState {
return null;
}
+ /**
+ * Gets the cumulative offset in bytes of this object from the backing resource.
+ * This offset may also include other offset components such as the native off-heap
+ * memory address, DirectByteBuffer split offsets, region offsets, and unsafe arrayBaseOffsets.
+ *
+ * @return the cumulative offset in bytes of this object from the backing resource.
+ */
+ abstract long getCumulativeOffset();
+
+ /**
+ * Gets the cumulative offset in bytes of this object from the backing resource including the given
+ * localOffsetBytes. This offset may also include other offset components such as the native off-heap
+ * memory address, DirectByteBuffer split offsets, region offsets, and object arrayBaseOffsets.
+ *
+ * @param localOffsetBytes offset to be added to the cumulative offset.
+ * @return the cumulative offset in bytes of this object from the backing resource including the
+ * given offsetBytes.
+ */
+ public long getCumulativeOffset(long localOffsetBytes) {
+ return getCumulativeOffset() + localOffsetBytes;
+ }
+
//MONITORING
/**
@@ -183,10 +205,8 @@ public abstract class BaseStateImpl implements BaseState {
//Overridden by ByteBuffer, Direct and Map leafs
abstract long getNativeBaseOffset();
- abstract long getOffset();
-
@Override
- public final ByteOrder getTypeByteOrder() {
+ public final ByteOrder getByteOrder() {
return isNonNativeType(getTypeId()) ? Util.NON_NATIVE_BYTE_ORDER : ByteOrder.nativeOrder();
}
@@ -222,7 +242,7 @@ public abstract class BaseStateImpl implements BaseState {
@Override
public final boolean isByteOrderCompatible(final ByteOrder byteOrder) {
- final ByteOrder typeBO = getTypeByteOrder();
+ final ByteOrder typeBO = getByteOrder();
return typeBO == ByteOrder.nativeOrder() && typeBO == byteOrder;
}
@@ -350,13 +370,13 @@ public abstract class BaseStateImpl implements BaseState {
sb.append("UnsafeObj, hashCode : ").append(uObjStr).append(LS);
sb.append("UnsafeObjHeader : ").append(uObjHeader).append(LS);
sb.append("ByteBuf, hashCode : ").append(bbStr).append(LS);
- sb.append("RegionOffset : ").append(state.getRegionOffset()).append(LS);
+ sb.append("RegionOffset : ").append(state.getTotalOffset()).append(LS);
sb.append("Capacity : ").append(capacity).append(LS);
sb.append("CumBaseOffset : ").append(cumBaseOffset).append(LS);
sb.append("MemReq, hashCode : ").append(memReqStr).append(LS);
sb.append("Valid : ").append(state.isValid()).append(LS);
sb.append("Read Only : ").append(state.isReadOnly()).append(LS);
- sb.append("Type Byte Order : ").append(state.getTypeByteOrder().toString()).append(LS);
+ sb.append("Type Byte Order : ").append(state.getByteOrder().toString()).append(LS);
sb.append("Native Byte Order : ").append(ByteOrder.nativeOrder().toString()).append(LS);
sb.append("JDK Runtime Version : ").append(UnsafeUtil.JDK).append(LS);
//Data detail
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 abbb9ac..d5f95f8 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
@@ -77,7 +77,7 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
final MemoryRequestServer memReqSvr) {
final AccessByteBuffer abb = new AccessByteBuffer(byteBuf);
final int typeId = (abb.resourceReadOnly || localReadOnly) ? READONLY : 0;
- final long cumOffsetBytes = 0;
+ final long cumOffsetBytes = abb.initialCumOffset;
final BaseWritableBufferImpl bwbi = Util.isNativeByteOrder(byteOrder)
? new BBWritableBufferImpl(abb.unsafeObj, abb.nativeBaseOffset,
abb.offsetBytes, abb.capacityBytes, typeId, cumOffsetBytes, memReqSvr, byteBuf)
@@ -90,7 +90,7 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
//REGIONS
@Override
public Buffer region() {
- return writableRegionImpl(getPosition(), getEnd() - getPosition(), true, getTypeByteOrder());
+ return writableRegionImpl(getPosition(), getEnd() - getPosition(), true, getByteOrder());
}
@Override
@@ -102,7 +102,7 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
@Override
public WritableBuffer writableRegion() {
- return writableRegionImpl(getPosition(), getEnd() - getPosition(), false, getTypeByteOrder());
+ return writableRegionImpl(getPosition(), getEnd() - getPosition(), false, getByteOrder());
}
@Override
@@ -130,7 +130,7 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
//DUPLICATES
@Override
public Buffer duplicate() {
- return writableDuplicateImpl(true, getTypeByteOrder());
+ return writableDuplicateImpl(true, getByteOrder());
}
@Override
@@ -140,7 +140,7 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
@Override
public WritableBuffer writableDuplicate() {
- return writableDuplicateImpl(false, getTypeByteOrder());
+ return writableDuplicateImpl(false, getByteOrder());
}
@Override
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 7b07234..4394355 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
@@ -36,7 +36,6 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
private final StepBoolean valid; //a reference only
@@ -54,7 +53,6 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | DIRECT | BUFFER | NONNATIVE; //initially cannot be ReadOnly
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
this.valid = valid;
}
@@ -65,18 +63,17 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | BUFFER | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new DirectWritableBufferImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, valid);
} else {
typeIdOut |= NONNATIVE;
return new DirectNonNativeWritableBufferImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, valid);
}
}
@@ -138,17 +135,11 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
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 f5bb988..9d26441 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
@@ -36,7 +36,6 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
private final StepBoolean valid; //a reference only
@@ -54,7 +53,6 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | DIRECT | MEMORY | NONNATIVE; //initially cannot be ReadOnly
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
this.valid = valid;
}
@@ -65,19 +63,18 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MEMORY | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new DirectWritableMemoryImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, valid);
} else {
typeIdOut |= NONNATIVE;
return new DirectNonNativeWritableMemoryImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, valid);
}
}
@@ -124,17 +121,11 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
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 c8147e5..f338c54 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
@@ -36,7 +36,6 @@ final class DirectWritableBufferImpl extends NativeWritableBufferImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
private final StepBoolean valid; //a reference only
@@ -54,7 +53,6 @@ final class DirectWritableBufferImpl extends NativeWritableBufferImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | DIRECT | BUFFER | NATIVE; //initially cannot be ReadOnly
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
this.valid = valid;
}
@@ -65,19 +63,18 @@ final class DirectWritableBufferImpl extends NativeWritableBufferImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | BUFFER | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new DirectWritableBufferImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, valid);
} else {
typeIdOut |= NONNATIVE;
return new DirectNonNativeWritableBufferImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, valid);
}
}
@@ -139,17 +136,11 @@ final class DirectWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
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 8ff0961..f4162a7 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
@@ -36,7 +36,6 @@ final class DirectWritableMemoryImpl extends NativeWritableMemoryImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
private final StepBoolean valid; //a reference only
@@ -54,7 +53,6 @@ final class DirectWritableMemoryImpl extends NativeWritableMemoryImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | DIRECT | MEMORY | NATIVE; //initially cannot be ReadOnly
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
this.valid = valid;
}
@@ -65,19 +63,18 @@ final class DirectWritableMemoryImpl extends NativeWritableMemoryImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- //this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MEMORY | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new DirectWritableMemoryImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, valid);
} else {
typeIdOut |= NONNATIVE;
return new DirectNonNativeWritableMemoryImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr, valid);
}
}
@@ -124,17 +121,11 @@ final class DirectWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java
index 91d98fa..3b1386c 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java
@@ -36,7 +36,6 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
HeapNonNativeWritableBufferImpl(
@@ -52,7 +51,6 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | HEAP | BUFFER | NONNATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
}
@@ -62,19 +60,18 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- this.cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | BUFFER | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new HeapWritableBufferImpl(
- unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr);
+ unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr);
} else {
typeIdOut |= NONNATIVE;
return new HeapNonNativeWritableBufferImpl(
- unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr);
+ unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr);
}
}
@@ -131,17 +128,11 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java
index 5ebe8db..e528cef 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java
@@ -36,7 +36,6 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
HeapNonNativeWritableMemoryImpl(
@@ -52,7 +51,6 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | HEAP | MEMORY | NONNATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
}
@@ -62,19 +60,18 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- this.cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MEMORY | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new HeapWritableMemoryImpl(
- unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr);
+ unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr);
} else {
typeIdOut |= NONNATIVE;
return new HeapNonNativeWritableMemoryImpl(
- unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr);
+ unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr);
}
}
@@ -116,17 +113,11 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java
index e54a3cf..33d8170 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java
@@ -36,7 +36,6 @@ final class HeapWritableBufferImpl extends NativeWritableBufferImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
HeapWritableBufferImpl(
@@ -52,7 +51,6 @@ final class HeapWritableBufferImpl extends NativeWritableBufferImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | HEAP | BUFFER | NATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
}
@@ -62,19 +60,18 @@ final class HeapWritableBufferImpl extends NativeWritableBufferImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- this.cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | BUFFER | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new HeapWritableBufferImpl(
- unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr);
+ unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr);
} else {
typeIdOut |= NONNATIVE;
return new HeapNonNativeWritableBufferImpl(
- unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr);
+ unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr);
}
}
@@ -131,17 +128,11 @@ final class HeapWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java
index 2da356c..d70ac99 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java
@@ -36,7 +36,6 @@ final class HeapWritableMemoryImpl extends NativeWritableMemoryImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final MemoryRequestServer memReqSvr;
HeapWritableMemoryImpl(
@@ -52,7 +51,6 @@ final class HeapWritableMemoryImpl extends NativeWritableMemoryImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | HEAP | MEMORY | NATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.memReqSvr = memReqSvr;
}
@@ -62,19 +60,18 @@ final class HeapWritableMemoryImpl extends NativeWritableMemoryImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MEMORY | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new HeapWritableMemoryImpl(
- unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr);
+ unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr);
} else {
typeIdOut |= NONNATIVE;
return new HeapNonNativeWritableMemoryImpl(
- unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, memReqSvr);
+ unsafeObj, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, memReqSvr);
}
}
@@ -116,17 +113,11 @@ final class HeapWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java
index b5333a2..00eb965 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java
@@ -36,7 +36,6 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final StepBoolean valid; //a reference only
MapNonNativeWritableBufferImpl(
@@ -52,7 +51,6 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | MAP | BUFFER | NONNATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.valid = valid;
}
@@ -62,19 +60,18 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MAP | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new MapWritableBufferImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, valid);
} else {
typeIdOut |= NONNATIVE;
return new MapNonNativeWritableBufferImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, valid);
}
}
@@ -136,17 +133,11 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java
index ce53e6f..9a4ace9 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java
@@ -36,7 +36,6 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final StepBoolean valid; //a reference only
MapNonNativeWritableMemoryImpl(
@@ -52,7 +51,6 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | MAP | MEMORY | NONNATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.valid = valid;
}
@@ -62,19 +60,18 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MAP | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new MapWritableMemoryImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, valid);
} else {
typeIdOut |= NONNATIVE;
return new MapNonNativeWritableMemoryImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, valid);
}
}
@@ -121,17 +118,11 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java
index dfc6017..51ba0db 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java
@@ -36,7 +36,6 @@ final class MapWritableBufferImpl extends NativeWritableBufferImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final StepBoolean valid; //a reference only
MapWritableBufferImpl(
@@ -52,7 +51,6 @@ final class MapWritableBufferImpl extends NativeWritableBufferImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | MAP | BUFFER | NATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = 0;
this.valid = valid;
}
@@ -62,19 +60,18 @@ final class MapWritableBufferImpl extends NativeWritableBufferImpl {
final long capacityBytes,
final boolean readOnly,
final ByteOrder byteOrder) {
- this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MAP | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new MapWritableBufferImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, valid);
} else {
typeIdOut |= NONNATIVE;
return new MapNonNativeWritableBufferImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, valid);
}
}
@@ -136,17 +133,11 @@ final class MapWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java
index 3216a4f..2417281 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java
@@ -36,7 +36,6 @@ final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
private final long capacityBytes;
private final int typeId;
private long cumOffsetBytes;
- private long regionOffsetBytes;
private final StepBoolean valid; //a reference only
MapWritableMemoryImpl(
@@ -52,7 +51,6 @@ final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
this.capacityBytes = capacityBytes;
this.typeId = removeNnBuf(typeId) | MAP | MEMORY | NATIVE;
this.cumOffsetBytes = cumOffsetBytes;
- this.regionOffsetBytes = cumOffsetBytes - nativeBaseOffset;
this.valid = valid;
}
@@ -64,17 +62,17 @@ final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
final ByteOrder byteOrder) {
//this.regionOffsetBytes = regionOffsetBytes;
final long newOffsetBytes = offsetBytes + regionOffsetBytes;
- cumOffsetBytes += regionOffsetBytes;
+ final long newCumOffsetBytes = cumOffsetBytes + regionOffsetBytes;
int typeIdOut = removeNnBuf(typeId) | MAP | REGION | (readOnly ? READONLY : 0);
if (Util.isNativeByteOrder(byteOrder)) {
typeIdOut |= NATIVE;
return new MapWritableMemoryImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, valid);
} else {
typeIdOut |= NONNATIVE;
return new MapNonNativeWritableMemoryImpl(
- nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, cumOffsetBytes, valid);
+ nativeBaseOffset, newOffsetBytes, capacityBytes, typeIdOut, newCumOffsetBytes, valid);
}
}
@@ -121,17 +119,11 @@ final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
- public long getOffset() {
+ public long getTotalOffset() {
assertValid();
return offsetBytes;
}
- @Override
- public long getRegionOffset() {
- assertValid();
- return regionOffsetBytes;
- }
-
@Override
int getTypeId() {
assertValid();
diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AaByteBufferTest.java b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AaByteBufferTest.java
deleted file mode 100644
index 46ee5af..0000000
--- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AaByteBufferTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.datasketches.memory.internal;
-
-import java.nio.ByteBuffer;
-
-import org.apache.datasketches.memory.Memory;
-import org.testng.annotations.Test;
-
-public class AaByteBufferTest {
-
- @Test
- public void checkBB() {
- byte[] byteArr = new byte[32];
- int len = byteArr.length;
- for (byte i = 0; i < len; i++) { byteArr[i] = i; }
- ByteBuffer bb = ByteBuffer.wrap(byteArr);
- Memory mem = Memory.wrap(bb);
- for (int i = 0; i < len; i++) {
- //System.out.println(mem.getByte(i));
- }
- }
-
- @Test
- public void checkHeap() {
- byte[] byteArr = new byte[32];
- int len = byteArr.length;
- for (byte i = 0; i < len; i++) { byteArr[i] = i; }
- Memory mem = Memory.wrap(byteArr);
- for (int i = 0; i < len; i++) {
- //System.out.println(mem.getByte(i));
- }
- }
-
-}
-
diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java
index 455ad3d..5845be2 100644
--- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java
+++ b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java
@@ -62,22 +62,22 @@ public class AllocateDirectMapMemoryTest {
try (MapHandle rh = Memory.map(file))
{
Memory mem = rh.get();
- println("Mem Cap: " + mem.getCapacity());
- println("Native Off: " + ((BaseStateImpl)mem).getNativeBaseOffset());
- println("Offset: " + ((BaseStateImpl)mem).getOffset());
- println("Cum Offset: " + mem.getCumulativeOffset(0));
- println("Region Offset: " + mem.getRegionOffset());
+ println("Mem Cap: " + mem.getCapacity());
+ println("Native Off: " + ((BaseStateImpl)mem).getNativeBaseOffset());
+ println("Total Offset: " + mem.getTotalOffset());
+ println("Cum Offset: " + ((BaseStateImpl)mem).getCumulativeOffset(0));
+ println("Region Offset: " + mem.getTotalOffset());
StringBuilder sb = new StringBuilder();
mem.getCharsFromUtf8(43, 176, sb);
println(sb.toString());
println("");
Memory mem2 = mem.region(43+76, 20);
- println("Mem Cap: " + mem2.getCapacity());
- println("Native Off: " + ((BaseStateImpl)mem).getNativeBaseOffset());
- println("Offset: " + ((BaseStateImpl)mem).getOffset());
- println("Cum Offset: " + mem2.getCumulativeOffset(0));
- println("Region Offset: " + mem2.getRegionOffset());
+ println("Mem Cap: " + mem2.getCapacity());
+ println("Native Off: " + ((BaseStateImpl)mem).getNativeBaseOffset());
+ println("Offset: " + mem.getTotalOffset());
+ println("Cum Offset: " + ((BaseStateImpl)mem2).getCumulativeOffset(0));
+ println("Region Offset: " + mem2.getTotalOffset());
StringBuilder sb2 = new StringBuilder();
mem2.getCharsFromUtf8(0, 12, sb2);
println(sb2.toString());
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 8aef3db..304027d 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
@@ -38,7 +38,7 @@ import org.testng.annotations.Test;
public class Buffer2Test {
@Test
- public void testWrapByteBuf() {
+ public void testWrapHeapByteBuf() {
ByteBuffer bb = ByteBuffer.allocate(64).order(ByteOrder.nativeOrder());
Byte b = 0;
@@ -330,7 +330,7 @@ public class Buffer2Test {
}
bb.position(10);
- Buffer buffer = Buffer.wrap(bb.slice().order(ByteOrder.nativeOrder())); //slice = 54
+ Buffer buffer = Buffer.wrap(bb.slice().order(ByteOrder.nativeOrder())); //slice size = 54
buffer.setPosition(30);//remaining = 24
Buffer dupBuffer = buffer.duplicate(); //all 54
Buffer regionBuffer = buffer.region(); //24
@@ -353,7 +353,7 @@ public class Buffer2Test {
for (int i = 0; i < n; i++) { arr[i] = i; }
Memory mem = Memory.wrap(arr);
Buffer buf = mem.asBuffer();
- Buffer reg = buf.region(n2 * 8, n2 * 8, buf.getTypeByteOrder()); //top half
+ Buffer reg = buf.region(n2 * 8, n2 * 8, buf.getByteOrder()); //top half
for (int i = 0; i < n2; i++) {
long v = reg.getLong(i * 8);
long e = i + n2;
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 64b3c77..73f02e0 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
@@ -25,10 +25,10 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.List;
-import org.apache.datasketches.memory.WritableHandle;
import org.apache.datasketches.memory.Buffer;
import org.apache.datasketches.memory.Memory;
import org.apache.datasketches.memory.WritableBuffer;
+import org.apache.datasketches.memory.WritableHandle;
import org.apache.datasketches.memory.WritableMemory;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
@@ -203,7 +203,7 @@ public class BufferTest {
ByteBuffer bb = ByteBuffer.allocate(n * 8);
bb.order(ByteOrder.BIG_ENDIAN);
Buffer buf = Buffer.wrap(bb);
- assertEquals(buf.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
+ assertEquals(buf.getByteOrder(), ByteOrder.BIG_ENDIAN);
}
@Test
@@ -262,20 +262,21 @@ public class BufferTest {
int n = 16;
int n2 = n / 2;
long[] arr = new long[n];
- for (int i = 0; i < n; i++) { arr[i] = i; }
- WritableBuffer wbuf = WritableMemory.writableWrap(arr).asWritableBuffer();
+ for (int i = 0; i < n; i++) { arr[i] = i; } //0...n-1
+ WritableMemory mem = WritableMemory.writableWrap(arr);
+ WritableBuffer wbuf = mem.asWritableBuffer();
for (int i = 0; i < n; i++) {
- assertEquals(wbuf.getLong(), i); //write all
- //println("" + wmem.getLong(i * 8));
+ assertEquals(wbuf.getLong(), i); //0...n-1
+ println("" + wbuf.getLong(i * 8));
}
- //println("");
+ println("");
wbuf.setPosition(n2 * 8);
WritableBuffer reg = wbuf.writableRegion();
for (int i = 0; i < n2; i++) { reg.putLong(i); } //rewrite top half
wbuf.resetPosition();
for (int i = 0; i < n; i++) {
- assertEquals(wbuf.getLong(), i % 8);
- //println("" + wmem.getLong(i * 8));
+ println("" + wbuf.getLong(i * 8));
+ assertEquals(wbuf.getLong(), i % 8); //fail got 1 not 0
}
}
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 0cf345c..0ad16be 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
@@ -131,7 +131,7 @@ public class ExampleMemoryRequestServerTest {
@Override
public WritableMemory request(WritableMemory currentWMem, long capacityBytes) {
- ByteOrder order = currentWMem.getTypeByteOrder();
+ ByteOrder order = currentWMem.getByteOrder();
WritableHandle handle = WritableMemory.allocateDirect(capacityBytes, order, this);
WritableMemory wmem = handle.getWritable();
map.put(wmem, handle); //We track the newly allocated memory and its handle.
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 f1ef17e..e0082ff 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
@@ -87,7 +87,7 @@ public class LeafImplTest {
WritableMemory mem = WritableMemory.writableWrap(bb, NBO, dummyMemReqSvr);
assertEquals(bb.isDirect(), mem.isDirect());
assertNotNull(((BaseStateImpl)mem).getUnsafeObject());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getTypeByteOrder(), true, true);
+ checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(), true, true);
//BB off heap, native order, has ByteBuffer, has MemReqSvr
ByteBuffer dbb = ByteBuffer.allocateDirect((int)cap);
@@ -96,7 +96,7 @@ public class LeafImplTest {
mem = WritableMemory.writableWrap(dbb, NBO, dummyMemReqSvr);
assertEquals(dbb.isDirect(), mem.isDirect());
assertNull(((BaseStateImpl)mem).getUnsafeObject());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getTypeByteOrder(), true, true);
+ checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(), true, true);
//BB on heap, non native order, has ByteBuffer, has MemReqSvr
bb = ByteBuffer.allocate((int)cap);
@@ -105,7 +105,7 @@ public class LeafImplTest {
mem = WritableMemory.writableWrap(bb, NNBO, dummyMemReqSvr);
assertEquals(bb.isDirect(), mem.isDirect());
assertNotNull(((BaseStateImpl)mem).getUnsafeObject());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getTypeByteOrder(), true, true);
+ checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(), true, true);
//BB off heap, non native order, has ByteBuffer, has MemReqSvr
dbb = ByteBuffer.allocateDirect((int)cap);
@@ -114,7 +114,7 @@ public class LeafImplTest {
mem = WritableMemory.writableWrap(dbb, NNBO, dummyMemReqSvr);
assertEquals(dbb.isDirect(), mem.isDirect());
assertNull(((BaseStateImpl)mem).getUnsafeObject());
- checkCombinations(mem, off, cap, mem.isDirect(), mem.getTypeByteOrder(), true, true);
+ checkCombinations(mem, off, cap, mem.isDirect(), mem.getByteOrder(), true, true);
}
@Test
@@ -182,7 +182,7 @@ public class LeafImplTest {
ByteBuffer bb = mem.getByteBuffer();
assertTrue( hasByteBuffer ? bb != null : bb == null);
- assertTrue(mem.getTypeByteOrder() == bo);
+ assertTrue(mem.getByteOrder() == bo);
if (hasMemReqSvr) { assertTrue(mem.getMemoryRequestServer() instanceof DummyMemoryRequestServer); }
@@ -207,7 +207,7 @@ public class LeafImplTest {
bb = buf.getByteBuffer();
assertTrue(hasByteBuffer ? bb != null : bb == null);
- assertTrue(buf.getTypeByteOrder() == bo);
+ assertTrue(buf.getByteOrder() == bo);
if (hasMemReqSvr) { assertTrue(buf.getMemoryRequestServer() instanceof DummyMemoryRequestServer); }
@@ -232,7 +232,7 @@ public class LeafImplTest {
bb = nnMem.getByteBuffer();
assertTrue( hasByteBuffer ? bb != null : bb == null);
- assertTrue(nnMem.getTypeByteOrder() == oo);
+ assertTrue(nnMem.getByteOrder() == oo);
if (hasMemReqSvr) { assertTrue(nnMem.getMemoryRequestServer() instanceof DummyMemoryRequestServer); }
@@ -257,7 +257,7 @@ public class LeafImplTest {
bb = nnBuf.getByteBuffer();
assertTrue( hasByteBuffer ? bb != null : bb == null);
- assertTrue(nnBuf.getTypeByteOrder() == oo);
+ assertTrue(nnBuf.getByteOrder() == oo);
if (hasMemReqSvr) { assertTrue(nnBuf.getMemoryRequestServer() instanceof DummyMemoryRequestServer); }
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 045c59f..c8d985b 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
@@ -210,8 +210,8 @@ public class MemoryTest {
ByteBuffer bb = ByteBuffer.allocate(n * 8);
bb.order(ByteOrder.BIG_ENDIAN);
Memory mem = Memory.wrap(bb);
- assertFalse(mem.getTypeByteOrder() == ByteOrder.nativeOrder());
- assertEquals(mem.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
+ assertFalse(mem.getByteOrder() == ByteOrder.nativeOrder());
+ assertEquals(mem.getByteOrder(), ByteOrder.BIG_ENDIAN);
}
@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 b1fccf2..fe802f7 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
@@ -233,7 +233,7 @@ public class NativeWritableBufferImplTest {
try (WritableHandle wrh = WritableMemory.allocateDirect(memCapacity)) {
WritableMemory wmem = wrh.getWritable();
WritableBuffer wbuf = wmem.asWritableBuffer();
- wbuf.writableRegion(1, 64, wbuf.getTypeByteOrder()); //wrong!
+ wbuf.writableRegion(1, 64, wbuf.getByteOrder()); //wrong!
}
}
@@ -476,9 +476,8 @@ public class NativeWritableBufferImplTest {
WritableMemory wmem = WritableMemory.allocate(64);
WritableMemory reg = wmem.writableRegion(32, 32);
WritableBuffer buf = reg.asWritableBuffer();
- assertEquals(buf.getRegionOffset(), 32);
- assertEquals(buf.getRegionOffset(0), 32);
- assertEquals(buf.getCumulativeOffset(0), 32 + 16);
+ assertEquals(buf.getTotalOffset(), 32);
+ assertEquals(((BaseStateImpl)buf).getCumulativeOffset(0), 32 + 16);
}
@Test
@@ -555,13 +554,13 @@ public class NativeWritableBufferImplTest {
ByteBuffer bb = ByteBuffer.allocate(64);
WritableBuffer wbuf = WritableBuffer.writableWrap(bb);
@SuppressWarnings("unused")
- WritableBuffer wreg = wbuf.writableRegion(0, 1, wbuf.getTypeByteOrder());
+ WritableBuffer wreg = wbuf.writableRegion(0, 1, wbuf.getByteOrder());
try {
Buffer buf = Buffer.wrap(bb);
wbuf = (WritableBuffer) buf;
@SuppressWarnings("unused")
- WritableBuffer wreg2 = wbuf.writableRegion(0, 1, wbuf.getTypeByteOrder());
+ WritableBuffer wreg2 = wbuf.writableRegion(0, 1, wbuf.getByteOrder());
Assert.fail();
} catch (ReadOnlyException expected) {
// ignore
@@ -572,7 +571,7 @@ public class NativeWritableBufferImplTest {
public void checkZeroBuffer() {
WritableMemory wmem = WritableMemory.allocate(8);
WritableBuffer wbuf = wmem.asWritableBuffer();
- WritableBuffer reg = wbuf.writableRegion(0, 0, wbuf.getTypeByteOrder());
+ WritableBuffer reg = wbuf.writableRegion(0, 0, wbuf.getByteOrder());
assertEquals(reg.getCapacity(), 0);
}
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 e6d13cc..4cca6f8 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
@@ -654,9 +654,8 @@ public class NativeWritableMemoryImplTest {
public void checkCumAndRegionOffset() {
WritableMemory wmem = WritableMemory.allocate(64);
WritableMemory reg = wmem.writableRegion(32, 32);
- assertEquals(reg.getRegionOffset(), 32);
- assertEquals(reg.getRegionOffset(0), 32);
- assertEquals(reg.getCumulativeOffset(0), 32 + 16);
+ assertEquals(reg.getTotalOffset(), 32);
+ assertEquals(((BaseStateImpl)reg).getCumulativeOffset(0), 32 + 16);
}
diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java
index 57d481a..d7f0421 100644
--- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java
+++ b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java
@@ -239,10 +239,10 @@ public class NonNativeWritableBufferImplTest {
WritableMemory wmem = WritableMemory.writableWrap(bArr, ByteOrder.BIG_ENDIAN);
WritableBuffer wbuf = wmem.asWritableBuffer();
WritableBuffer wdup = wbuf.writableDuplicate();
- assertEquals(wdup.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
+ assertEquals(wdup.getByteOrder(), ByteOrder.BIG_ENDIAN);
WritableBuffer wreg = wbuf.writableRegion();
- assertEquals(wreg.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
+ assertEquals(wreg.getByteOrder(), ByteOrder.BIG_ENDIAN);
}
@Test
@@ -251,10 +251,10 @@ public class NonNativeWritableBufferImplTest {
WritableMemory wmem = WritableMemory.writableWrap(bArr, ByteOrder.BIG_ENDIAN);
Buffer buf = wmem.asBuffer();
Buffer dup = buf.duplicate();
- assertEquals(dup.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
+ assertEquals(dup.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
Buffer reg = buf.region();
- assertEquals(reg.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
+ assertEquals(reg.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
}
}
diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImplTest.java b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImplTest.java
index c6bd5d0..b544e93 100644
--- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImplTest.java
+++ b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImplTest.java
@@ -205,7 +205,7 @@ public class NonNativeWritableMemoryImplTest {
@Test
public void checkRegion() {
WritableMemory wreg = wmem.writableRegion(0, wmem.getCapacity());
- assertEquals(wreg.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
+ assertEquals(wreg.getByteOrder(), ByteOrder.BIG_ENDIAN);
}
@Test
@@ -213,7 +213,7 @@ public class NonNativeWritableMemoryImplTest {
byte[] bArr1 = new byte[0];
WritableMemory wmem1 = WritableMemory.writableWrap(bArr1, ByteOrder.BIG_ENDIAN);
Memory reg = wmem1.region(0, wmem1.getCapacity());
- assertEquals(reg.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
+ assertEquals(reg.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
}
}
diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/WritableMemoryTest.java b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/WritableMemoryTest.java
index 1226cc5..e21eba8 100644
--- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/WritableMemoryTest.java
+++ b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/WritableMemoryTest.java
@@ -38,9 +38,9 @@ public class WritableMemoryTest {
public void wrapBigEndian() {
ByteBuffer bb = ByteBuffer.allocate(64); //big endian
WritableMemory wmem = WritableMemory.writableWrap(bb);
- assertEquals(wmem.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
+ assertEquals(wmem.getByteOrder(), ByteOrder.BIG_ENDIAN);
wmem = WritableMemory.writableWrap(bb, ByteOrder.nativeOrder());
- assertEquals(wmem.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
+ assertEquals(wmem.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
}
@Test
@@ -54,11 +54,11 @@ public class WritableMemoryTest {
@Test
public void allocateWithByteOrder() {
WritableMemory wmem = WritableMemory.allocate(64, ByteOrder.BIG_ENDIAN);
- assertEquals(wmem.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
+ assertEquals(wmem.getByteOrder(), ByteOrder.BIG_ENDIAN);
wmem = WritableMemory.allocate(64, ByteOrder.LITTLE_ENDIAN);
- assertEquals(wmem.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
+ assertEquals(wmem.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
wmem = WritableMemory.writableWrap(new byte[64], 32, 32, ByteOrder.BIG_ENDIAN);
- assertEquals(wmem.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
+ assertEquals(wmem.getByteOrder(), ByteOrder.BIG_ENDIAN);
}
@Test
@@ -163,11 +163,11 @@ public class WritableMemoryTest {
@Test
public void checkWrapWithBO() {
WritableMemory wmem = WritableMemory.writableWrap(new byte[0], ByteOrder.BIG_ENDIAN);
- boolean nativeBO = wmem.getTypeByteOrder() == ByteOrder.nativeOrder();
+ boolean nativeBO = wmem.getByteOrder() == ByteOrder.nativeOrder();
assertFalse(nativeBO);
println("" + nativeBO);
wmem = WritableMemory.writableWrap(new byte[8], ByteOrder.BIG_ENDIAN);
- nativeBO = wmem.getTypeByteOrder() == ByteOrder.nativeOrder();
+ nativeBO = wmem.getByteOrder() == ByteOrder.nativeOrder();
assertFalse(nativeBO);
println("" + nativeBO);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org