diff --git a/src/main/java/net/openhft/chronicle/map/MultiMapFactory.java b/src/main/java/net/openhft/chronicle/map/MultiMapFactory.java index ca137ab23..1a615bd24 100644 --- a/src/main/java/net/openhft/chronicle/map/MultiMapFactory.java +++ b/src/main/java/net/openhft/chronicle/map/MultiMapFactory.java @@ -21,7 +21,7 @@ package net.openhft.chronicle.map; import net.openhft.lang.Maths; import net.openhft.lang.collection.ATSDirectBitSet; import net.openhft.lang.io.DirectStore; -import net.openhft.lang.io.NativeBytes; +import net.openhft.lang.io.NativeBytesI; import static net.openhft.lang.Maths.isPowerOf2; import static net.openhft.lang.MemoryUnit.*; @@ -39,7 +39,7 @@ enum MultiMapFactory { } @Override - public MultiMap create(NativeBytes bytes, NativeBytes bitSetBytes) { + public MultiMap create(NativeBytesI bytes, NativeBytesI bitSetBytes) { return new ShortShortMultiMap(bytes, bitSetBytes); } }, @@ -50,7 +50,7 @@ enum MultiMapFactory { } @Override - public MultiMap create(NativeBytes bytes, NativeBytes bitSetBytes) { + public MultiMap create(NativeBytesI bytes, NativeBytesI bitSetBytes) { return new Int24Int24MultiMap(bytes, bitSetBytes); } }, @@ -61,7 +61,7 @@ enum MultiMapFactory { } @Override - public MultiMap create(NativeBytes bytes, NativeBytes bitSetBytes) { + public MultiMap create(NativeBytesI bytes, NativeBytesI bitSetBytes) { return new IntIntMultiMap(bytes, bitSetBytes); } }; @@ -104,5 +104,5 @@ enum MultiMapFactory { public abstract long sizeInBytes(long minCapacity); - public abstract MultiMap create(NativeBytes bytes, NativeBytes bitSetBytes); + public abstract MultiMap create(NativeBytesI bytes, NativeBytesI bitSetBytes); } diff --git a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java index d57cdb644..28c67936d 100644 --- a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java @@ -30,7 +30,7 @@ import net.openhft.lang.Maths; import net.openhft.lang.collection.ATSDirectBitSet; import net.openhft.lang.io.Bytes; import net.openhft.lang.io.MultiStoreBytes; -import net.openhft.lang.io.NativeBytes; +import net.openhft.lang.io.NativeBytesI; import net.openhft.lang.threadlocal.ThreadLocalCopies; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -126,7 +126,7 @@ final class ReplicatedChronicleMap.Segment createSegment( - NativeBytes segmentHeader, NativeBytes bytes, int index) { + NativeBytesI segmentHeader, NativeBytesI bytes, int index) { return new Segment(segmentHeader, bytes, index); } @@ -678,7 +678,7 @@ final class ReplicatedChronicleMap.Segment { - Segment(NativeBytes segmentHeader, NativeBytes bytes, int index) { + Segment(NativeBytesI segmentHeader, NativeBytesI bytes, int index) { super(segmentHeader, bytes, index); } @@ -993,7 +993,7 @@ final class ReplicatedChronicleMap, } final long createMappedStoreAndSegments(BytesStore bytesStore) throws IOException { - this.ms = bytesStore; + // checks the the store has not been closed + // todo remove the CheckedBytesStore before the release + this.ms = new CheckedBytesStore(bytesStore); onHeaderCreated(); @@ -242,9 +244,9 @@ class VanillaChronicleMap, long segmentSize = segmentSize(); long headerOffset = 0; for (int i = 0; i < this.segments.length; i++) { - NativeBytes segmentHeader = - (NativeBytes) segmentHeaders.bytes(headerOffset, segmentHeaderSize); - NativeBytes segmentData = (NativeBytes) ms.bytes(offset, segmentSize); + NativeBytesI segmentHeader = + (NativeBytesI) segmentHeaders.bytes(headerOffset, segmentHeaderSize); + NativeBytesI segmentData = (NativeBytesI) ms.bytes(offset, segmentSize); this.segments[i] = createSegment(segmentHeader, segmentData, i); headerOffset += segmentHeaderSize; offset += segmentSize; @@ -306,7 +308,7 @@ class VanillaChronicleMap, return segmentHeaderSize; } - Segment createSegment(NativeBytes segmentHeader, NativeBytes bytes, int index) { + Segment createSegment(NativeBytesI segmentHeader, NativeBytesI bytes, int index) { return new Segment(segmentHeader, bytes, index); } @@ -1411,8 +1413,8 @@ class VanillaChronicleMap, */ static final long LOCK_OFFSET = 0L; // 64-bit static final long SIZE_OFFSET = LOCK_OFFSET + 8L; // 32-bit - final NativeBytes segmentHeader; - final NativeBytes bytes; + final NativeBytesI segmentHeader; + final NativeBytesI bytes; final long entriesOffset; private final int index; private final SingleThreadedDirectBitSet freeList; @@ -1426,7 +1428,7 @@ class VanillaChronicleMap, /** * @param index the index of this segment held by the map */ - Segment(NativeBytes segmentHeader, NativeBytes bytes, int index) { + Segment(NativeBytesI segmentHeader, NativeBytesI bytes, int index) { this.segmentHeader = segmentHeader; this.bytes = bytes; this.index = index; @@ -1435,7 +1437,7 @@ class VanillaChronicleMap, hashLookup = createMultiMap(start); start += CACHE_LINES.align(sizeOfMultiMap() + sizeOfMultiMapBitSet(), BYTES) * multiMapsPerSegment(); - final NativeBytes bsBytes = new NativeBytes(ms.objectSerializer(), + final NativeBytesI bsBytes = new NativeBytes(ms.objectSerializer(), start, start + MultiMapFactory.sizeOfBitSetInBytes(actualChunksPerSegment), null); @@ -1453,11 +1455,11 @@ class VanillaChronicleMap, } private MultiMap createMultiMap(long start) { - final NativeBytes multiMapBytes = + final NativeBytesI multiMapBytes = new NativeBytes((ObjectSerializer) null, start, start = start + sizeOfMultiMap(), null); - final NativeBytes sizeOfMultiMapBitSetBytes = + final NativeBytesI sizeOfMultiMapBitSetBytes = new NativeBytes((ObjectSerializer) null, start, start + sizeOfMultiMapBitSet(), null); // multiMapBytes.load(); @@ -2574,7 +2576,7 @@ class VanillaChronicleMap, // of returnedEntry.getKey(), but it seems rather wasteful to workaround so rare // case. final long offset = segment.offsetFromPos(pos); - final NativeBytes entry = segment.reuse(this.entry, offset); + final NativeBytesI entry = segment.reuse(this.entry, offset); final long keySize = keySizeMarshaller.readSize(entry); long position = entry.position(); @@ -2583,7 +2585,7 @@ class VanillaChronicleMap, removePresent(segment, pos, entry, keySize, segmentHash, true); } - final void removePresent(Segment segment, long pos, NativeBytes entry, long keySize, + final void removePresent(Segment segment, long pos, NativeBytesI entry, long keySize, long segmentHash, boolean removeFromMultiMap) { entry.skip(keySize); segment.manageReplicationBytes(entry, true, true);