comparison src/luan/lib/rpc/RpcServer.java @ 1120:e8fc6712b468

luan Rpc uses luan.lib.rpc
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 07 Aug 2017 23:50:52 -0600
parents 87c674f3f6b7
children
comparison
equal deleted inserted replaced
1119:87c674f3f6b7 1120:e8fc6712b468
1 package luan.lib.rpc; 1 package luan.lib.rpc;
2 2
3 import java.io.EOFException;
3 import java.net.Socket; 4 import java.net.Socket;
4 import java.util.List; 5 import java.util.List;
5 import java.util.ArrayList; 6 import java.util.ArrayList;
6 7
7 8
14 } 15 }
15 16
16 public RpcCall read() 17 public RpcCall read()
17 throws RpcError 18 throws RpcError
18 { 19 {
19 List list = readJson(); 20 try {
20 String cmd = (String)list.remove(0); 21 List list = readJson();
21 Object[] args = list.toArray(); 22 String cmd = (String)list.remove(0);
22 return new RpcCall(inBinary,lenBinary,cmd,args); 23 Object[] args = list.toArray();
24 return new RpcCall(inBinary,lenBinary,cmd,args);
25 } catch(RpcError e) {
26 if( !readSome && e.getCause() instanceof EOFException )
27 return null;
28 throw e;
29 }
23 } 30 }
24 31
25 public void write(RpcResult result) 32 public void write(RpcResult result)
26 throws RpcError 33 throws RpcError
27 { 34 {
36 public void write(RpcException ex) 43 public void write(RpcException ex)
37 throws RpcError 44 throws RpcError
38 { 45 {
39 List list = new ArrayList(); 46 List list = new ArrayList();
40 list.add(false); 47 list.add(false);
48 list.add(ex.getMessage());
41 for( Object val : ex.values ) { 49 for( Object val : ex.values ) {
42 list.add(val); 50 list.add(val);
43 } 51 }
44 write(ex.in,ex.lenIn,list); 52 write(ex.in,ex.lenIn,list);
45 } 53 }