You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/10/23 16:28:18 UTC

[3/8] ignite git commit: IGNITE-1770: Better raw mode handling.

IGNITE-1770: Better raw mode handling.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/844ff1e8
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/844ff1e8
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/844ff1e8

Branch: refs/heads/ignite-1770
Commit: 844ff1e829b0071d129b332d3a6748960dec66b4
Parents: 1e62f46
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Fri Oct 23 17:19:30 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Oct 23 17:19:30 2015 +0300

----------------------------------------------------------------------
 .../portable/GridPortableMarshaller.java        |  5 ++++-
 .../internal/portable/PortableWriterExImpl.java | 20 ++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/844ff1e8/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java
index d3ddf17..119e80d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/GridPortableMarshaller.java
@@ -211,7 +211,10 @@ public class GridPortableMarshaller {
     public static final int TOTAL_LEN_POS = 12;
 
     /** */
-    public static final byte RAW_DATA_OFF_POS = 16;
+    public static final int RAW_DATA_OFF_POS = 16;
+
+    /** Schema offset position. */
+    public static final int SCHEMA_OFF_POS = 20;
 
     /** */
     public static final int CLS_NAME_POS = 20;

http://git-wip-us.apache.org/repos/asf/ignite/blob/844ff1e8/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
index c3213a8..ef6470d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableWriterExImpl.java
@@ -32,9 +32,11 @@ import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
 import java.util.IdentityHashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
@@ -120,6 +122,10 @@ public class PortableWriterExImpl implements PortableWriter, PortableRawWriterEx
     /** Output stream. */
     private PortableOutputStream out;
 
+    /** Field infos. */
+    // TODO: Optimize.
+    private List<Integer> fieldInfos = new ArrayList<>();
+
     /**
      * @param ctx Context.
      */
@@ -1787,6 +1793,9 @@ public class PortableWriterExImpl implements PortableWriter, PortableRawWriterEx
                 "via rawWriter() method. Consider fixing serialization logic for class: " + cls.getName());
 
         int id = ctx.fieldId(typeId, fieldName);
+        int off = out.position() - start;
+
+        saveFieldInfo(id, off);
 
         if (metaEnabled)
             metaHashSum = 31 * metaHashSum + (id + fieldType);
@@ -1795,6 +1804,17 @@ public class PortableWriterExImpl implements PortableWriter, PortableRawWriterEx
     }
 
      /**
+      * Save field info.
+      *
+      * @param id Field ID.
+      * @param off Offset starting from object head.
+      */
+    private void saveFieldInfo(int id, int off) {
+        fieldInfos.add(id);
+        fieldInfos.add(off);
+    }
+
+     /**
       * Attempts to write the object as a handle.
       *
       * @param obj Object to write.