ignite-6149
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7441fe30 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7441fe30 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7441fe30 Branch: refs/heads/ignite-6149 Commit: 7441fe30cdd9b5397a008dbc5695b98d40457568 Parents: e26bc041 Author: sboikov <[email protected]> Authored: Fri Sep 15 15:51:12 2017 +0300 Committer: sboikov <[email protected]> Committed: Fri Sep 15 15:51:12 2017 +0300 ---------------------------------------------------------------------- .../ignite/internal/direct/DirectMessageWriter.java | 9 +++++++++ .../internal/direct/stream/DirectByteBufferStream.java | 4 ++++ .../direct/stream/v1/DirectByteBufferStreamImplV1.java | 8 ++++++++ .../direct/stream/v2/DirectByteBufferStreamImplV2.java | 11 +++++++++++ .../plugin/extensions/communication/MessageWriter.java | 2 ++ 5 files changed, 34 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/7441fe30/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java index 3ce4dfe..b224d68 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/direct/DirectMessageWriter.java @@ -192,6 +192,15 @@ public class DirectMessageWriter implements MessageWriter { } /** {@inheritDoc} */ + @Override public boolean writeLongArray(String name, long[] val, int len) { + DirectByteBufferStream stream = state.item().stream; + + stream.writeLongArray(val, len); + + return stream.lastFinished(); + } + + /** {@inheritDoc} */ @Override public boolean writeFloatArray(String name, @Nullable float[] val) { DirectByteBufferStream stream = state.item().stream; http://git-wip-us.apache.org/repos/asf/ignite/blob/7441fe30/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java index bc9de5a..ea5bf5d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/DirectByteBufferStream.java @@ -28,6 +28,8 @@ import org.apache.ignite.plugin.extensions.communication.MessageCollectionItemTy import org.apache.ignite.plugin.extensions.communication.MessageReader; import org.apache.ignite.plugin.extensions.communication.MessageWriter; +import static org.apache.ignite.internal.util.GridUnsafe.BYTE_ARR_OFF; + /** * Direct marshalling I/O stream. */ @@ -114,6 +116,8 @@ public interface DirectByteBufferStream { */ public void writeLongArray(long[] val); + public void writeLongArray(long[] val, int len); + /** * @param val Value. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/7441fe30/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v1/DirectByteBufferStreamImplV1.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v1/DirectByteBufferStreamImplV1.java b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v1/DirectByteBufferStreamImplV1.java index dccf725..6f6bc25 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v1/DirectByteBufferStreamImplV1.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v1/DirectByteBufferStreamImplV1.java @@ -436,6 +436,14 @@ public class DirectByteBufferStreamImplV1 implements DirectByteBufferStream { } /** {@inheritDoc} */ + @Override public void writeLongArray(long[] val, int len) { + if (val != null) + lastFinished = writeArray(val, GridUnsafe.LONG_ARR_OFF, len, len << 3); + else + writeInt(-1); + } + + /** {@inheritDoc} */ @Override public void writeFloatArray(float[] val) { if (val != null) lastFinished = writeArray(val, GridUnsafe.FLOAT_ARR_OFF, val.length, val.length << 2); http://git-wip-us.apache.org/repos/asf/ignite/blob/7441fe30/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java index 9901b73..0619240 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/direct/stream/v2/DirectByteBufferStreamImplV2.java @@ -527,6 +527,17 @@ public class DirectByteBufferStreamImplV2 implements DirectByteBufferStream { } /** {@inheritDoc} */ + @Override public void writeLongArray(long[] val, int len) { + if (val != null) + if (BIG_ENDIAN) + lastFinished = writeArrayLE(val, LONG_ARR_OFF, len, 8, 3); + else + lastFinished = writeArray(val, LONG_ARR_OFF, len, len << 3); + else + writeInt(-1); + } + + /** {@inheritDoc} */ @Override public void writeFloatArray(float[] val) { if (val != null) if (BIG_ENDIAN) http://git-wip-us.apache.org/repos/asf/ignite/blob/7441fe30/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java index 982aef5..1075608 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriter.java @@ -172,6 +172,8 @@ public interface MessageWriter { */ public boolean writeLongArray(String name, long[] val); + public boolean writeLongArray(String name, long[] val, int len); + /** * Writes {@code float} array. *
