From 035d3d6c9f8bf6919e9002e7870ddae59bc38c17 Mon Sep 17 00:00:00 2001
From: Mick Jordan <mick.jordan@oracle.com>
Date: Mon, 9 Mar 2015 13:24:12 -0700
Subject: [PATCH] additonal serialize .Internals

---
 .../builtin/base/SerializeFunctions.java      | 69 +++++++++++++------
 1 file changed, 48 insertions(+), 21 deletions(-)

diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/SerializeFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/SerializeFunctions.java
index 84431a2547..64517adca7 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/SerializeFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/SerializeFunctions.java
@@ -37,13 +37,7 @@ import com.oracle.truffle.r.runtime.env.*;
 
 public class SerializeFunctions {
 
-    @RBuiltin(name = "unserializeFromConn", kind = INTERNAL, parameterNames = {"conn", "refhook"})
-    public abstract static class UnserializeFromConn extends RInvisibleBuiltinNode {
-        @Specialization
-        protected Object doUnserializeFromConn(VirtualFrame frame, RConnection conn, @SuppressWarnings("unused") RNull refhook) {
-            return doUnserializeFromConn(conn, null, RArguments.getDepth(frame));
-        }
-
+    public abstract static class Adapter extends RInvisibleBuiltinNode {
         @TruffleBoundary
         protected Object doUnserializeFromConn(RConnection conn, @SuppressWarnings("unused") REnvironment refhook, int depth) {
             controlVisibility();
@@ -58,20 +52,6 @@ public class SerializeFunctions {
             }
         }
 
-        @Specialization
-        protected Object doUnserializeFromConn(VirtualFrame frame, RConnection conn, @SuppressWarnings("unused") REnvironment refhook) {
-            // TODO figure out what this really means?
-            return doUnserializeFromConn(frame, conn, RNull.instance);
-        }
-    }
-
-    @RBuiltin(name = "serializeToConn", kind = INTERNAL, parameterNames = {"object", "conn", "ascii", "version", "refhook"})
-    public abstract static class SerializeToConn extends RInvisibleBuiltinNode {
-        @Specialization
-        protected Object doSerializeToConn(VirtualFrame frame, Object object, RConnection conn, byte asciiLogical, RNull version, RNull refhook) {
-            return doSerializeToConn(object, conn, asciiLogical, version, refhook, RArguments.getDepth(frame));
-        }
-
         @TruffleBoundary
         protected Object doSerializeToConn(Object object, RConnection conn, byte asciiLogical, @SuppressWarnings("unused") RNull version, @SuppressWarnings("unused") RNull refhook, int depth) {
             controlVisibility();
@@ -91,4 +71,51 @@ public class SerializeFunctions {
         }
     }
 
+    @RBuiltin(name = "unserializeFromConn", kind = INTERNAL, parameterNames = {"conn", "refhook"})
+    public abstract static class UnserializeFromConn extends Adapter {
+        @Specialization
+        protected Object doUnserializeFromConn(VirtualFrame frame, RConnection conn, @SuppressWarnings("unused") RNull refhook) {
+            return doUnserializeFromConn(conn, null, RArguments.getDepth(frame));
+        }
+
+        @Specialization
+        protected Object doUnserializeFromConn(VirtualFrame frame, RConnection conn, @SuppressWarnings("unused") REnvironment refhook) {
+            // TODO figure out what this really means?
+            return doUnserializeFromConn(frame, conn, RNull.instance);
+        }
+    }
+
+    @RBuiltin(name = "serializeToConn", kind = INTERNAL, parameterNames = {"object", "conn", "ascii", "version", "refhook"})
+    public abstract static class SerializeToConn extends Adapter {
+        @Specialization
+        protected Object doSerializeToConn(VirtualFrame frame, Object object, RConnection conn, byte asciiLogical, RNull version, RNull refhook) {
+            return doSerializeToConn(object, conn, asciiLogical, version, refhook, RArguments.getDepth(frame));
+        }
+
+    }
+
+    @RBuiltin(name = "unserialize", kind = INTERNAL, parameterNames = {"conn", "refhook"})
+    public abstract static class Unserialize extends Adapter {
+        @SuppressWarnings("unused")
+        @Specialization
+        protected Object unSerialize(VirtualFrame frame, RConnection conn, RNull refhook) {
+            return doUnserializeFromConn(conn, null, RArguments.getDepth(frame));
+        }
+    }
+
+    @RBuiltin(name = "serialize", kind = INTERNAL, parameterNames = {"object", "conn", "ascii", "version", "refhook"})
+    public abstract static class Serialize extends Adapter {
+        @Specialization
+        protected Object serialize(VirtualFrame frame, Object object, RConnection conn, byte asciiLogical, RNull version, RNull refhook) {
+            return doSerializeToConn(object, conn, asciiLogical, version, refhook, RArguments.getDepth(frame));
+        }
+    }
+
+    @RBuiltin(name = "serializeb", kind = INTERNAL, parameterNames = {"object", "conn", "ascii", "version", "refhook"})
+    public abstract static class SerializeB extends Adapter {
+        @Specialization
+        protected Object serializeB(VirtualFrame frame, Object object, RConnection conn, byte asciiLogical, RNull version, RNull refhook) {
+            return doSerializeToConn(object, conn, asciiLogical, version, refhook, RArguments.getDepth(frame));
+        }
+    }
 }
-- 
GitLab