diff options
author | Jakob Odersky <jodersky@gmail.com> | 2015-05-24 13:35:03 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2015-05-24 15:53:33 +0200 |
commit | de9db5ec62a649fa36963d9fe01543bd612c0105 (patch) | |
tree | 099c4d1ad4cb51addbf222426b5b38dcbee243ed /flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scala | |
parent | a6a4f44866115e0d9cf12e28877019fbf0a237f5 (diff) | |
download | akka-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.scala | 17 |
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 +} |