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 84431a25477a1ec03f06fd04a671630bd595bdc8..64517adca797ec19bf5d0543a6570f5885585a28 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)); + } + } }