aboutsummaryrefslogtreecommitdiff
path: root/flow-stream/src/main/scala/com/github/jodersky/flow/stream/Serial.scala
diff options
context:
space:
mode:
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.scala10
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
+ )
+ )
+
}