diff src/goodjava/rpc/Rpc.java @ 1402:27efb1fcbcb5

move luan.lib to goodjava
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 17 Sep 2019 01:35:01 -0400
parents src/luan/lib/rpc/Rpc.java@e4710ddfd287
children 491b355acef7
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/goodjava/rpc/Rpc.java	Tue Sep 17 01:35:01 2019 -0400
@@ -0,0 +1,36 @@
+package goodjava.rpc;
+
+import java.io.IOException;
+
+
+// static utils
+public class Rpc {
+	private Rpc() {}  // never
+
+	public static final RpcResult OK = new RpcResult();
+
+	public static final RpcCall CLOSE = new RpcCall("close");
+	public static final RpcCall PING = new RpcCall("ping");
+	public static final String ECHO = "echo";
+
+	public static final RpcException COMMAND_NOT_FOUND = new RpcException("command_not_found");
+
+	public static boolean handle(RpcServer server,RpcCall call)
+		throws IOException
+	{
+		if( CLOSE.cmd.equals(call.cmd) ) {
+			server.close();
+			return true;
+		}
+		if( PING.cmd.equals(call.cmd) ) {
+			server.write(OK);
+			return true;
+		}
+		if( ECHO.equals(call.cmd) ) {
+			server.write(new RpcResult(call.args));
+			return true;
+		}
+		return false;
+	}
+
+}