Я строю несколько сложный поток с GraphStage и хотел бы сделать это шаг за шагом, начиная с простого линейного графа, который не содержит вещания, разделения или слияния. Я получил график для работы с использованием разбиения и слияния с использованием выходов, которые являются выходами в Merge. Но как мне создать свой собственный аутлет?
Это работает
val filterSwitch = 0
Source.fromGraph(GraphDSL.create() {
implicit builder =>
import GraphDSL.Implicits._
val source = Source(List('1', '2', '3'))
val fileFlow = Flow[String] ...
val merge = builder.add(Merge[ByteString](2))
val partition = builder.add(Partition[ByteString]
(2, in => if (filterSwitch) 0 else 1))
source ~> fileFlow ~> partition.in
partition.out(0) ~> filterFlow ~> merge.in(0)
partition.out(1) ~> merge.in(1)
SourceShape(merge.out)
}
)
Как я могу создать график, который будет выглядеть как
source ~> fileFlow ~> SourceShape(fileFlow.out)
Это, очевидно, неправильно, но Как создать выход из fileFlow, который может быть приведен в SourceShape?