mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
Merge remote-tracking branch 'origin/2.1' into 2.1
Conflicts: src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java
This commit is contained in:
+1
-1
@@ -52,7 +52,7 @@ public abstract class BasicCopyingMetaBytesInterop<E, W> implements MetaBytesInt
|
||||
|
||||
@Override
|
||||
public boolean startsWith(W writer, Bytes bytes, E e) {
|
||||
return bytes.startsWith(buffer.buffer);
|
||||
return BytesBytesInterop.INSTANCE.startsWith(bytes, buffer.buffer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -929,12 +929,12 @@ final class ReplicatedChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? supe
|
||||
throw defaultValueOrPrepareBytesShouldBeSpecified();
|
||||
}
|
||||
|
||||
final long size = metaElemWriter.size(elemWriter, elem);
|
||||
final long elemSize = metaElemWriter.size(elemWriter, elem);
|
||||
|
||||
putValue(pos, entry, valueSizePos,
|
||||
entryEndAddr, isDeleted,
|
||||
segmentState,
|
||||
metaElemWriter, elemWriter, elem, size,
|
||||
metaElemWriter, elemWriter, elem, elemSize,
|
||||
hashLookup, sizeOfEverythingBeforeValue);
|
||||
pos = segmentState.pos;
|
||||
|
||||
@@ -943,6 +943,7 @@ final class ReplicatedChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? supe
|
||||
|
||||
entry.position(valueSizePos);
|
||||
long valueSize = readValueSize(entry);
|
||||
assert valueSize == elemSize;
|
||||
long valuePos = entry.position();
|
||||
RV v = readValue.readValue(copies, entry, usingValue, valueSize);
|
||||
|
||||
@@ -1154,9 +1155,9 @@ final class ReplicatedChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? supe
|
||||
}
|
||||
|
||||
// put callbacks
|
||||
boolean hasValueChanged = updateResult != UpdateResult.UNCHANGED;
|
||||
onPutMaybeRemote(segmentState.pos, false);
|
||||
if (bytesEventListener != null) {
|
||||
boolean hasValueChanged = updateResult != UpdateResult.UNCHANGED;
|
||||
bytesEventListener.onPut(
|
||||
entry, 0L, metaDataBytes, valueSizePos, false, false,
|
||||
hasValueChanged,
|
||||
@@ -1164,7 +1165,6 @@ final class ReplicatedChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? supe
|
||||
timeStamp, replacedTimestamp);
|
||||
}
|
||||
if (eventListener != null) {
|
||||
boolean hasValueChanged = updateResult != UpdateResult.UNCHANGED;
|
||||
eventListener.onPut(toKey.toInstance(copies, key, keySize),
|
||||
toValue.toInstance(copies, value, valueSize), null, false,
|
||||
isDeleted, hasValueChanged, identifier, replacedIdentifier,
|
||||
@@ -1207,7 +1207,8 @@ final class ReplicatedChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? supe
|
||||
long replacedTimestamp = 0;
|
||||
|
||||
bytesEventListener.onPut(entry, 0L, metaDataBytes,
|
||||
segmentState.valueSizePos, true, false, true, identifier, replacedIdentifier, timeStamp, replacedTimestamp);
|
||||
segmentState.valueSizePos, true, false, true, identifier,
|
||||
replacedIdentifier, timeStamp, replacedTimestamp);
|
||||
}
|
||||
if (eventListener != null) {
|
||||
byte replacedIdentifier = 0;
|
||||
@@ -1335,7 +1336,8 @@ final class ReplicatedChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? supe
|
||||
byte replacedIdentifier = 0;
|
||||
long replacedTimestamp = 0;
|
||||
bytesEventListener.onPut(entry, 0L, metaDataBytes,
|
||||
segmentState.valueSizePos, true, remote, true, identifier, replacedIdentifier, timestamp,
|
||||
segmentState.valueSizePos, true, remote, true, identifier,
|
||||
replacedIdentifier, timestamp,
|
||||
replacedTimestamp);
|
||||
}
|
||||
if (eventListener != null) {
|
||||
|
||||
@@ -2199,8 +2199,6 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? super KI>,
|
||||
} else {
|
||||
long valueAddr = entry.positionAddr();
|
||||
long entryEndAddr = valueAddr + prevValueSize;
|
||||
hasValueChanged = prevValueSize != valueSize ||
|
||||
!metaValueInterop.startsWith(valueInterop, entry, value);
|
||||
|
||||
// putValue may relocate entry and change offset
|
||||
putValue(pos, entry, valueSizePos, entryEndAddr, false, segmentState,
|
||||
@@ -2211,6 +2209,7 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? super KI>,
|
||||
}
|
||||
|
||||
// put callbacks
|
||||
boolean hasValueChanged = updateResult != UpdateResult.UNCHANGED;
|
||||
onPutMaybeRemote(segmentState.pos, false);
|
||||
if (bytesEventListener != null)
|
||||
bytesEventListener.onPut(entry, 0L, metaDataBytes, valueSizePos, false,
|
||||
@@ -2219,7 +2218,6 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? super KI>,
|
||||
segmentState.timestamp, 0
|
||||
);
|
||||
if (eventListener != null) {
|
||||
|
||||
eventListener.onPut(toKey.toInstance(copies, key, keySize),
|
||||
toValue.toInstance(copies, value, valueSize), null, false,
|
||||
false, hasValueChanged,
|
||||
@@ -2323,29 +2321,19 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? super KI>,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// key is not found
|
||||
VBI valueInterop = getValueInterops.getValueInterop(copies);
|
||||
MVBI metaValueInterop =
|
||||
getValueInterops.getMetaValueInterop(copies, valueInterop, value);
|
||||
|
||||
|
||||
long valueSize = putEntry(segmentState, metaKeyInterop, keyInterop, key, keySize,
|
||||
metaValueInterop, valueInterop, value, entry, false);
|
||||
|
||||
|
||||
boolean hasValueChanged = false;
|
||||
if (eventListener != null || bytesEventListener != null) {
|
||||
// todo roman to check this
|
||||
hasValueChanged =
|
||||
!metaValueInterop.startsWith(valueInterop, entry, value);
|
||||
}
|
||||
|
||||
// put callbacks
|
||||
onPut(this, segmentState.pos);
|
||||
if (bytesEventListener != null)
|
||||
bytesEventListener.onPut(entry, 0L, metaDataBytes,
|
||||
segmentState.valueSizePos, true, false, hasValueChanged,
|
||||
segmentState.valueSizePos, true, false, true,
|
||||
segmentState.identifier, (byte) 0, segmentState.timestamp, 0);
|
||||
if (eventListener != null)
|
||||
eventListener.onPut(toKey.toInstance(copies, key, keySize),
|
||||
@@ -2411,10 +2399,7 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? super KI>,
|
||||
// put callbacks
|
||||
onPutMaybeRemote(segmentState.pos, remote);
|
||||
if (bytesEventListener != null)
|
||||
bytesEventListener.onPut(entry, 0L, metaDataBytes, valueSizePos, false, remote,
|
||||
hasValueChanged,
|
||||
segmentState.identifier, replacedIdentifier,
|
||||
segmentState.timestamp, replacedTimestamp);
|
||||
bytesEventListener.onPut(entry, 0L, metaDataBytes, valueSizePos, false, remote, hasValueChanged);
|
||||
if (eventListener != null) {
|
||||
eventListener.onPut(toKey.toInstance(copies, key, keySize),
|
||||
toValue.toInstance(copies, value, valueSize), prevValueInstance, remote,
|
||||
@@ -2660,9 +2645,7 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? super KI>,
|
||||
// remove callbacks
|
||||
onRemoveMaybeRemote(pos, remote);
|
||||
if (bytesEventListener != null)
|
||||
bytesEventListener.onRemove(entry, 0L, metaDataBytes, valueSizePos, remote,
|
||||
segmentState.identifier, replacedIdentifier,
|
||||
segmentState.timestamp, replacedTimestamp);
|
||||
bytesEventListener.onRemove(entry, 0L, metaDataBytes, valueSizePos, remote);
|
||||
if (eventListener != null) {
|
||||
V removedValueForEventListener =
|
||||
toValue.toInstance(copies, removedValue, valueSize);
|
||||
@@ -2817,10 +2800,7 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? super KI>,
|
||||
onPut(this, segmentState.pos);
|
||||
if (bytesEventListener != null) {
|
||||
long keyPos = metaDataBytes;
|
||||
bytesEventListener.onPut(entry, 0L, keyPos, segmentState.valueSizePos, true,
|
||||
false, hasValueChanged,
|
||||
segmentState.identifier, replacedIdentifier,
|
||||
segmentState.timestamp, replacedTimestamp);
|
||||
bytesEventListener.onPut(entry, 0L, keyPos, segmentState.valueSizePos, true, false, hasValueChanged);
|
||||
}
|
||||
if (eventListener != null)
|
||||
eventListener.onPut(toKey.toInstance(copies, key, keySize),
|
||||
|
||||
Reference in New Issue
Block a user