Mercurial Hosting > luan
diff src/luan/lib/IoLib.java @ 129:486a0641bca4
add pickle client/server;
fix parser bugs;
git-svn-id: https://luan-java.googlecode.com/svn/trunk@130 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Mon, 09 Jun 2014 09:16:16 +0000 |
parents | 0cd559a16758 |
children | 0594c132888b |
line wrap: on
line diff
--- a/src/luan/lib/IoLib.java Sun Jun 08 03:38:25 2014 +0000 +++ b/src/luan/lib/IoLib.java Mon Jun 09 09:16:16 2014 +0000 @@ -9,6 +9,7 @@ import java.io.FileWriter; import java.io.BufferedReader; import java.io.BufferedWriter; +import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; @@ -16,6 +17,8 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; import java.io.IOException; import java.net.URL; import java.net.Socket; @@ -300,7 +303,7 @@ return binaryWriter(new BufferedOutputStream(outputStream())); } - LuanTable table() { + @Override LuanTable table() { LuanTable tbl = super.table(); try { tbl.put( "write", new LuanJavaFunction( @@ -373,6 +376,33 @@ OutputStream outputStream() throws IOException { return socket.getOutputStream(); } + + public LuanTable pickle_client(LuanState luan) throws IOException { + DataInputStream in = new DataInputStream(new BufferedInputStream(inputStream())); + DataOutputStream out = new DataOutputStream(new BufferedOutputStream(outputStream())); + return new PickleClient(luan,in,out).table(); + } + + public void run_pickle_server(LuanState luan) throws IOException { + DataInputStream in = new DataInputStream(new BufferedInputStream(inputStream())); + DataOutputStream out = new DataOutputStream(new BufferedOutputStream(outputStream())); + new PickleServer(luan,in,out).run(); + } + + @Override LuanTable table() { + LuanTable tbl = super.table(); + try { + tbl.put( "pickle_client", new LuanJavaFunction( + LuanSocket.class.getMethod( "pickle_client", LuanState.class ), this + ) ); + tbl.put( "run_pickle_server", new LuanJavaFunction( + LuanSocket.class.getMethod( "run_pickle_server", LuanState.class ), this + ) ); + } catch(NoSuchMethodException e) { + throw new RuntimeException(e); + } + return tbl; + } } public static LuanTable socket(String host,int port) throws IOException {