diff --git a/src/main/java/net/openhft/chronicle/map/ClientWiredStatelessChronicleEntrySet.java b/src/main/java/net/openhft/chronicle/map/ClientWiredStatelessChronicleEntrySet.java index 6db8641c4..b40b453ac 100644 --- a/src/main/java/net/openhft/chronicle/map/ClientWiredStatelessChronicleEntrySet.java +++ b/src/main/java/net/openhft/chronicle/map/ClientWiredStatelessChronicleEntrySet.java @@ -97,7 +97,7 @@ class ClientWiredStatelessChronicleEntrySet extends MapStatelessClient extends MapStatelessClient extends MapStatelessClient writeField(out, (K) key)); } @NotNull @@ -230,9 +230,18 @@ class ClientWiredStatelessChronicleMap extends MapStatelessClient writeField(out, (V) value)); } + public void putAll(@NotNull Map map) { + + proxyReturnVoid(putAll, v -> + map.entrySet().forEach(e -> v.sequence(toParameters(put, e.getKey(), e.getValue()))) + ); + + } + + public long longSize() { return proxyReturnLong(longSize); } @@ -243,7 +252,7 @@ class ClientWiredStatelessChronicleMap extends MapStatelessClient extends MapStatelessClient extends MapStatelessClient map) { - - - } - public V put(K key, V value) { if (key == null || value == null) @@ -344,19 +348,6 @@ class ClientWiredStatelessChronicleMap extends MapStatelessClient callback) { - throw new UnsupportedOperationException(); - }*/ - private K readK(WireKey argName, Wire wireIn, K usingValue) { - return (K) readObject(argName, wireIn, usingValue, kClass); - } - - private int readInt(long tid, long startTime) { assert !hub.outBytesLock().isHeldByCurrentThread(); @@ -375,23 +366,10 @@ class ClientWiredStatelessChronicleMap extends MapStatelessClient consumer) { final long startTime = System.currentTimeMillis(); - return readBoolean(sendEvent(startTime, eventId, out -> writeField(out, value)), - startTime); - } - - @SuppressWarnings("SameParameterValue") - private boolean proxyReturnBooleanK(@NotNull final EventId eventId, K key) { - final long startTime = System.currentTimeMillis(); - return readBoolean(sendEvent(startTime, eventId, out -> writeField(out, key)), startTime); - } - - - @SuppressWarnings("SameParameterValue") - private boolean proxyReturnBoolean(@NotNull final EventId eventId) { - final long startTime = System.currentTimeMillis(); - return readBoolean(sendEvent(startTime, eventId, VOID_PARAMETERS), startTime); + return readBoolean(sendEvent(startTime, eventId, consumer), startTime); } @@ -401,20 +379,6 @@ class ClientWiredStatelessChronicleMap extends MapStatelessClient wireOut.writeEventName(methodName)); - hub.writeSocket(hub.outWire()); - } finally { - hub.outBytesLock().unlock(); - } - return tid; - }*/ - @Override protected boolean eventReturnsNull(@NotNull EventId methodName) { diff --git a/src/main/java/net/openhft/chronicle/map/MapWireHandler.java b/src/main/java/net/openhft/chronicle/map/MapWireHandler.java index f86fc1a8d..7a3aff098 100644 --- a/src/main/java/net/openhft/chronicle/map/MapWireHandler.java +++ b/src/main/java/net/openhft/chronicle/map/MapWireHandler.java @@ -353,13 +353,6 @@ public class MapWireHandler implements WireHandler, Consumer return; } - - if (putAll.contentEquals(eventName)) { - putAll(tid); - return; - } - - if (longSize.contentEquals(eventName)) { write(b -> outWire.write(reply).int64(b.longSize())); return; @@ -395,14 +388,10 @@ public class MapWireHandler implements WireHandler, Consumer valueIn.marshallable(wire -> { final Params[] params = getAndPut.params(); - final byte[] key1 = wire.read(params[0]).bytes(); - final byte[] value1 = wire.read(params[1]).bytes(); - - MapWireHandler.this.writeValue(b -> { - final byte[] result = b.put(key1, value1); - return result; - }); + MapWireHandler.this.writeValue(b -> b.put( + wire.read(params[0]).bytes(), + wire.read(params[1]).bytes())); }); @@ -419,6 +408,28 @@ public class MapWireHandler implements WireHandler, Consumer return; } + if (putAll.contentEquals(eventName)) { + + final Map data = new HashMap(); + + writeVoid(b -> { + + while (valueIn.hasNext()) { + + valueIn.sequence(v -> valueIn.marshallable(wire -> data.put( + wire.read(getAndPut.params()[0]).bytes(), + wire.read(getAndPut.params()[1]).bytes()))); + } + + b.delegate.putAll(data); + + }); + + return; + } + + + if (replace.contentEquals(eventName)) {