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.
      *

Reply via email to