Mercurial Hosting > luan
annotate core/src/luan/modules/IoLuan.java @ 735:2486fa6490c6
add Io.my_ips()
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 14 Jun 2016 18:24:28 -0600 |
parents | e44e98fe9de8 |
children | f8a7cc1fd3f6 |
rev | line source |
---|---|
167
4c0131c2b650
merge luan/lib into modules
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
164
diff
changeset
|
1 package luan.modules; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
2 |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
3 import java.io.InputStream; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
4 import java.io.OutputStream; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
5 import java.io.PrintStream; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
6 import java.io.Reader; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
7 import java.io.Writer; |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
8 import java.io.StringReader; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
9 import java.io.BufferedReader; |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
10 import java.io.BufferedWriter; |
129
486a0641bca4
add pickle client/server;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
125
diff
changeset
|
11 import java.io.BufferedInputStream; |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
12 import java.io.BufferedOutputStream; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
13 import java.io.File; |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
14 import java.io.FileInputStream; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
15 import java.io.FileOutputStream; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
16 import java.io.InputStreamReader; |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
17 import java.io.OutputStreamWriter; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
18 import java.io.ByteArrayInputStream; |
129
486a0641bca4
add pickle client/server;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
125
diff
changeset
|
19 import java.io.DataInputStream; |
486a0641bca4
add pickle client/server;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
125
diff
changeset
|
20 import java.io.DataOutputStream; |
421
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
21 import java.io.StringWriter; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
22 import java.io.IOException; |
265
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
23 import java.io.FileNotFoundException; |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
24 import java.net.URL; |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
25 import java.net.Socket; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
26 import java.net.ServerSocket; |
701 | 27 import java.net.InetAddress; |
735 | 28 import java.net.Inet4Address; |
29 import java.net.NetworkInterface; | |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
30 import java.net.MalformedURLException; |
701 | 31 import java.net.UnknownHostException; |
735 | 32 import java.util.Enumeration; |
706 | 33 import java.util.Map; |
34 import java.util.zip.ZipOutputStream; | |
35 import java.util.zip.ZipEntry; | |
221
ec016471c6eb
make LuanTable an interface
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
220
diff
changeset
|
36 import luan.Luan; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
37 import luan.LuanState; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
38 import luan.LuanTable; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
39 import luan.LuanFunction; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
40 import luan.LuanJavaFunction; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
41 import luan.LuanException; |
725
a741a3a33423
add url support for multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents:
722
diff
changeset
|
42 import luan.modules.url.LuanUrl; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
43 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
44 |
168
ebe9db183eb7
rename *Lib.java to *Luan.java
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
167
diff
changeset
|
45 public final class IoLuan { |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
46 |
435
5b36f663a1b8
make members lower case
Franklin Schmidt <fschmidt@gmail.com>
parents:
433
diff
changeset
|
47 private static void add(LuanTable t,String method,Class... parameterTypes) throws NoSuchMethodException { |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
48 t.rawPut( method, new LuanJavaFunction(IoLuan.class.getMethod(method,parameterTypes),null) ); |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
49 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
50 |
118
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
51 public static String read_console_line(String prompt) throws IOException { |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
52 if( prompt==null ) |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
53 prompt = "> "; |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
54 return System.console().readLine(prompt); |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
55 } |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
56 |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
57 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
58 public interface LuanWriter { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
59 public void write(LuanState luan,Object... args) throws LuanException, IOException; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
60 public void close() throws IOException; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
61 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
62 |
122
d00f41edbbd6
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
118
diff
changeset
|
63 public static LuanTable textWriter(final PrintStream out) { |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
64 LuanWriter luanWriter = new LuanWriter() { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
65 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
66 public void write(LuanState luan,Object... args) throws LuanException { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
67 for( Object obj : args ) { |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
68 out.print( luan.toString(obj) ); |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
69 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
70 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
71 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
72 public void close() { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
73 out.close(); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
74 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
75 }; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
76 return writer(luanWriter); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
77 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
78 |
122
d00f41edbbd6
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
118
diff
changeset
|
79 public static LuanTable textWriter(final Writer out) { |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
80 LuanWriter luanWriter = new LuanWriter() { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
81 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
82 public void write(LuanState luan,Object... args) throws LuanException, IOException { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
83 for( Object obj : args ) { |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
84 out.write( luan.toString(obj) ); |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
85 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
86 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
87 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
88 public void close() throws IOException { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
89 out.close(); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
90 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
91 }; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
92 return writer(luanWriter); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
93 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
94 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
95 private static LuanTable writer(LuanWriter luanWriter) { |
411
23b99a5039b5
remove Luan.newTable()
Franklin Schmidt <fschmidt@gmail.com>
parents:
323
diff
changeset
|
96 LuanTable writer = new LuanTable(); |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
97 try { |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
98 writer.rawPut( "write", new LuanJavaFunction( |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
99 LuanWriter.class.getMethod( "write", LuanState.class, new Object[0].getClass() ), luanWriter |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
100 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
101 writer.rawPut( "close", new LuanJavaFunction( |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
102 LuanWriter.class.getMethod( "close" ), luanWriter |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
103 ) ); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
104 } catch(NoSuchMethodException e) { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
105 throw new RuntimeException(e); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
106 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
107 return writer; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
108 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
109 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
110 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
111 public static LuanTable binaryWriter(final OutputStream out) { |
411
23b99a5039b5
remove Luan.newTable()
Franklin Schmidt <fschmidt@gmail.com>
parents:
323
diff
changeset
|
112 LuanTable writer = new LuanTable(); |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
113 try { |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
114 writer.rawPut( "write", new LuanJavaFunction( |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
115 OutputStream.class.getMethod( "write", new byte[0].getClass() ), out |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
116 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
117 writer.rawPut( "close", new LuanJavaFunction( |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
118 OutputStream.class.getMethod( "close" ), out |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
119 ) ); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
120 } catch(NoSuchMethodException e) { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
121 throw new RuntimeException(e); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
122 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
123 return writer; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
124 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
125 |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
126 static LuanFunction lines(final BufferedReader in) { |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
127 return new LuanFunction() { |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
128 @Override public Object call(LuanState luan,Object[] args) throws LuanException { |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
129 try { |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
130 if( args.length > 0 ) { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
131 if( args.length > 1 || !"close".equals(args[0]) ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
132 throw new LuanException( "the only argument allowed is 'close'" ); |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
133 in.close(); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
134 return null; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
135 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
136 String rtn = in.readLine(); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
137 if( rtn==null ) |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
138 in.close(); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
139 return rtn; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
140 } catch(IOException e) { |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
141 throw new LuanException(e); |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
142 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
143 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
144 }; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
145 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
146 |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
147 static LuanFunction blocks(final InputStream in,final int blockSize) { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
148 return new LuanFunction() { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
149 final byte[] a = new byte[blockSize]; |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
150 |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
151 @Override public Object call(LuanState luan,Object[] args) throws LuanException { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
152 try { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
153 if( args.length > 0 ) { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
154 if( args.length > 1 || !"close".equals(args[0]) ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
155 throw new LuanException( "the only argument allowed is 'close'" ); |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
156 in.close(); |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
157 return null; |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
158 } |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
159 if( in.read(a) == -1 ) { |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
160 in.close(); |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
161 return null; |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
162 } |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
163 return a; |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
164 } catch(IOException e) { |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
165 throw new LuanException(e); |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
166 } |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
167 } |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
168 }; |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
169 } |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
170 |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
171 |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
172 |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
173 public static abstract class LuanIn { |
725
a741a3a33423
add url support for multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents:
722
diff
changeset
|
174 public abstract InputStream inputStream() throws IOException, LuanException; |
147
cc3a0578edac
fix Io.reverse_pickle
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
145
diff
changeset
|
175 public abstract String to_string(); |
705 | 176 public abstract String to_uri_string(); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
177 |
722 | 178 public Reader reader() throws IOException, LuanException { |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
179 return new InputStreamReader(inputStream()); |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
180 } |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
181 |
722 | 182 public String read_text() throws IOException, LuanException { |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
183 Reader in = reader(); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
184 String s = Utils.readAll(in); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
185 in.close(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
186 return s; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
187 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
188 |
722 | 189 public byte[] read_binary() throws IOException, LuanException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
190 InputStream in = inputStream(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
191 byte[] a = Utils.readAll(in); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
192 in.close(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
193 return a; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
194 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
195 |
722 | 196 public LuanFunction read_lines() throws IOException, LuanException { |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
197 return lines(new BufferedReader(reader())); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
198 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
199 |
722 | 200 public LuanFunction read_blocks(Integer blockSize) throws IOException, LuanException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
201 int n = blockSize!=null ? blockSize : Utils.bufSize; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
202 return blocks(inputStream(),n); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
203 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
204 |
722 | 205 public boolean exists() throws IOException, LuanException { |
265
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
206 try { |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
207 inputStream().close(); |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
208 return true; |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
209 } catch(FileNotFoundException e) { |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
210 return false; |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
211 } |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
212 } |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
213 |
297
899253043270
remove PackageLuan.load_lib()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
296
diff
changeset
|
214 public LuanTable table() { |
411
23b99a5039b5
remove Luan.newTable()
Franklin Schmidt <fschmidt@gmail.com>
parents:
323
diff
changeset
|
215 LuanTable tbl = new LuanTable(); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
216 try { |
610
b4f3dbe1c6e3
add Rpc and change Hosting to use Rpc
Franklin Schmidt <fschmidt@gmail.com>
parents:
590
diff
changeset
|
217 tbl.rawPut( "java", this ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
218 tbl.rawPut( "to_string", new LuanJavaFunction( |
147
cc3a0578edac
fix Io.reverse_pickle
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
145
diff
changeset
|
219 LuanIn.class.getMethod( "to_string" ), this |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
220 ) ); |
705 | 221 tbl.rawPut( "to_uri_string", new LuanJavaFunction( |
222 LuanIn.class.getMethod( "to_uri_string" ), this | |
223 ) ); | |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
224 tbl.rawPut( "read_text", new LuanJavaFunction( |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
225 LuanIn.class.getMethod( "read_text" ), this |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
226 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
227 tbl.rawPut( "read_binary", new LuanJavaFunction( |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
228 LuanIn.class.getMethod( "read_binary" ), this |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
229 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
230 tbl.rawPut( "read_lines", new LuanJavaFunction( |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
231 LuanIn.class.getMethod( "read_lines" ), this |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
232 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
233 tbl.rawPut( "read_blocks", new LuanJavaFunction( |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
234 LuanIn.class.getMethod( "read_blocks", Integer.class ), this |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
235 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
236 tbl.rawPut( "exists", new LuanJavaFunction( |
265
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
237 LuanIn.class.getMethod( "exists" ), this |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
238 ) ); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
239 } catch(NoSuchMethodException e) { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
240 throw new RuntimeException(e); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
241 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
242 return tbl; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
243 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
244 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
245 |
297
899253043270
remove PackageLuan.load_lib()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
296
diff
changeset
|
246 public static final LuanIn defaultStdin = new LuanIn() { |
261
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
247 |
725
a741a3a33423
add url support for multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents:
722
diff
changeset
|
248 @Override public InputStream inputStream() { |
261
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
249 return System.in; |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
250 } |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
251 |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
252 @Override public String to_string() { |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
253 return "<stdin>"; |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
254 } |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
255 |
705 | 256 @Override public String to_uri_string() { |
257 return "stdin:"; | |
258 } | |
259 | |
261
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
260 @Override public String read_text() throws IOException { |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
261 return Utils.readAll(new InputStreamReader(System.in)); |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
262 } |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
263 |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
264 @Override public byte[] read_binary() throws IOException { |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
265 return Utils.readAll(System.in); |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
266 } |
265
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
267 |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
268 @Override public boolean exists() { |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
269 return true; |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
270 } |
261
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
271 }; |
715c4a6e1169
simplify Io.stdin
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
272 |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
273 public static abstract class LuanIO extends LuanIn { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
274 abstract OutputStream outputStream() throws IOException; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
275 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
276 public void write(Object obj) throws LuanException, IOException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
277 if( obj instanceof String ) { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
278 String s = (String)obj; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
279 Writer out = new OutputStreamWriter(outputStream()); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
280 out.write(s); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
281 out.close(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
282 return; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
283 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
284 if( obj instanceof byte[] ) { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
285 byte[] a = (byte[])obj; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
286 OutputStream out = outputStream(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
287 Utils.copyAll(new ByteArrayInputStream(a),out); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
288 out.close(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
289 return; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
290 } |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
291 throw new LuanException( "bad argument #1 to 'write' (string or binary expected)" ); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
292 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
293 |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
294 public LuanTable text_writer() throws IOException { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
295 return textWriter(new BufferedWriter(new OutputStreamWriter(outputStream()))); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
296 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
297 |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
298 public LuanTable binary_writer() throws IOException { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
299 return binaryWriter(new BufferedOutputStream(outputStream())); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
300 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
301 |
297
899253043270
remove PackageLuan.load_lib()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
296
diff
changeset
|
302 @Override public LuanTable table() { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
303 LuanTable tbl = super.table(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
304 try { |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
305 tbl.rawPut( "write", new LuanJavaFunction( |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
306 LuanIO.class.getMethod( "write", Object.class ), this |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
307 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
308 tbl.rawPut( "text_writer", new LuanJavaFunction( |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
309 LuanIO.class.getMethod( "text_writer" ), this |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
310 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
311 tbl.rawPut( "binary_writer", new LuanJavaFunction( |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
312 LuanIO.class.getMethod( "binary_writer" ), this |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
313 ) ); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
314 } catch(NoSuchMethodException e) { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
315 throw new RuntimeException(e); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
316 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
317 return tbl; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
318 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
319 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
320 |
590 | 321 private static final LuanIO nullIO = new LuanIO() { |
322 private final InputStream in = new InputStream() { | |
323 @Override public int read() { | |
324 return -1; | |
325 } | |
326 }; | |
327 private final OutputStream out = new OutputStream() { | |
328 @Override public void write(int b) {} | |
329 }; | |
330 | |
725
a741a3a33423
add url support for multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents:
722
diff
changeset
|
331 @Override public InputStream inputStream() { |
590 | 332 return in; |
333 } | |
334 | |
335 @Override OutputStream outputStream() { | |
336 return out; | |
337 } | |
338 | |
339 @Override public String to_string() { | |
340 return "<null>"; | |
341 } | |
342 | |
705 | 343 @Override public String to_uri_string() { |
344 return "null:"; | |
345 } | |
346 | |
590 | 347 }; |
348 | |
421
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
349 public static final class LuanString extends LuanIO { |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
350 private String s; |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
351 |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
352 private LuanString(String s) { |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
353 this.s = s; |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
354 } |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
355 |
725
a741a3a33423
add url support for multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents:
722
diff
changeset
|
356 @Override public InputStream inputStream() { |
421
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
357 throw new UnsupportedOperationException(); |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
358 } |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
359 |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
360 @Override OutputStream outputStream() { |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
361 throw new UnsupportedOperationException(); |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
362 } |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
363 |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
364 @Override public String to_string() { |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
365 return "<string>"; |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
366 } |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
367 |
705 | 368 @Override public String to_uri_string() { |
369 return "string:" + s; | |
370 } | |
371 | |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
372 @Override public Reader reader() { |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
373 return new StringReader(s); |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
374 } |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
375 |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
376 @Override public String read_text() { |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
377 return s; |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
378 } |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
379 |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
380 @Override public boolean exists() { |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
381 return true; |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
382 } |
421
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
383 |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
384 @Override public LuanTable text_writer() throws IOException { |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
385 LuanWriter luanWriter = new LuanWriter() { |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
386 private final Writer out = new StringWriter(); |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
387 |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
388 public void write(LuanState luan,Object... args) throws LuanException, IOException { |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
389 for( Object obj : args ) { |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
390 out.write( luan.toString(obj) ); |
421
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
391 } |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
392 } |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
393 |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
394 public void close() throws IOException { |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
395 s = out.toString(); |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
396 } |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
397 }; |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
398 return writer(luanWriter); |
b31d614343e8
add Io.LuanString.text_writer();
Franklin Schmidt <fschmidt@gmail.com>
parents:
411
diff
changeset
|
399 } |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
400 } |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
401 |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
402 public static final class LuanFile extends LuanIO { |
710
63cda9eec9a0
make LuanFile.file public
Franklin Schmidt <fschmidt@gmail.com>
parents:
706
diff
changeset
|
403 public final File file; |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
404 |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
405 private LuanFile(LuanState luan,File file) throws LuanException { |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
406 this(file); |
301
a6bf8ff720f8
add java security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
407 check(luan,"file:"+file.toString()); |
145
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
408 } |
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
409 |
202
75750ceb45ee
add LuanState.registry
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
171
diff
changeset
|
410 private LuanFile(File file) { |
145
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
411 this.file = file; |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
412 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
413 |
725
a741a3a33423
add url support for multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents:
722
diff
changeset
|
414 @Override public InputStream inputStream() throws IOException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
415 return new FileInputStream(file); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
416 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
417 |
144
2e92f0a6fcac
add Reactionary.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
418 @Override OutputStream outputStream() throws IOException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
419 return new FileOutputStream(file); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
420 } |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
421 |
147
cc3a0578edac
fix Io.reverse_pickle
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
145
diff
changeset
|
422 @Override public String to_string() { |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
423 return file.toString(); |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
424 } |
145
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
425 |
705 | 426 @Override public String to_uri_string() { |
427 return "file:" + file.toString(); | |
428 } | |
429 | |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
430 public LuanTable child(LuanState luan,String name) throws LuanException { |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
431 return new LuanFile(luan,new File(file,name)).table(); |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
432 } |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
433 |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
434 public LuanTable children(LuanState luan) throws LuanException { |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
435 File[] files = file.listFiles(); |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
436 if( files==null ) |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
437 return null; |
411
23b99a5039b5
remove Luan.newTable()
Franklin Schmidt <fschmidt@gmail.com>
parents:
323
diff
changeset
|
438 LuanTable list = new LuanTable(); |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
439 for( File f : files ) { |
432
d9df6d6cb927
finish fixing LuanTable to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
431
diff
changeset
|
440 list.rawPut(list.rawLength()+1,new LuanFile(luan,f).table()); |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
441 } |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
442 return list; |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
443 } |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
444 |
323
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
445 public LuanTable parent(LuanState luan) throws LuanException, IOException { |
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
446 File parent = file.getParentFile(); |
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
447 if( parent==null ) |
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
448 parent = file.getCanonicalFile().getParentFile(); |
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
449 return new LuanFile(luan,parent).table(); |
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
450 } |
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
451 |
265
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
452 @Override public boolean exists() { |
237
97d175772fed
implement mmake
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
221
diff
changeset
|
453 return file.exists(); |
145
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
454 } |
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
455 |
293
a50e88d3547c
add Web_server.init();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
283
diff
changeset
|
456 public boolean rename_to(String dest) { |
a50e88d3547c
add Web_server.init();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
283
diff
changeset
|
457 return file.renameTo(new File(dest)); |
a50e88d3547c
add Web_server.init();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
283
diff
changeset
|
458 } |
a50e88d3547c
add Web_server.init();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
283
diff
changeset
|
459 |
310
9e9bb358b2df
add File.canonical()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
301
diff
changeset
|
460 public LuanTable canonical(LuanState luan) throws LuanException, IOException { |
9e9bb358b2df
add File.canonical()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
301
diff
changeset
|
461 return new LuanFile(luan,file.getCanonicalFile()).table(); |
9e9bb358b2df
add File.canonical()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
301
diff
changeset
|
462 } |
9e9bb358b2df
add File.canonical()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
301
diff
changeset
|
463 |
297
899253043270
remove PackageLuan.load_lib()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
296
diff
changeset
|
464 @Override public LuanTable table() { |
145
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
465 LuanTable tbl = super.table(); |
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
466 try { |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
467 tbl.rawPut( "name", new LuanJavaFunction( |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
468 File.class.getMethod( "getName" ), file |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
469 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
470 tbl.rawPut( "is_directory", new LuanJavaFunction( |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
471 File.class.getMethod( "isDirectory" ), file |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
472 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
473 tbl.rawPut( "is_file", new LuanJavaFunction( |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
474 File.class.getMethod( "isFile" ), file |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
475 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
476 tbl.rawPut( "delete", new LuanJavaFunction( |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
477 File.class.getMethod( "delete" ), file |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
478 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
479 tbl.rawPut( "mkdir", new LuanJavaFunction( |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
480 File.class.getMethod( "mkdir" ), file |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
481 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
482 tbl.rawPut( "mkdirs", new LuanJavaFunction( |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
483 File.class.getMethod( "mkdirs" ), file |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
484 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
485 tbl.rawPut( "last_modified", new LuanJavaFunction( |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
486 File.class.getMethod( "lastModified" ), file |
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
487 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
488 tbl.rawPut( "child", new LuanJavaFunction( |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
489 LuanFile.class.getMethod( "child", LuanState.class, String.class ), this |
164
78ba371ea1e9
merge Os.File into Io.File and remove Os
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
147
diff
changeset
|
490 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
491 tbl.rawPut( "children", new LuanJavaFunction( |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
492 LuanFile.class.getMethod( "children", LuanState.class ), this |
145
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
493 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
494 tbl.rawPut( "parent", new LuanJavaFunction( |
323
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
495 LuanFile.class.getMethod( "parent", LuanState.class ), this |
cd2924a1052c
improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
314
diff
changeset
|
496 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
497 tbl.rawPut( "rename_to", new LuanJavaFunction( |
293
a50e88d3547c
add Web_server.init();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
283
diff
changeset
|
498 LuanFile.class.getMethod( "rename_to", String.class ), this |
a50e88d3547c
add Web_server.init();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
283
diff
changeset
|
499 ) ); |
427
dae264ad6a7b
fix LuanTable.put() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
426
diff
changeset
|
500 tbl.rawPut( "canonical", new LuanJavaFunction( |
310
9e9bb358b2df
add File.canonical()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
301
diff
changeset
|
501 LuanFile.class.getMethod( "canonical", LuanState.class ), this |
9e9bb358b2df
add File.canonical()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
301
diff
changeset
|
502 ) ); |
145
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
503 } catch(NoSuchMethodException e) { |
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
504 throw new RuntimeException(e); |
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
505 } |
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
506 return tbl; |
90f38a5d0e0a
add Os.File
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
144
diff
changeset
|
507 } |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
508 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
509 |
590 | 510 public static LuanTable null_() { |
511 return nullIO.table(); | |
512 } | |
513 | |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
514 public static LuanTable string(String s) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
515 Utils.checkNotNull(s); |
314
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
516 return new LuanString(s).table(); |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
517 } |
7c4f52262213
add Io.schemes.string
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
310
diff
changeset
|
518 |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
519 public static LuanTable file(LuanState luan,String name) throws LuanException { |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
520 File file = new File(name); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
521 return new LuanFile(file).table(); |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
522 } |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
523 |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
524 public static LuanTable classpath(LuanState luan,String name) throws LuanException { |
264
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
263
diff
changeset
|
525 if( name.contains("//") ) |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
526 return null; |
264
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
263
diff
changeset
|
527 String path = name; |
301
a6bf8ff720f8
add java security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
528 check(luan,"classpath:"+path); |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
529 URL url; |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
530 if( !path.contains("#") ) { |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
531 url = ClassLoader.getSystemResource(path); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
532 } else { |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
533 String[] a = path.split("#"); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
534 url = ClassLoader.getSystemResource(a[0]); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
535 if( url==null ) { |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
536 for( int i=1; i<a.length; i++ ) { |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
537 url = ClassLoader.getSystemResource(a[0]+"/"+a[i]); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
538 if( url != null ) { |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
539 try { |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
540 url = new URL(url,"."); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
541 } catch(MalformedURLException e) { |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
542 throw new RuntimeException(e); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
543 } |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
544 break; |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
545 } |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
546 } |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
547 } |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
548 } |
264
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
263
diff
changeset
|
549 if( url != null ) |
722 | 550 return new LuanUrl(luan,url,null).table(); |
264
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
263
diff
changeset
|
551 |
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
263
diff
changeset
|
552 return null; |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
553 } |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
554 |
722 | 555 private static LuanTable url(LuanState luan,String url,LuanTable options) throws IOException, LuanException { |
556 return new LuanUrl(luan,new URL(url),options).table(); | |
263
54873a389f80
add "http" and "https" protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
262
diff
changeset
|
557 } |
54873a389f80
add "http" and "https" protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
262
diff
changeset
|
558 |
722 | 559 public static LuanTable http(LuanState luan,String path,LuanTable options) throws IOException, LuanException { |
560 return url(luan,"http:"+path,options); | |
263
54873a389f80
add "http" and "https" protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
262
diff
changeset
|
561 } |
54873a389f80
add "http" and "https" protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
262
diff
changeset
|
562 |
722 | 563 public static LuanTable https(LuanState luan,String path,LuanTable options) throws IOException, LuanException { |
564 return url(luan,"https:"+path,options); | |
264
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
263
diff
changeset
|
565 } |
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
263
diff
changeset
|
566 |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
567 public static LuanTable luan(LuanState luan,String path) throws LuanException { |
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
568 return classpath( luan, "luan/modules/" + path ); |
263
54873a389f80
add "http" and "https" protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
262
diff
changeset
|
569 } |
54873a389f80
add "http" and "https" protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
262
diff
changeset
|
570 |
265
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
571 public static LuanTable stdin(LuanState luan) throws LuanException { |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
572 LuanTable io = (LuanTable)PackageLuan.require(luan,"luan:Io.luan"); |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
573 return (LuanTable)io.get(luan,"stdin"); |
265
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
574 } |
454a486d9c19
allow IO on files that don't exist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
575 |
297
899253043270
remove PackageLuan.load_lib()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
296
diff
changeset
|
576 public static LuanTable newSchemes() { |
411
23b99a5039b5
remove Luan.newTable()
Franklin Schmidt <fschmidt@gmail.com>
parents:
323
diff
changeset
|
577 LuanTable schemes = new LuanTable(); |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
578 try { |
590 | 579 schemes.rawPut( "null", new LuanJavaFunction(IoLuan.class.getMethod("null_"),null) ); |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
580 add( schemes, "string", String.class ); |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
581 add( schemes, "file", LuanState.class, String.class ); |
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
582 add( schemes, "classpath", LuanState.class, String.class ); |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
583 add( schemes, "socket", String.class ); |
722 | 584 add( schemes, "http", LuanState.class, String.class, LuanTable.class ); |
585 add( schemes, "https", LuanState.class, String.class, LuanTable.class ); | |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
586 add( schemes, "luan", LuanState.class, String.class ); |
272
eb27e765affb
rename Io.protocols to Io.schemes and "class:" to "java:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
267
diff
changeset
|
587 add( schemes, "stdin", LuanState.class ); |
734 | 588 add( schemes, "os", String.class ); |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
589 } catch(NoSuchMethodException e) { |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
590 throw new RuntimeException(e); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
591 } |
272
eb27e765affb
rename Io.protocols to Io.schemes and "class:" to "java:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
267
diff
changeset
|
592 return schemes; |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
593 } |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
594 |
426
23a93c118042
fix LuanTable.get() to use metatables
Franklin Schmidt <fschmidt@gmail.com>
parents:
421
diff
changeset
|
595 private static LuanTable schemes(LuanState luan) throws LuanException { |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
646
diff
changeset
|
596 LuanTable t = (LuanTable)PackageLuan.loaded(luan).rawGet("luan:Io.luan"); |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
597 if( t == null ) |
272
eb27e765affb
rename Io.protocols to Io.schemes and "class:" to "java:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
267
diff
changeset
|
598 return newSchemes(); |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
599 t = (LuanTable)t.get(luan,"schemes"); |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
600 if( t == null ) |
272
eb27e765affb
rename Io.protocols to Io.schemes and "class:" to "java:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
267
diff
changeset
|
601 return newSchemes(); |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
602 return t; |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
603 } |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
604 |
722 | 605 public static LuanTable uri(LuanState luan,String name,LuanTable options) throws LuanException { |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
606 int i = name.indexOf(':'); |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
607 if( i == -1 ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
608 throw new LuanException( "invalid Io.uri name '"+name+"', missing scheme" ); |
272
eb27e765affb
rename Io.protocols to Io.schemes and "class:" to "java:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
267
diff
changeset
|
609 String scheme = name.substring(0,i); |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
610 String location = name.substring(i+1); |
272
eb27e765affb
rename Io.protocols to Io.schemes and "class:" to "java:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
267
diff
changeset
|
611 LuanTable schemes = schemes(luan); |
575
7c3ad6db8ac3
make LuanState.JAVA private
Franklin Schmidt <fschmidt@gmail.com>
parents:
574
diff
changeset
|
612 LuanFunction opener = (LuanFunction)schemes.get(luan,scheme); |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
613 if( opener == null ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
614 throw new LuanException( "invalid scheme '"+scheme+"' in '"+name+"'" ); |
722 | 615 return (LuanTable)Luan.first(opener.call(luan,new Object[]{location,options})); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
616 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
617 |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
618 public static final class LuanSocket extends LuanIO { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
619 private final Socket socket; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
620 |
202
75750ceb45ee
add LuanState.registry
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
171
diff
changeset
|
621 private LuanSocket(String host,int port) throws IOException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
622 this(new Socket(host,port)); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
623 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
624 |
202
75750ceb45ee
add LuanState.registry
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
171
diff
changeset
|
625 private LuanSocket(Socket socket) throws IOException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
626 this.socket = socket; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
627 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
628 |
725
a741a3a33423
add url support for multipart/form-data
Franklin Schmidt <fschmidt@gmail.com>
parents:
722
diff
changeset
|
629 @Override public InputStream inputStream() throws IOException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
630 return socket.getInputStream(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
631 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
632 |
144
2e92f0a6fcac
add Reactionary.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
633 @Override OutputStream outputStream() throws IOException { |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
634 return socket.getOutputStream(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
635 } |
129
486a0641bca4
add pickle client/server;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
125
diff
changeset
|
636 |
147
cc3a0578edac
fix Io.reverse_pickle
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
145
diff
changeset
|
637 @Override public String to_string() { |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
638 return socket.toString(); |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
142
diff
changeset
|
639 } |
705 | 640 |
641 @Override public String to_uri_string() { | |
642 throw new UnsupportedOperationException(); | |
643 } | |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
644 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
645 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
646 public static LuanTable socket(String name) throws LuanException, IOException { |
262
3ccc5205d04d
add "socket" protocol
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
261
diff
changeset
|
647 int i = name.indexOf(':'); |
3ccc5205d04d
add "socket" protocol
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
261
diff
changeset
|
648 if( i == -1 ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
649 throw new LuanException( "invalid socket '"+name+"', format is: <host>:<port>" ); |
262
3ccc5205d04d
add "socket" protocol
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
261
diff
changeset
|
650 String host = name.substring(0,i); |
3ccc5205d04d
add "socket" protocol
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
261
diff
changeset
|
651 String portStr = name.substring(i+1); |
3ccc5205d04d
add "socket" protocol
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
261
diff
changeset
|
652 int port = Integer.parseInt(portStr); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
653 return new LuanSocket(host,port).table(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
654 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
655 |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
656 public static LuanFunction socket_server(int port) throws IOException { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
657 final ServerSocket ss = new ServerSocket(port); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
658 return new LuanFunction() { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
659 @Override public Object call(LuanState luan,Object[] args) throws LuanException { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
660 try { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
661 if( args.length > 0 ) { |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
662 if( args.length > 1 || !"close".equals(args[0]) ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
663 throw new LuanException( "the only argument allowed is 'close'" ); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
664 ss.close(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
665 return null; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
666 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
667 return new LuanSocket(ss.accept()).table(); |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
668 } catch(IOException e) { |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
611
diff
changeset
|
669 throw new LuanException(e); |
125
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
670 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
671 } |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
672 }; |
0cd559a16758
add sockets
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
124
diff
changeset
|
673 } |
136
7e160d2f6d9c
update HttpLib, untested
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
135
diff
changeset
|
674 |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
675 |
734 | 676 public static final class LuanOs extends LuanIO { |
677 private final Process proc; | |
678 | |
679 private LuanOs(String cmd) throws IOException { | |
680 this.proc = Runtime.getRuntime().exec(cmd); | |
681 } | |
682 | |
683 @Override public InputStream inputStream() throws IOException { | |
684 return proc.getInputStream(); | |
685 } | |
686 | |
687 @Override OutputStream outputStream() throws IOException { | |
688 return proc.getOutputStream(); | |
689 } | |
690 | |
691 @Override public String to_string() { | |
692 return proc.toString(); | |
693 } | |
694 | |
695 @Override public String to_uri_string() { | |
696 throw new UnsupportedOperationException(); | |
697 } | |
698 | |
699 @Override public boolean exists() { | |
700 return true; | |
701 } | |
702 | |
703 public void wait_for() | |
704 throws IOException, LuanException | |
705 { | |
706 try { | |
707 proc.waitFor(); | |
708 } catch(InterruptedException e) { | |
709 throw new RuntimeException(e); | |
710 } | |
711 int exitVal = proc.exitValue(); | |
712 if( exitVal != 0 ) { | |
713 Reader err = new InputStreamReader(proc.getErrorStream()); | |
714 String error = Utils.readAll(err); | |
715 err.close(); | |
716 throw new LuanException(error); | |
717 } | |
718 } | |
719 | |
720 @Override public String read_text() throws IOException, LuanException { | |
721 String s = super.read_text(); | |
722 wait_for(); | |
723 return s; | |
724 } | |
725 | |
726 @Override public LuanTable table() { | |
727 LuanTable tbl = super.table(); | |
728 try { | |
729 tbl.rawPut( "wait_for", new LuanJavaFunction( | |
730 LuanOs.class.getMethod( "wait_for" ), this | |
731 ) ); | |
732 } catch(NoSuchMethodException e) { | |
733 throw new RuntimeException(e); | |
734 } | |
735 return tbl; | |
736 } | |
737 } | |
738 | |
739 public static LuanTable os(String cmd) throws IOException { | |
740 return new LuanOs(cmd).table(); | |
741 } | |
742 | |
743 | |
701 | 744 public static String ip(String domain) { |
745 try { | |
746 return InetAddress.getByName(domain).getHostAddress(); | |
747 } catch(UnknownHostException e) { | |
748 return null; | |
749 } | |
750 } | |
751 | |
735 | 752 public static LuanTable my_ips() throws IOException { |
753 LuanTable tbl = new LuanTable(); | |
754 for( Enumeration<NetworkInterface> e1 = NetworkInterface.getNetworkInterfaces(); e1.hasMoreElements(); ) { | |
755 NetworkInterface ni = e1.nextElement(); | |
756 for( Enumeration<InetAddress> e2 = ni.getInetAddresses(); e2.hasMoreElements(); ) { | |
757 InetAddress ia = e2.nextElement(); | |
758 if( ia instanceof Inet4Address ) | |
759 tbl.rawPut(ia.getHostAddress(),true); | |
760 } | |
761 } | |
762 return tbl; | |
763 } | |
764 | |
701 | 765 |
706 | 766 // files maps zip name to uri |
767 public static void zip(LuanState luan,String zipUri,LuanTable files) throws LuanException, IOException { | |
722 | 768 Object obj = uri(luan,zipUri,null).rawGet("java"); |
706 | 769 if( !(obj instanceof LuanIO) ) |
770 throw new LuanException("invalid uri for zip"); | |
771 LuanIO zipIo = (LuanIO)obj; | |
772 ZipOutputStream out = new ZipOutputStream(zipIo.outputStream()); | |
773 for( Map.Entry<Object,Object> entry : files.iterable(luan) ) { | |
774 obj = entry.getKey(); | |
775 if( !(obj instanceof String) ) | |
776 throw new LuanException("zip file table keys must be strings"); | |
777 String fileName = (String)obj; | |
778 obj = entry.getValue(); | |
779 if( !(obj instanceof String) ) | |
780 throw new LuanException("zip file table values must be strings"); | |
781 String uriStr = (String)obj; | |
782 out.putNextEntry(new ZipEntry(fileName)); | |
722 | 783 obj = uri(luan,uriStr,null).rawGet("java"); |
706 | 784 if( !(obj instanceof LuanIn) ) |
785 throw new LuanException("invalid uri for zip"); | |
786 LuanIn zipIn = (LuanIn)obj; | |
787 InputStream in = zipIn.inputStream(); | |
788 Utils.copyAll(in,out); | |
789 in.close(); | |
790 out.closeEntry(); | |
791 } | |
792 out.close(); | |
793 } | |
794 | |
795 | |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
796 // security |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
797 |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
798 public interface Security { |
301
a6bf8ff720f8
add java security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
799 public void check(LuanState luan,String name) throws LuanException; |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
800 } |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
801 |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
802 private static String SECURITY_KEY = "Io.Security"; |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
803 |
301
a6bf8ff720f8
add java security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
804 private static void check(LuanState luan,String name) throws LuanException { |
433
c6bcb8859b93
make LuanState.registry a Map;
Franklin Schmidt <fschmidt@gmail.com>
parents:
432
diff
changeset
|
805 Security s = (Security)luan.registry().get(SECURITY_KEY); |
204
cee6581b6f56
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
203
diff
changeset
|
806 if( s!=null ) |
301
a6bf8ff720f8
add java security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
299
diff
changeset
|
807 s.check(luan,name); |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
808 } |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
809 |
204
cee6581b6f56
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
203
diff
changeset
|
810 public static void setSecurity(LuanState luan,Security s) { |
433
c6bcb8859b93
make LuanState.registry a Map;
Franklin Schmidt <fschmidt@gmail.com>
parents:
432
diff
changeset
|
811 luan.registry().put(SECURITY_KEY,s); |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
812 } |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
202
diff
changeset
|
813 |
168
ebe9db183eb7
rename *Lib.java to *Luan.java
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
167
diff
changeset
|
814 private void IoLuan() {} // never |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
815 } |