http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e63ce523/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriteState.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriteState.java
 
b/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriteState.java
deleted file mode 100644
index ba21e25..0000000
--- 
a/modules/core/src/main/java/org/apache/ignite/plugin/extensions/communication/MessageWriteState.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.plugin.extensions.communication;
-
-import org.apache.ignite.internal.direct.*;
-
-/**
- * TODO
- */
-public final class MessageWriteState {
-    public static MessageWriteState create(MessageFormatter formatter) {
-        MessageWriter writer = formatter.writer();
-
-        MessageWriteState state = new MessageWriteState(writer);
-
-        // TODO: rework
-        ((DirectMessageWriter)writer).state(state);
-
-        return state;
-    }
-
-    private final MessageWriter writer;
-
-    private final Stack stack;
-
-    private MessageWriteState(MessageWriter writer) {
-        this.writer = writer;
-
-        stack = new Stack(-1);
-    }
-
-    public MessageWriter writer() {
-        return writer;
-    }
-
-    public boolean isTypeWritten() {
-        return stack.current() >= 0;
-    }
-
-    public void setTypeWritten() {
-        assert stack.current() == -1;
-
-        stack.incrementCurrent();
-    }
-
-    public int index() {
-        return stack.current();
-    }
-
-    public void increment() {
-        stack.incrementCurrent();
-    }
-
-    public void forward() {
-        stack.push();
-    }
-
-    public void backward(boolean finished) {
-        if (finished)
-            stack.resetCurrent();
-
-        stack.pop();
-    }
-
-    public void reset() {
-        stack.reset();
-    }
-
-    private static class Stack {
-        private final int[] arr = new int[10];
-
-        private final int initVal;
-
-        private int pos;
-
-        private Stack(int initVal) {
-            this.initVal = initVal;
-
-            for (int i = 0; i < arr.length; i++)
-                arr[i] = initVal;
-        }
-
-        int current() {
-            return arr[pos];
-        }
-
-        void incrementCurrent() {
-            arr[pos]++;
-        }
-
-        void resetCurrent() {
-            arr[pos] = initVal;
-        }
-
-        void push() {
-            pos++;
-        }
-
-        void pop() {
-            pos--;
-        }
-
-        void reset() {
-            assert pos == 0;
-
-            resetCurrent();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e63ce523/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 e6117a8..ee729e8 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
@@ -255,4 +255,18 @@ public interface MessageWriter {
      */
     public <K, V> boolean writeMap(String name, Map<K, V> map, 
MessageAdapter.Type keyType,
         MessageAdapter.Type valType);
+
+    public boolean isTypeWritten();
+
+    public void onTypeWritten();
+
+    public int state();
+
+    public void incrementState();
+
+    public void beforeInnerMessageWrite();
+
+    public void afterInnerMessageWrite(boolean finished);
+
+    public void reset();
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e63ce523/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java
index 62e48d1..c49df8f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/collision/jobstealing/JobStealingRequest.java
@@ -69,24 +69,22 @@ public class JobStealingRequest extends MessageAdapter {
 
     /** {@inheritDoc} */
     @SuppressWarnings("all")
-    @Override public boolean writeTo(ByteBuffer buf, MessageWriteState state) {
-        MessageWriter writer = state.writer();
-
+    @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
         writer.setBuffer(buf);
 
-        if (!state.isTypeWritten()) {
+        if (!writer.isTypeWritten()) {
             if (!writer.writeByte(null, directType()))
                 return false;
 
-            state.setTypeWritten();
+            writer.onTypeWritten();
         }
 
-        switch (state.index()) {
+        switch (writer.state()) {
             case 0:
                 if (!writer.writeInt("delta", delta))
                     return false;
 
-                state.increment();
+                writer.incrementState();
 
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e63ce523/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index eb118b2..6ddb15b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -2211,9 +2211,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
 
                         buf.order(ByteOrder.nativeOrder());
 
-                        MessageWriteState state = 
MessageWriteState.create(getSpiContext().messageFormatter());
-
-                        boolean written = msg.writeTo(buf, state);
+                        boolean written = msg.writeTo(buf, 
getSpiContext().messageFormatter().writer());
 
                         assert written;
 
@@ -3038,7 +3036,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
         }
 
         /** {@inheritDoc} */
-        @Override public boolean writeTo(ByteBuffer buf, MessageWriteState 
state) {
+        @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) 
{
             if (buf.remaining() < 33)
                 return false;
 
@@ -3130,7 +3128,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
         }
 
         /** {@inheritDoc} */
-        @Override public boolean writeTo(ByteBuffer buf, MessageWriteState 
state) {
+        @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) 
{
             if (buf.remaining() < 9)
                 return false;
 
@@ -3211,7 +3209,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
         }
 
         /** {@inheritDoc} */
-        @Override public boolean writeTo(ByteBuffer buf, MessageWriteState 
state) {
+        @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) 
{
             assert nodeIdBytes.length == 16;
 
             if (buf.remaining() < 17)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e63ce523/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
index 3fd87a5..7ffb4a1 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridCommunicationSendMessageSelfTest.java
@@ -155,7 +155,7 @@ public class GridCommunicationSendMessageSelfTest extends 
GridCommonAbstractTest
         }
 
         /** {@inheritDoc} */
-        @Override public boolean writeTo(ByteBuffer buf, MessageWriteState 
state) {
+        @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) 
{
 //            writer.setBuffer(buf);
 //
 //            return writer.writeByte(null, directType());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e63ce523/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
index 22c6a04..0f5ac97 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerSelfTest.java
@@ -231,7 +231,7 @@ public class GridIoManagerSelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public boolean writeTo(ByteBuffer buf, MessageWriteState 
state) {
+        @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) 
{
             return true;
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e63ce523/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridTestMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridTestMessage.java
 
b/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridTestMessage.java
index b6353b7..b185031 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridTestMessage.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/loadtests/communication/GridTestMessage.java
@@ -119,7 +119,7 @@ class GridTestMessage extends MessageAdapter implements 
Externalizable {
     }
 
     /** {@inheritDoc} */
-    @Override public boolean writeTo(ByteBuffer buf, MessageWriteState state) {
+    @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
         return true;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e63ce523/modules/core/src/test/java/org/apache/ignite/spi/communication/GridTestMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/spi/communication/GridTestMessage.java
 
b/modules/core/src/test/java/org/apache/ignite/spi/communication/GridTestMessage.java
index 8ab4b6e..8e64667 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/spi/communication/GridTestMessage.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/spi/communication/GridTestMessage.java
@@ -115,7 +115,7 @@ public class GridTestMessage extends MessageAdapter {
 
     /** {@inheritDoc} */
     @SuppressWarnings("fallthrough")
-    @Override public boolean writeTo(ByteBuffer buf, MessageWriteState state) {
+    @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) {
 //        writer.setBuffer(buf);
 //
 //        if (!typeWritten) {

Reply via email to