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 2021/08/08 23:18:29 UTC
[datasketches-memory] branch DS-javaIssue358 created (now 310a8b7)
This is an automated email from the ASF dual-hosted git repository.
leerho pushed a change to branch DS-javaIssue358
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git.
at 310a8b7 This is to fix DS-Java issue 358, which relates to Druid Issue 11544.
This branch includes the following new commits:
new 310a8b7 This is to fix DS-Java issue 358, which relates to Druid Issue 11544.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org
[datasketches-memory] 01/01: This is to fix DS-Java issue 358,
which relates to Druid Issue 11544.
Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
leerho pushed a commit to branch DS-javaIssue358
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git
commit 310a8b7a3fafc99f12cae01125cac675ed4cf196
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Sun Aug 8 16:18:03 2021 -0700
This is to fix DS-Java issue 358, which relates to Druid Issue 11544.
---
.../datasketches/memory/test/LeafImplTest.java | 4 ++--
.../memory/test/WritableMemoryTest.java | 2 +-
.../org/apache/datasketches/memory/BaseState.java | 1 +
.../apache/datasketches/memory/WritableBuffer.java | 18 +++++++++------
.../apache/datasketches/memory/WritableMemory.java | 27 +++++++++++-----------
.../internal/BBNonNativeWritableBufferImpl.java | 9 ++++++++
.../internal/BBNonNativeWritableMemoryImpl.java | 17 +++++++++++---
.../memory/internal/BBWritableBufferImpl.java | 9 ++++++++
.../memory/internal/BBWritableMemoryImpl.java | 17 +++++++++++---
.../memory/internal/BaseStateImpl.java | 3 +--
.../memory/internal/BaseWritableMemoryImpl.java | 7 +++---
.../datasketches/memory/internal/BufferImpl.java | 4 ++--
.../DirectNonNativeWritableBufferImpl.java | 7 ------
.../DirectNonNativeWritableMemoryImpl.java | 7 ------
.../memory/internal/DirectWritableBufferImpl.java | 6 -----
.../internal/HeapNonNativeWritableBufferImpl.java | 7 ++++++
.../internal/HeapNonNativeWritableMemoryImpl.java | 9 +++++++-
.../memory/internal/HeapWritableBufferImpl.java | 7 ++++++
.../memory/internal/HeapWritableMemoryImpl.java | 7 ++++++
.../internal/MapNonNativeWritableBufferImpl.java | 14 +++++------
.../internal/MapNonNativeWritableMemoryImpl.java | 14 +++++------
.../memory/internal/MapWritableBufferImpl.java | 14 +++++------
.../memory/internal/MapWritableMemoryImpl.java | 14 +++++------
.../datasketches/memory/internal/MemoryImpl.java | 4 ++--
.../memory/internal/WritableBufferImpl.java | 13 ++++-------
.../memory/internal/WritableMemoryImpl.java | 14 ++++-------
26 files changed, 148 insertions(+), 107 deletions(-)
diff --git a/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/LeafImplTest.java b/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/LeafImplTest.java
index 9e20691..ac59599 100644
--- a/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/LeafImplTest.java
+++ b/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/LeafImplTest.java
@@ -227,7 +227,7 @@ public class LeafImplTest {
assertTrue(mem.getByteBuffer() != null);
assertTrue(mem.getTypeByteOrder() == Util.nativeByteOrder);
- assertTrue(mem.getMemoryRequestServer() == null);
+ assertNotNull(mem.getMemoryRequestServer());
Object obj = ReflectUtil.getUnsafeObject(mem);
//Object obj = mem.getUnsafeObject();
if (direct) {
@@ -269,7 +269,7 @@ public class LeafImplTest {
assertTrue(nnMem.getByteBuffer() != null);
assertTrue(nnMem.getTypeByteOrder() == Util.nonNativeByteOrder);
- assertTrue(nnMem.getMemoryRequestServer() == null);
+ assertNotNull(nnMem.getMemoryRequestServer());
obj = ReflectUtil.getUnsafeObject(nnMem);
//obj = nnMem.getUnsafeObject();
if (direct) {
diff --git a/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java b/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
index ea49e69..f9cbd78 100644
--- a/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
+++ b/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
@@ -47,7 +47,7 @@ public class WritableMemoryTest {
public void wrapBigEndianAsLittle() {
ByteBuffer bb = ByteBuffer.allocate(64);
bb.putChar(0, (char)1); //as BE
- WritableMemory wmem = WritableMemory.writableWrap(bb, ByteOrder.LITTLE_ENDIAN);
+ WritableMemory wmem = WritableMemory.writableWrap(bb, ByteOrder.LITTLE_ENDIAN, null);
assertEquals(wmem.getChar(0), 256);
}
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 259f571..c3728dd 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
@@ -32,6 +32,7 @@ import org.apache.datasketches.memory.internal.BaseStateImpl;
* @author Lee Rhodes
*/
public interface BaseState {
+ static final MemoryRequestServer defaultMemReqSvr = new DefaultMemoryRequestServer();
//Byte Order Related
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
index bfb3834..1b77930 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
@@ -37,7 +37,7 @@ public interface WritableBuffer extends Buffer {
* @return a new WritableBuffer for write operations on the given ByteBuffer.
*/
static WritableBuffer writableWrap(ByteBuffer byteBuf) {
- return WritableBufferImpl.writableWrap(byteBuf, byteBuf.order());
+ return WritableBufferImpl.writableWrap(byteBuf);
}
/**
@@ -48,10 +48,13 @@ public interface WritableBuffer extends Buffer {
* @param byteBuf the given ByteBuffer, must not be null
* @param byteOrder the byte order to be used, which may be independent of the byte order
* state of the given ByteBuffer
+ * @param memReqSvr A user-specified MemoryRequestServer.
+ * This is a callback mechanism for a user client to request a larger Memory.
* @return a new WritableBuffer for write operations on the given ByteBuffer.
*/
- static WritableBuffer writableWrap(ByteBuffer byteBuf, ByteOrder byteOrder) {
- return WritableBufferImpl.writableWrap(byteBuf, byteOrder);
+ static WritableBuffer writableWrap(ByteBuffer byteBuf, ByteOrder byteOrder, MemoryRequestServer memReqSvr) {
+ MemoryRequestServer mReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
+ return WritableBufferImpl.writableWrap(byteBuf, byteOrder, mReqSvr);
}
//DUPLICATES
@@ -363,10 +366,11 @@ public interface WritableBuffer extends Buffer {
//OTHER WRITABLE API METHODS
/**
- * For Direct Memory only. Other types of backing resources will return null.
- * Gets the MemoryRequestServer object used by dynamic off-heap (Direct) memory objects
- * to request additional memory.
- * Set using {@link WritableMemory#allocateDirect(long, MemoryRequestServer)}.
+ * For ByteBuffer and Direct Memory backed resources only. Heap and Map backed resources will return null.
+ * Gets the MemoryRequestServer object used by dynamic Memory-backed objects
+ * to request additional memory. To customize the actions of the MemoryRequestServer,
+ * extend the MemoryRequestServer interfact and
+ * set using {@link WritableMemory#allocateDirect(long, MemoryRequestServer)}.
* If not explicity set, this returns the {@link DefaultMemoryRequestServer}.
* @return the MemoryRequestServer object (if direct memory) or null.
*/
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 5665964..29dd9c9 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
@@ -34,14 +34,11 @@ public interface WritableMemory extends Memory {
* the same byte order, as the given ByteBuffer, unless the capacity of the given ByteBuffer is
* zero, then byte order of the returned WritableMemory object, as well as backing storage and
* read-only status are unspecified.
- *
- * <p><b>Note:</b> Always qualify this method with the class name, e.g.,
- * <i>WritableMemory.wrap(...)</i>.
* @param byteBuf the given ByteBuffer
* @return a new WritableMemory for write operations on the given ByteBuffer.
*/
static WritableMemory writableWrap(ByteBuffer byteBuf) {
- return WritableMemoryImpl.writableWrap(byteBuf, byteBuf.order());
+ return WritableMemoryImpl.writableWrap(byteBuf);
}
/**
@@ -49,16 +46,16 @@ public interface WritableMemory extends Memory {
* the given byte order, ignoring the byte order of the given ByteBuffer. If the capacity of
* the given ByteBuffer is zero the byte order of the returned WritableMemory object
* (as well as backing storage) is unspecified.
- *
- * <p><b>Note:</b> Always qualify this method with the class name, e.g.,
- * <i>WritableMemory.wrap(...)</i>.
* @param byteBuf the given ByteBuffer, must not be null
* @param byteOrder the byte order to be used, which may be independent of the byte order
* state of the given ByteBuffer
+ * @param memReqSvr A user-specified MemoryRequestServer. If null, the DefaultMemoryRequestServer is used.
+ * This is a callback mechanism for a user client to request a larger Memory.
* @return a new WritableMemory for write operations on the given ByteBuffer.
*/
- static WritableMemory writableWrap(ByteBuffer byteBuf, ByteOrder byteOrder) {
- return WritableMemoryImpl.writableWrap(byteBuf, byteOrder);
+ static WritableMemory writableWrap(ByteBuffer byteBuf, ByteOrder byteOrder, MemoryRequestServer memReqSvr) {
+ MemoryRequestServer mReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
+ return WritableMemoryImpl.writableWrap(byteBuf, byteOrder, mReqSvr);
}
//MAP
@@ -134,7 +131,8 @@ public interface WritableMemory extends Memory {
* Please read Javadocs for {@link Handle}.
*/
static WritableHandle allocateDirect(long capacityBytes, MemoryRequestServer memReqSvr) {
- return WritableMemoryImpl.allocateDirect(capacityBytes, memReqSvr);
+ MemoryRequestServer mReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
+ return WritableMemoryImpl.allocateDirect(capacityBytes, mReqSvr);
}
//REGIONS
@@ -602,10 +600,11 @@ public interface WritableMemory extends Memory {
//OTHER WRITABLE API METHODS
/**
- * For Direct Memory only. Other types of backing resources will return null.
- * Gets the MemoryRequestServer object used by dynamic off-heap (Direct) memory objects
- * to request additional memory.
- * Set using {@link WritableMemory#allocateDirect(long, MemoryRequestServer)}.
+ * For ByteBuffer and Direct Memory backed resources only. Heap and Map backed resources will return null.
+ * Gets the MemoryRequestServer object used by dynamic Memory-backed objects
+ * to request additional memory. To customize the actions of the MemoryRequestServer,
+ * extend the MemoryRequestServer interfact and
+ * set using {@link WritableMemory#allocateDirect(long, MemoryRequestServer)}.
* If not explicity set, this returns the {@link DefaultMemoryRequestServer}.
* @return the MemoryRequestServer object (if direct memory) or null.
*/
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 1c798c3..584e4a3 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
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for ByteBuffer, non-native byte order.
*
@@ -33,6 +35,7 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
private final Object unsafeObj;
private final long nativeBaseOffset; //used to compute cumBaseOffset
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private MemoryRequestServer memReqSvr = null; //cannot be final;
private final byte typeId;
BBNonNativeWritableBufferImpl(
@@ -82,6 +85,12 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ assertValid();
+ return memReqSvr; //cannot be null
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
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 ff3f3c5..7416901 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
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for ByteBuffer, non-native byte order.
*
@@ -33,6 +35,7 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
private final Object unsafeObj;
private final long nativeBaseOffset; //used to compute cumBaseOffset
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private MemoryRequestServer memReqSvr = null; //cannot be final;
private final byte typeId;
BBNonNativeWritableMemoryImpl(
@@ -41,11 +44,13 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
final long regionOffset,
final long capacityBytes,
final int typeId,
- final ByteBuffer byteBuf) {
+ final ByteBuffer byteBuf,
+ final MemoryRequestServer memReqSvr) {
super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
this.unsafeObj = unsafeObj;
this.nativeBaseOffset = nativeBaseOffset;
this.byteBuf = byteBuf;
+ this.memReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
this.typeId = (byte) (id | (typeId & 0x7));
}
@@ -56,10 +61,10 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
return Util.isNativeByteOrder(byteOrder)
? new BBWritableMemoryImpl(
unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
- type, getByteBuffer())
+ type, getByteBuffer(), memReqSvr)
: new BBNonNativeWritableMemoryImpl(
unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
- type, getByteBuffer());
+ type, getByteBuffer(), memReqSvr);
}
@Override
@@ -81,6 +86,12 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ assertValid();
+ return memReqSvr; //cannot be null
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
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 d924f9a..eadd15e 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
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for ByteBuffer, native byte order.
*
@@ -33,6 +35,7 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
private final Object unsafeObj;
private final long nativeBaseOffset; //used to compute cumBaseOffset
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private MemoryRequestServer memReqSvr = null; //cannot be final;
private final byte typeId;
BBWritableBufferImpl(
@@ -82,6 +85,12 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ assertValid();
+ return memReqSvr; //cannot be null
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
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 4a9e4ca..2cd0052 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
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for ByteBuffer, native byte order.
*
@@ -33,6 +35,7 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
private final Object unsafeObj;
private final long nativeBaseOffset; //used to compute cumBaseOffset
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private MemoryRequestServer memReqSvr = null; //cannot be final;
private final byte typeId;
BBWritableMemoryImpl(
@@ -41,11 +44,13 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
final long regionOffset,
final long capacityBytes,
final int typeId,
- final ByteBuffer byteBuf) {
+ final ByteBuffer byteBuf,
+ final MemoryRequestServer memReqSvr) {
super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
this.unsafeObj = unsafeObj;
this.nativeBaseOffset = nativeBaseOffset;
this.byteBuf = byteBuf;
+ this.memReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
this.typeId = (byte) (id | (typeId & 0x7));
}
@@ -56,10 +61,10 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
return Util.isNativeByteOrder(byteOrder)
? new BBWritableMemoryImpl(
unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
- type, getByteBuffer())
+ type, getByteBuffer(), memReqSvr)
: new BBNonNativeWritableMemoryImpl(
unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
- type, getByteBuffer());
+ type, getByteBuffer(), memReqSvr);
}
@Override
@@ -81,6 +86,12 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ assertValid();
+ return memReqSvr; //cannot be null
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
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 28ed3dd..53b4a79 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
@@ -29,7 +29,6 @@ import java.nio.ByteOrder;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.datasketches.memory.BaseState;
-import org.apache.datasketches.memory.DefaultMemoryRequestServer;
import org.apache.datasketches.memory.MemoryRequestServer;
/**
@@ -47,7 +46,7 @@ public abstract class BaseStateImpl implements BaseState {
static final AtomicLong currentDirectMemoryMapAllocations_ = new AtomicLong();
static final AtomicLong currentDirectMemoryMapAllocated_ = new AtomicLong();
- static final MemoryRequestServer defaultMemReqSvr = new DefaultMemoryRequestServer();
+
//class type IDs. Do not change the bit orders
// 0000 0XXX
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 640171a..5464382 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
@@ -89,7 +89,8 @@ abstract class BaseWritableMemoryImpl extends WritableMemoryImpl {
}
static BaseWritableMemoryImpl wrapByteBuffer(
- final ByteBuffer byteBuf, final boolean localReadOnly, final ByteOrder byteOrder) {
+ final ByteBuffer byteBuf, final boolean localReadOnly, final ByteOrder byteOrder,
+ final MemoryRequestServer memReqSvr) {
final AccessByteBuffer abb = new AccessByteBuffer(byteBuf);
if (abb.resourceReadOnly && !localReadOnly) {
throw new ReadOnlyException("ByteBuffer is Read Only");
@@ -97,9 +98,9 @@ abstract class BaseWritableMemoryImpl extends WritableMemoryImpl {
final int typeId = (abb.resourceReadOnly || localReadOnly) ? READONLY : 0;
return Util.isNativeByteOrder(byteOrder)
? new BBWritableMemoryImpl(abb.unsafeObj, abb.nativeBaseOffset,
- abb.regionOffset, abb.capacityBytes, typeId, byteBuf)
+ abb.regionOffset, abb.capacityBytes, typeId, byteBuf, memReqSvr)
: new BBNonNativeWritableMemoryImpl(abb.unsafeObj, abb.nativeBaseOffset,
- abb.regionOffset, abb.capacityBytes, typeId, byteBuf);
+ abb.regionOffset, abb.capacityBytes, typeId, byteBuf, memReqSvr);
}
@SuppressWarnings("resource")
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BufferImpl.java
index e673261..a9a1106 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BufferImpl.java
@@ -48,14 +48,14 @@ public abstract class BufferImpl extends BaseBufferImpl implements Buffer {
public static BufferImpl wrap(final ByteBuffer byteBuf, final ByteOrder byteOrder) {
final BaseWritableMemoryImpl wmem =
- BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteOrder);
+ BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteOrder, defaultMemReqSvr);
final WritableBufferImpl wbuf = wmem.asWritableBuffer(true, byteOrder);
wbuf.setStartPositionEnd(0, byteBuf.position(), byteBuf.limit());
return wbuf;
}
//MAP
- //Use MemoryImpl for mapping files and the asBuffer()
+ //Use MemoryImpl for mapping files and then call asBuffer()
//DUPLICATES
@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 5957fc6..457870f 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
@@ -98,11 +98,4 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
-
}
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 9c0ee47..48b92eb 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
@@ -96,11 +96,4 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
-
}
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 b5c3609..e7048a6 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
@@ -98,10 +98,4 @@ final class DirectWritableBufferImpl extends NativeWritableBufferImpl {
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
}
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 5a74126..2e81c3f 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
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for heap-based, non-native byte order.
*
@@ -69,6 +71,11 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
int getTypeId() {
return typeId & 0xff;
}
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 04b3033..fad9d89 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
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for heap-based, non-native byte order.
*
@@ -68,6 +70,11 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
int getTypeId() {
return typeId & 0xff;
}
@@ -76,5 +83,5 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
Object getUnsafeObject() {
return unsafeObj;
}
-
+
}
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 5a9316f..641b4c4 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
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for heap-based, native byte order.
*
@@ -69,6 +71,11 @@ final class HeapWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
int getTypeId() {
return typeId & 0xff;
}
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 4aa398a..806cc16 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
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for heap-based, native byte order.
*
@@ -68,6 +70,11 @@ final class HeapWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
int getTypeId() {
return typeId & 0xff;
}
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 0f135d5..f0302b9 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
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for map memory, non-native byte order.
*
@@ -72,6 +74,11 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
@@ -86,11 +93,4 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
-
}
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 9920c2d..25f002b 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
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for map memory, non-native byte order.
*
@@ -71,6 +73,11 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
@@ -84,12 +91,5 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
public boolean isValid() {
return valid.get();
}
-
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
}
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 eafe417..4174518 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
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for map memory, native byte order.
*
@@ -72,6 +74,11 @@ final class MapWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
@@ -86,11 +93,4 @@ final class MapWritableBufferImpl extends NativeWritableBufferImpl {
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
-
}
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 5c9377a..8ee8a23 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
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for map memory, native byte order.
*
@@ -71,6 +73,11 @@ final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
@@ -84,12 +91,5 @@ final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
public boolean isValid() {
return valid.get();
}
-
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryImpl.java
index dc236eb..aaaac73 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryImpl.java
@@ -53,11 +53,11 @@ public abstract class MemoryImpl extends BaseStateImpl implements Memory {
//BYTE BUFFER
public static MemoryImpl wrap(final ByteBuffer byteBuf) {
- return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteBuf.order());
+ return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteBuf.order(), defaultMemReqSvr);
}
public static MemoryImpl wrap(final ByteBuffer byteBuf, final ByteOrder byteOrder) {
- return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteOrder);
+ return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteOrder, defaultMemReqSvr);
}
//MAP
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
index 4f53d40..020e5a4 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
@@ -42,12 +42,13 @@ public abstract class WritableBufferImpl extends BufferImpl implements WritableB
//BYTE BUFFER
public static WritableBufferImpl writableWrap(final ByteBuffer byteBuf) {
- return writableWrap(byteBuf, byteBuf.order());
+ return writableWrap(byteBuf, byteBuf.order(), defaultMemReqSvr);
}
- public static WritableBufferImpl writableWrap(final ByteBuffer byteBuf, final ByteOrder byteOrder) {
+ public static WritableBufferImpl writableWrap(final ByteBuffer byteBuf, final ByteOrder byteOrder,
+ final MemoryRequestServer memReqSvr) {
final BaseWritableMemoryImpl wmem =
- BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteOrder);
+ BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteOrder, memReqSvr);
final WritableBufferImpl wbuf = wmem.asWritableBuffer(false, byteOrder);
wbuf.setStartPositionEnd(0, byteBuf.position(), byteBuf.limit());
return wbuf;
@@ -166,10 +167,4 @@ public abstract class WritableBufferImpl extends BufferImpl implements WritableB
@Override
public abstract void fill(byte value);
- //OTHER WRITABLE API METHODS
- @Override
- public MemoryRequestServer getMemoryRequestServer() {
- return null;
- }
-
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
index bc24430..a4c32a5 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
@@ -50,11 +50,12 @@ public abstract class WritableMemoryImpl extends MemoryImpl implements WritableM
//BYTE BUFFER
public static WritableMemoryImpl writableWrap(final ByteBuffer byteBuf) {
- return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteBuf.order());
+ return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteBuf.order(), defaultMemReqSvr);
}
- public static WritableMemoryImpl writableWrap(final ByteBuffer byteBuf, final ByteOrder byteOrder) {
- return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteOrder);
+ public static WritableMemoryImpl writableWrap(final ByteBuffer byteBuf, final ByteOrder byteOrder,
+ final MemoryRequestServer memReqSvr) {
+ return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteOrder, memReqSvr);
}
//MAP
@@ -250,11 +251,4 @@ public abstract class WritableMemoryImpl extends MemoryImpl implements WritableM
@Override
public abstract void setBits(long offsetBytes, byte bitMask);
-
- //OTHER WRITABLE API METHODS
- @Override
- public MemoryRequestServer getMemoryRequestServer() {
- return null;
- }
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org