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