From 7ee0a60b5e80bfb2cb135139d1ab3d2a5126daba Mon Sep 17 00:00:00 2001 From: Vaci Koblizek Date: Mon, 28 Sep 2020 14:31:43 +0100 Subject: [PATCH] stub handlers and test cases for incoming rpc messages --- .../src/main/java/org/capnproto/RpcState.java | 60 +++++++++++++++++++ .../test/java/org/capnproto/RpcStateTest.java | 40 +++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 runtime/src/test/java/org/capnproto/RpcStateTest.java diff --git a/runtime/src/main/java/org/capnproto/RpcState.java b/runtime/src/main/java/org/capnproto/RpcState.java index bc47a24..1492253 100644 --- a/runtime/src/main/java/org/capnproto/RpcState.java +++ b/runtime/src/main/java/org/capnproto/RpcState.java @@ -83,6 +83,64 @@ final class RpcState { }; private final HashMap exportsByCap = new HashMap<>(); + + void handleMessage(IncomingRpcMessage message) { + var reader = message.getBody().getAs(RpcProtocol.Message.factory); + + switch (reader.which()) { + case UNIMPLEMENTED: + handleUnimplemented(reader.getUnimplemented()); + break; + case ABORT: + handleAbort(reader.getAbort()); + break; + case BOOTSTRAP: + handleBootstrap(message, reader.getBootstrap()); + break; + case CALL: + handleCall(message, reader.getCall()); + return; + case RETURN: + handleReturn(message, reader.getReturn()); + break; + case FINISH: + handleFinish(reader.getFinish()); + break; + case RESOLVE: + handleResolve(message, reader.getResolve()); + break; + case DISEMBARGO: + handleDisembargo(reader.getDisembargo()); + break; + default: + // TODO send unimplemented response + break; + } + } + + void handleUnimplemented(RpcProtocol.Message.Reader message) { + } + + void handleAbort(RpcProtocol.Exception.Reader abort) { + } + + void handleBootstrap(IncomingRpcMessage message, RpcProtocol.Bootstrap.Reader bootstrap) { + } + + void handleCall(IncomingRpcMessage message, RpcProtocol.Call.Reader call) { + } + + void handleReturn(IncomingRpcMessage message, RpcProtocol.Return.Reader callReturn) { + } + + void handleFinish(RpcProtocol.Finish.Reader finish) { + } + + void handleResolve(IncomingRpcMessage message, RpcProtocol.Resolve.Reader resolve) { + } + + void handleDisembargo(RpcProtocol.Disembargo.Reader disembargo) { + } interface RpcResponse extends ResponseHook { AnyPointer.Reader getResults(); @@ -185,4 +243,6 @@ final class RpcState { return null; } } + + } diff --git a/runtime/src/test/java/org/capnproto/RpcStateTest.java b/runtime/src/test/java/org/capnproto/RpcStateTest.java new file mode 100644 index 0000000..935103c --- /dev/null +++ b/runtime/src/test/java/org/capnproto/RpcStateTest.java @@ -0,0 +1,40 @@ +package org.capnproto; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class RpcStateTest { + + @Test + public void handleUnimplemented() { + } + + @Test + public void handleAbort() { + } + + @Test + public void handleBootstrap() { + } + + @Test + public void handleCall() { + } + + @Test + public void handleReturn() { + } + + @Test + public void handleFinish() { + } + + @Test + public void handleResolve() { + } + + @Test + public void handleDisembargo() { + } +} \ No newline at end of file