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 9e206913..ac595998 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 @@ private static void checkByteBuffer(WritableMemory mem, long off, long cap, bool 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 @@ private static void checkByteBuffer(WritableMemory mem, long off, long cap, bool 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 ea49e690..f9cbd78e 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 void wrapBigEndian() { 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 259f571d..c3728ddb 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 @@ * @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 bfb38347..1b77930c 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 @@ static WritableBuffer writableWrap(ByteBuffer byteBuf) { * @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 @@ void putBooleanArray(boolean[] srcArray, int srcOffsetBooleans, //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 56659640..29dd9c9d 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. - * - *

Note: Always qualify this method with the class name, e.g., - * WritableMemory.wrap(...). * @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 @@ static WritableMemory writableWrap(ByteBuffer byteBuf) { * 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. - * - *

Note: Always qualify this method with the class name, e.g., - * WritableMemory.wrap(...). * @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 @@ static WritableHandle allocateDirect(long capacityBytes) { * 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 @@ static WritableMemory writableWrap(double[] arr) { //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 1c798c39..584e4a35 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 @@ 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( @@ -81,6 +84,12 @@ public ByteBuffer getByteBuffer() { return byteBuf; } + @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 ff3f3c59..7416901f 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 @@ 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 @@ BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capac 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 @@ -80,6 +85,12 @@ public ByteBuffer getByteBuffer() { return byteBuf; } + @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 d924f9a9..eadd15e1 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 @@ 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( @@ -81,6 +84,12 @@ public ByteBuffer getByteBuffer() { return byteBuf; } + @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 4a9e4cab..2cd00525 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 @@ 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 @@ BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capac 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 @@ -80,6 +85,12 @@ public ByteBuffer getByteBuffer() { return byteBuf; } + @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 28ed3dd6..53b4a790 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.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 640171aa..5464382c 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 @@ static BaseWritableMemoryImpl wrapHeapArray(final Object arr, final long offsetB } 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 @@ static BaseWritableMemoryImpl wrapByteBuffer( 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 e6732617..a9a11064 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 static BufferImpl wrap(final ByteBuffer byteBuf) { 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 5957fc60..457870f3 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 @@ 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/DirectNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java index 9c0ee479..48b92eb0 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 @@ 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/DirectWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java index b5c36094..e7048a61 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 @@ 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/HeapNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java index 5a74126a..2e81c3f0 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 @@ import java.nio.ByteOrder; +import org.apache.datasketches.memory.MemoryRequestServer; + /** * Implementation of {@link WritableBufferImpl} for heap-based, non-native byte order. * @@ -68,6 +70,11 @@ unsafeObj, getRegionOffset(), getCapacity(), type, originMemory); } + @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 04b3033c..fad9d89e 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 @@ import java.nio.ByteOrder; +import org.apache.datasketches.memory.MemoryRequestServer; + /** * Implementation of {@link WritableMemoryImpl} for heap-based, non-native byte order. * @@ -67,6 +69,11 @@ unsafeObj, getRegionOffset(), getCapacity(), type, this); } + @Override + public MemoryRequestServer getMemoryRequestServer() { + return null; + } + @Override int getTypeId() { return typeId & 0xff; @@ -76,5 +83,5 @@ int getTypeId() { 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 5a9316fa..641b4c47 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 @@ import java.nio.ByteOrder; +import org.apache.datasketches.memory.MemoryRequestServer; + /** * Implementation of {@link WritableBufferImpl} for heap-based, native byte order. * @@ -68,6 +70,11 @@ unsafeObj, getRegionOffset(), getCapacity(), type, originMemory); } + @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 4aa398a0..806cc166 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 @@ import java.nio.ByteOrder; +import org.apache.datasketches.memory.MemoryRequestServer; + /** * Implementation of {@link WritableMemoryImpl} for heap-based, native byte order. * @@ -67,6 +69,11 @@ unsafeObj, getRegionOffset(), getCapacity(), type, this); } + @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 0f135d55..f0302b95 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 @@ import java.nio.ByteOrder; +import org.apache.datasketches.memory.MemoryRequestServer; + /** * Implementation of {@link WritableBufferImpl} for map memory, non-native byte order. * @@ -71,6 +73,11 @@ nativeBaseOffset, getRegionOffset(), getCapacity(), type, valid, originMemory); } + @Override + public MemoryRequestServer getMemoryRequestServer() { + return null; + } + @Override long getNativeBaseOffset() { return nativeBaseOffset; @@ -86,11 +93,4 @@ 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/MapNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java index 9920c2d2..25f002b4 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 @@ import java.nio.ByteOrder; +import org.apache.datasketches.memory.MemoryRequestServer; + /** * Implementation of {@link WritableMemoryImpl} for map memory, non-native byte order. * @@ -70,6 +72,11 @@ nativeBaseOffset, getRegionOffset(), getCapacity(), type, valid, this); } + @Override + public MemoryRequestServer getMemoryRequestServer() { + return null; + } + @Override long getNativeBaseOffset() { return nativeBaseOffset; @@ -84,12 +91,5 @@ int getTypeId() { 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 eafe4179..4174518b 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 @@ import java.nio.ByteOrder; +import org.apache.datasketches.memory.MemoryRequestServer; + /** * Implementation of {@link WritableBufferImpl} for map memory, native byte order. * @@ -71,6 +73,11 @@ nativeBaseOffset, getRegionOffset(), getCapacity(), type, valid, originMemory); } + @Override + public MemoryRequestServer getMemoryRequestServer() { + return null; + } + @Override long getNativeBaseOffset() { return nativeBaseOffset; @@ -86,11 +93,4 @@ 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/MapWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java index 5c9377ae..8ee8a23d 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 @@ import java.nio.ByteOrder; +import org.apache.datasketches.memory.MemoryRequestServer; + /** * Implementation of {@link WritableMemoryImpl} for map memory, native byte order. * @@ -70,6 +72,11 @@ nativeBaseOffset, getRegionOffset(), getCapacity(), type, valid, this); } + @Override + public MemoryRequestServer getMemoryRequestServer() { + return null; + } + @Override long getNativeBaseOffset() { return nativeBaseOffset; @@ -84,12 +91,5 @@ int getTypeId() { 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 dc236eb3..aaaac734 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 4f53d405..020e5a44 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 void putBooleanArray(boolean[] srcArray, int srcOffsetBooleans, @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 bc24430a..a4c32a57 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 void putShortArray(long offsetBytes, short[] srcArray, @Override public abstract void setBits(long offsetBytes, byte bitMask); - - //OTHER WRITABLE API METHODS - @Override - public MemoryRequestServer getMemoryRequestServer() { - return null; - } - }