1118
|
1 package luan.lib.rpc;
|
|
2
|
|
3 import java.net.Socket;
|
|
4 import java.util.List;
|
|
5 import java.util.ArrayList;
|
|
6
|
|
7
|
|
8 public class RpcServer extends RpcCon {
|
|
9
|
1119
|
10 public RpcServer(Socket socket)
|
|
11 throws RpcError
|
|
12 {
|
1118
|
13 super(socket);
|
|
14 }
|
|
15
|
|
16 public RpcCall read()
|
1119
|
17 throws RpcError
|
1118
|
18 {
|
|
19 List list = readJson();
|
|
20 String cmd = (String)list.remove(0);
|
|
21 Object[] args = list.toArray();
|
|
22 return new RpcCall(inBinary,lenBinary,cmd,args);
|
|
23 }
|
|
24
|
|
25 public void write(RpcResult result)
|
1119
|
26 throws RpcError
|
1118
|
27 {
|
|
28 List list = new ArrayList();
|
|
29 list.add(true);
|
|
30 for( Object val : result.returnValues ) {
|
|
31 list.add(val);
|
|
32 }
|
|
33 write(result.in,result.lenIn,list);
|
|
34 }
|
|
35
|
|
36 public void write(RpcException ex)
|
1119
|
37 throws RpcError
|
1118
|
38 {
|
|
39 List list = new ArrayList();
|
|
40 list.add(false);
|
|
41 for( Object val : ex.values ) {
|
|
42 list.add(val);
|
|
43 }
|
|
44 write(ex.in,ex.lenIn,list);
|
|
45 }
|
|
46
|
|
47 }
|