Mercurial Hosting > luan
comparison src/luan/lib/rpc/RpcServer.java @ 1118:e4710ddfd287
start luan/lib/rpc
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 06 Aug 2017 20:11:11 -0600 |
parents | |
children | 87c674f3f6b7 |
comparison
equal
deleted
inserted
replaced
1117:9a1aa6fc0b4e | 1118:e4710ddfd287 |
---|---|
1 package luan.lib.rpc; | |
2 | |
3 import java.io.IOException; | |
4 import java.net.Socket; | |
5 import java.util.List; | |
6 import java.util.ArrayList; | |
7 | |
8 | |
9 public class RpcServer extends RpcCon { | |
10 | |
11 public RpcServer(Socket socket) throws IOException { | |
12 super(socket); | |
13 } | |
14 | |
15 public RpcCall read() | |
16 throws IOException | |
17 { | |
18 List list = readJson(); | |
19 String cmd = (String)list.remove(0); | |
20 Object[] args = list.toArray(); | |
21 return new RpcCall(inBinary,lenBinary,cmd,args); | |
22 } | |
23 | |
24 public void write(RpcResult result) | |
25 throws IOException | |
26 { | |
27 List list = new ArrayList(); | |
28 list.add(true); | |
29 for( Object val : result.returnValues ) { | |
30 list.add(val); | |
31 } | |
32 write(result.in,result.lenIn,list); | |
33 } | |
34 | |
35 public void write(RpcException ex) | |
36 throws IOException | |
37 { | |
38 List list = new ArrayList(); | |
39 list.add(false); | |
40 for( Object val : ex.values ) { | |
41 list.add(val); | |
42 } | |
43 write(ex.in,ex.lenIn,list); | |
44 } | |
45 | |
46 } |