Mercurial Hosting > luan
comparison src/goodjava/rpc/RpcClient.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/RpcClient.java@87c674f3f6b7 |
| children |
comparison
equal
deleted
inserted
replaced
| 1401:ef1620aa99cb | 1402:27efb1fcbcb5 |
|---|---|
| 1 package goodjava.rpc; | |
| 2 | |
| 3 import java.net.Socket; | |
| 4 import java.util.List; | |
| 5 import java.util.ArrayList; | |
| 6 | |
| 7 | |
| 8 public class RpcClient extends RpcCon { | |
| 9 | |
| 10 public RpcClient(Socket socket) | |
| 11 throws RpcError | |
| 12 { | |
| 13 super(socket); | |
| 14 } | |
| 15 | |
| 16 public void write(RpcCall call) | |
| 17 throws RpcError | |
| 18 { | |
| 19 List list = new ArrayList(); | |
| 20 list.add(call.cmd); | |
| 21 for( Object arg : call.args ) { | |
| 22 list.add(arg); | |
| 23 } | |
| 24 write(call.in,call.lenIn,list); | |
| 25 } | |
| 26 | |
| 27 public RpcResult read() | |
| 28 throws RpcError, RpcException | |
| 29 { | |
| 30 List list = readJson(); | |
| 31 boolean ok = (Boolean)list.remove(0); | |
| 32 if( !ok ) { | |
| 33 String errorId = (String)list.remove(0); | |
| 34 Object[] args = list.toArray(); | |
| 35 throw new RpcException(inBinary,lenBinary,errorId,args); | |
| 36 } | |
| 37 Object[] args = list.toArray(); | |
| 38 return new RpcResult(inBinary,lenBinary,args); | |
| 39 } | |
| 40 | |
| 41 } |
