mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
HCOLL-184 added a method to return the server version from the stateless client
This commit is contained in:
@@ -114,6 +114,7 @@ class StatelessChronicleMap<K, V> implements ChronicleMap<K, V>, Closeable, Clon
|
||||
PUT_IF_ABSENT,
|
||||
REMOVE_WITH_VALUE,
|
||||
TO_STRING,
|
||||
VERSION,
|
||||
PUT_ALL,
|
||||
PUT_ALL_WITHOUT_ACC,
|
||||
HASH_CODE,
|
||||
@@ -431,6 +432,11 @@ class StatelessChronicleMap<K, V> implements ChronicleMap<K, V>, Closeable, Clon
|
||||
return fetchObject(String.class, TO_STRING);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String version() {
|
||||
return fetchObject(String.class, VERSION);
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return fetchBoolean(IS_EMPTY);
|
||||
}
|
||||
|
||||
@@ -1485,9 +1485,13 @@ class StatelessServerConnector<K, V> {
|
||||
|
||||
case REMOVE_WITH_VALUE:
|
||||
return removeWithValue(reader, writer.in(), sizeLocation, timestamp, identifier);
|
||||
|
||||
case TO_STRING:
|
||||
return toString(writer.in(), sizeLocation);
|
||||
|
||||
case VERSION:
|
||||
return version(writer.in(), sizeLocation);
|
||||
|
||||
case PUT_ALL:
|
||||
return putAll(reader, writer.in(), sizeLocation, timestamp, identifier);
|
||||
|
||||
@@ -1609,6 +1613,25 @@ class StatelessServerConnector<K, V> {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
private Work version(@NotNull Bytes writer, final long sizeLocation) {
|
||||
|
||||
|
||||
final long remaining = writer.remaining();
|
||||
try {
|
||||
String result = map.version();
|
||||
writer.writeObject(result);
|
||||
} catch (Throwable e) {
|
||||
return sendException(writer, sizeLocation, e);
|
||||
}
|
||||
|
||||
assert remaining > 4;
|
||||
|
||||
writeSizeAndFlags(sizeLocation, false, writer);
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("SameReturnValue")
|
||||
@Nullable
|
||||
private Work sendException(@NotNull Bytes writer, long sizeLocation, @NotNull Throwable e) {
|
||||
|
||||
Reference in New Issue
Block a user