aboutsummaryrefslogtreecommitdiff
path: root/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-05-24 13:35:03 +0200
committerJakob Odersky <jodersky@gmail.com>2015-05-24 15:53:33 +0200
commitde9db5ec62a649fa36963d9fe01543bd612c0105 (patch)
tree099c4d1ad4cb51addbf222426b5b38dcbee243ed /flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala
parenta6a4f44866115e0d9cf12e28877019fbf0a237f5 (diff)
downloadakka-serial-de9db5ec62a649fa36963d9fe01543bd612c0105.tar.gz
akka-serial-de9db5ec62a649fa36963d9fe01543bd612c0105.tar.bz2
akka-serial-de9db5ec62a649fa36963d9fe01543bd612c0105.zip
implement file watcher actor
Diffstat (limited to 'flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala')
-rw-r--r--flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala17
1 files changed, 12 insertions, 5 deletions
diff --git a/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala b/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala
index eb8c44e..40739ca 100644
--- a/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala
+++ b/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala
@@ -5,9 +5,8 @@ import scala.util.Success
import scala.util.Try
import com.github.jodersky.flow.internal.SerialConnection
+import com.github.jodersky.flow.internal.Watcher
-import Serial.CommandFailed
-import Serial.Open
import akka.actor.Actor
import akka.actor.ActorLogging
import akka.actor.OneForOneStrategy
@@ -27,13 +26,21 @@ class SerialManager extends Actor with ActorLogging {
case _: Exception => Stop
}
+ private val watcher = actorOf(Watcher(self), "watcher")
+
def receive = {
- case open @ Open(port, settings, bufferSize) => Try {
+
+ case open @ Serial.Open(port, settings, bufferSize) => Try {
SerialConnection.open(port, settings)
} match {
case Success(connection) => context.actorOf(SerialOperator(connection, bufferSize, sender), name = escapePortString(connection.port))
- case Failure(err) => sender ! CommandFailed(open, err)
+ case Failure(err) => sender ! Serial.CommandFailed(open, err)
}
+
+ case w: Serial.Watch => watcher.forward(w)
+
+ case u: Serial.Unwatch => watcher.forward(u)
+
}
}
@@ -45,4 +52,4 @@ object SerialManager {
case c => c
}
-} \ No newline at end of file
+}