You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by wl...@apache.org on 2022/11/03 17:12:11 UTC
[datasketches-memory] 01/02: Fixing memory/request server interdependency
This is an automated email from the ASF dual-hosted git repository.
wlauer pushed a commit to branch refactorInterfaces
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git
commit fd4041a27406848b7a274d2ca17debd6070cd275
Author: Will Lauer <wl...@yahooinc.com>
AuthorDate: Thu Nov 3 11:59:16 2022 -0500
Fixing memory/request server interdependency
---
.../datasketches/memory/DefaultMemoryFactory.java | 6 +++++-
.../memory/DefaultMemoryRequestServer.java | 20 ++++++++++----------
2 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/main/java/org/apache/datasketches/memory/DefaultMemoryFactory.java b/src/main/java/org/apache/datasketches/memory/DefaultMemoryFactory.java
index 11619d3..e5998c5 100644
--- a/src/main/java/org/apache/datasketches/memory/DefaultMemoryFactory.java
+++ b/src/main/java/org/apache/datasketches/memory/DefaultMemoryFactory.java
@@ -34,10 +34,14 @@ import static org.apache.datasketches.memory.internal.Util.negativeCheck;
*/
public class DefaultMemoryFactory implements MemoryFactory {
- public final static MemoryFactory DEFAULT = DefaultMemoryRequestServer.DEFAULT.getFactory();
+ public final static MemoryFactory DEFAULT = new DefaultMemoryFactory();
private final MemoryRequestServer memoryRequestServer;
+ public DefaultMemoryFactory() {
+ this(DefaultMemoryRequestServer.DEFAULT);
+ }
+
public DefaultMemoryFactory(MemoryRequestServer memoryRequestServer) {
this.memoryRequestServer = memoryRequestServer;
}
diff --git a/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java b/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
index 1393d7c..3759dce 100644
--- a/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
+++ b/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
@@ -68,8 +68,8 @@ public final class DefaultMemoryRequestServer implements MemoryRequestServer {
public static final DefaultMemoryRequestServer DEFAULT = new DefaultMemoryRequestServer();
- private MemoryFactory factory = new DefaultMemoryFactory(this);
-
+ private MemoryFactory factory;
+
/**
* {@inheritDoc}
*
@@ -77,6 +77,9 @@ public final class DefaultMemoryRequestServer implements MemoryRequestServer {
*/
@Override
public WritableMemory request(final WritableMemory currentWritableMemory, final long capacityBytes) {
+ if (factory == null) {
+ factory = DefaultMemoryFactory.DEFAULT;
+ }
final WritableMemory wmem = factory.allocate((int)capacityBytes, currentWritableMemory.getByteOrder());
return wmem;
}
@@ -92,15 +95,12 @@ public final class DefaultMemoryRequestServer implements MemoryRequestServer {
public void requestClose(final WritableMemory memToRelease, final WritableMemory newMemory) {
//do nothing
}
-
- /**
- * Get the associated {@link MemoryFactory}. This has package level access so that the default
- * {@link DefaultMemoryFactory} can correctly initialize itself with a cross reference to this.
- *
- * @return The current {@link MemoryFactory}
- */
- MemoryFactory getFactory() {
+
+ public MemoryFactory getFactory() {
return factory;
}
+ public void setFactory(MemoryFactory factory) {
+ this.factory = factory;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org