diff options
Diffstat (limited to 'flow-stream/src/main/scala/com/github/jodersky/flow/stream/Serial.scala')
-rw-r--r-- | flow-stream/src/main/scala/com/github/jodersky/flow/stream/Serial.scala | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/flow-stream/src/main/scala/com/github/jodersky/flow/stream/Serial.scala b/flow-stream/src/main/scala/com/github/jodersky/flow/stream/Serial.scala index 6d250df..b7f0557 100644 --- a/flow-stream/src/main/scala/com/github/jodersky/flow/stream/Serial.scala +++ b/flow-stream/src/main/scala/com/github/jodersky/flow/stream/Serial.scala @@ -1,6 +1,7 @@ package com.github.jodersky.flow package stream +import akka.stream.scaladsl.Source import scala.concurrent.Future import akka.actor.{Extension, ActorSystem, ExtendedActorSystem, ExtensionId, ExtensionIdProvider} @@ -18,6 +19,8 @@ object Serial extends ExtensionId[Serial] with ExtensionIdProvider { */ case class Connection(port: String, settings: SerialSettings) + case class Watch(ports: Set[String]) + def apply()(implicit system: ActorSystem): Serial = super.apply(system) override def lookup() = Serial @@ -54,4 +57,11 @@ class Serial(system: ExtendedActorSystem) extends Extension { ) ) + def watch(ports: Set[String]): Source[String, Future[Serial.Watch]] = Source.fromGraph( + new WatcherStage( + IO(CoreSerial)(system), + ports + ) + ) + } |