You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sd...@apache.org on 2022/01/11 23:56:41 UTC
[ignite-3] 13/27: - refactor mark/reset a bit
This is an automated email from the ASF dual-hosted git repository.
sdanilov pushed a commit to branch uos-network
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 10df1f877fd853e6286409d721e30a32db923cc9
Author: Roman Puchkovskiy <ro...@gmail.com>
AuthorDate: Tue Jan 11 13:45:33 2022 +0400
- refactor mark/reset a bit
---
.../network/serialization/marshal/BuiltInContainerMarshallers.java | 4 ++--
.../internal/network/serialization/marshal/BuiltInMarshalling.java | 4 ++--
.../internal/network/serialization/marshal/ProtocolMarshalling.java | 3 +++
.../internal/network/serialization/marshal/UnmarshallingContext.java | 4 ++--
4 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInContainerMarshallers.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInContainerMarshallers.java
index 426e46a..184b0f6 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInContainerMarshallers.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInContainerMarshallers.java
@@ -165,7 +165,7 @@ class BuiltInContainerMarshallers {
) throws IOException {
IntFunction<C> collectionFactory = requiredCollectionFactory(collectionDescriptor);
- context.markSource();
+ context.markSource(ProtocolMarshalling.MAX_LENGTH_BYTE_COUNT);
C collection = BuiltInMarshalling.preInstantiateCollection(input, collectionFactory);
@@ -212,7 +212,7 @@ class BuiltInContainerMarshallers {
) throws IOException {
IntFunction<M> mapFactory = requiredMapFactory(mapDescriptor);
- context.markSource();
+ context.markSource(ProtocolMarshalling.MAX_LENGTH_BYTE_COUNT);
M map = BuiltInMarshalling.preInstantiateMap(input, mapFactory);
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInMarshalling.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInMarshalling.java
index 3aebf83..05fe05a 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInMarshalling.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/BuiltInMarshalling.java
@@ -364,7 +364,7 @@ class BuiltInMarshalling {
}
static <T, C extends Collection<T>> C preInstantiateCollection(DataInput input, IntFunction<C> collectionFactory) throws IOException {
- int length = input.readInt();
+ int length = ProtocolMarshalling.readLength(input);
return collectionFactory.apply(length);
}
@@ -413,7 +413,7 @@ class BuiltInMarshalling {
}
static <K, V, M extends Map<K, V>> M preInstantiateMap(DataInput input, IntFunction<M> mapFactory) throws IOException {
- int length = input.readInt();
+ int length = ProtocolMarshalling.readLength(input);
return mapFactory.apply(length);
}
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshalling.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshalling.java
index c4bc2f3..57574c5 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshalling.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshalling.java
@@ -25,6 +25,9 @@ import java.io.IOException;
* Protocol-wide elements marshalling.
*/
class ProtocolMarshalling {
+ /** Maximum number of bytes needed to encode a container length. */
+ static final int MAX_LENGTH_BYTE_COUNT = 4;
+
static void writeDescriptorOrCommandId(int id, DataOutput output) throws IOException {
output.writeInt(id);
}
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/UnmarshallingContext.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/UnmarshallingContext.java
index 9dd093d..d6bfb7b 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/UnmarshallingContext.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/UnmarshallingContext.java
@@ -67,8 +67,8 @@ class UnmarshallingContext implements IdIndexedDescriptors {
return (T) result;
}
- public void markSource() {
- source.mark(4);
+ public void markSource(int readAheadLimit) {
+ source.mark(readAheadLimit);
}
public void resetSourceToMark() {