Mercurial Hosting > luan
diff src/luan/lib/IoLib.java @ 145:90f38a5d0e0a
add Os.File
git-svn-id: https://luan-java.googlecode.com/svn/trunk@146 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Sun, 15 Jun 2014 10:02:16 +0000 |
parents | 2e92f0a6fcac |
children | cc3a0578edac |
line wrap: on
line diff
--- a/src/luan/lib/IoLib.java Sun Jun 15 06:42:58 2014 +0000 +++ b/src/luan/lib/IoLib.java Sun Jun 15 10:02:16 2014 +0000 @@ -37,7 +37,7 @@ @Override public Object call(LuanState luan,Object[] args) { LuanTable module = new LuanTable(); try { - add( module, "file", LuanState.class, String.class ); + add( module, "File", LuanState.class, String.class ); add( module, "read_console_line", String.class ); LuanTable stdin = new LuanTable(); @@ -55,7 +55,7 @@ ) ); module.put( "stdin", stdin ); - add( module, "socket", String.class, Integer.TYPE ); + add( module, "Socket", String.class, Integer.TYPE ); add( module, "socket_server", Integer.TYPE ); } catch(NoSuchMethodException e) { throw new RuntimeException(e); @@ -330,7 +330,11 @@ private final File file; public LuanFile(String name) { - this.file = new File(name); + this(new File(name)); + } + + public LuanFile(File file) { + this.file = file; } @Override InputStream inputStream() throws IOException { @@ -344,6 +348,22 @@ @Override public String name() { return file.toString(); } + + public LuanTable os_file() { + return new OsLib.LuanFile(file).table(); + } + + @Override LuanTable table() { + LuanTable tbl = super.table(); + try { + tbl.put( "os_file", new LuanJavaFunction( + LuanFile.class.getMethod( "os_file" ), this + ) ); + } catch(NoSuchMethodException e) { + throw new RuntimeException(e); + } + return tbl; + } } public static LuanIn luanIo(LuanState luan,String name) throws LuanException { @@ -359,7 +379,7 @@ } } - public static LuanTable file(LuanState luan,String name) throws LuanException { + public static LuanTable File(LuanState luan,String name) throws LuanException { return luanIo(luan,name).table(); } @@ -386,7 +406,7 @@ return socket.toString(); } - public LuanTable pickle_client(LuanState luan) throws IOException { + 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(); @@ -401,8 +421,8 @@ @Override LuanTable table() { LuanTable tbl = super.table(); try { - tbl.put( "pickle_client", new LuanJavaFunction( - LuanSocket.class.getMethod( "pickle_client", LuanState.class ), this + 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 @@ -414,7 +434,7 @@ } } - public static LuanTable socket(String host,int port) throws IOException { + public static LuanTable Socket(String host,int port) throws IOException { return new LuanSocket(host,port).table(); }