aboutsummaryrefslogtreecommitdiff
path: root/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/ConsoleReader.scala
diff options
context:
space:
mode:
Diffstat (limited to 'flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/ConsoleReader.scala')
-rw-r--r--flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/ConsoleReader.scala30
1 files changed, 22 insertions, 8 deletions
diff --git a/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/ConsoleReader.scala b/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/ConsoleReader.scala
index 6b06206..c4401e7 100644
--- a/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/ConsoleReader.scala
+++ b/flow-samples/terminal/src/main/scala/com/github/jodersky/flow/samples/terminal/ConsoleReader.scala
@@ -1,19 +1,33 @@
package com.github.jodersky.flow.samples.terminal
import akka.actor._
+import java.io.BufferedReader
+import java.io.InputStreamReader
-case object Read
-case class ConsoleInput(in: String)
class ConsoleReader extends Actor {
import context._
-
+ import ConsoleReader._
+
def receive = {
- case Read => read()
+ case Read => read() match {
+ case Some(input) => parent ! ConsoleInput(input)
+ case None => parent ! EOT
+ }
}
-
- def read() = {
- val in = Console.readLine()
- parent ! ConsoleInput(in)
+
+ def read(): Option[String] = {
+ val eot = 4
+ val line = Console.readLine
+ if (line == ":q") None else Some(line)
}
+}
+
+object ConsoleReader {
+
+ case object Read
+
+ case object EOT
+ case class ConsoleInput(in: String)
+
} \ No newline at end of file