X-Git-Url: https://git.distorted.org.uk/~mdw/tripe-android/blobdiff_plain/7894831e9078211df0b460c4d3dd1bc51ca46804..8eabb4ff13562f3550499ee599297f7e97fa8754:/main.scala?ds=sidebyside diff --git a/main.scala b/main.scala index 4560638..c4b8284 100644 --- a/main.scala +++ b/main.scala @@ -1,64 +1,25 @@ -package uk.org.distorted; +package uk.org.distorted.tripe; package object test { -import java.io.{InputStreamReader, OutputStreamWriter}; +import java.io.{BufferedReader, BufferedWriter, + InputStreamReader, OutputStreamWriter}; import scala.collection.mutable.StringBuilder; import scala.util.control.Breaks; -package object tripe { - def main(args: Array[String]) - { - println("Hello from Scala"); - JNI.test(); - val toy = JNI.make(); - for (i <- 0 until args.length) println(f"$i%2d: ${args(i)}%s"); - //toy match { case toy: Array[Byte] => toy(1) = -1; case _ => () } - JNI.check(toy); +def main(args: Array[String]) +{ + val conn = new jni.Connection(args(0)); + try { + val rd = new BufferedReader(new InputStreamReader(conn.input)); + val wr = new BufferedWriter(new OutputStreamWriter(conn.output)); - val conn = new Connection; - try { - val rd = new InputStreamReader(new ConnectionInputStream(conn)); - val wr = new OutputStreamWriter(new ConnectionOutputStream(conn)); + wr.write("Hello, world!\n"); wr.flush(); - wr.write("Hello, world!\n"); wr.flush(); - - val buf = new Array[Char](4096); - val line = new StringBuilder; - - val R = new Breaks; - val L = new Breaks; - var any = false; - R.breakable { - while (true) { - val n = rd.read(buf); - if (n <= 0) R.break; - var pos = 0; - L.breakable { - while (true) { - val nl = buf.indexOf('\n', pos); - if (nl == -1 || nl >= n) { - if (pos < n) - { line.appendAll(buf, pos, n - pos); any = true; } - L.break; - } - val s = if (!any) - new String(buf, pos, nl - pos); - else { - line.appendAll(buf, pos, nl - pos); - val s = line.mkString; - line.clear(); any = false; - s - }; - println(s"found line `$s'"); - pos = nl + 1; - } - } - } - } - - rd.close(); - wr.close(); - } finally { - conn.close(); - } + for (line <- lines(rd)) println(s"found line `$line'"); + rd.close(); + wr.close(); + } finally { + conn.close(); } } + +}