forked from akka/alpakka-kafka
/
ProducerStage.scala
39 lines (32 loc) · 971 Bytes
/
ProducerStage.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
* Copyright (C) 2014 - 2016 Softwaremill <https://softwaremill.com>
* Copyright (C) 2016 - 2020 Lightbend Inc. <https://www.lightbend.com>
*/
package akka.kafka.internal
import akka.annotation.InternalApi
import akka.kafka.ProducerMessage._
import akka.kafka.ProducerSettings
import akka.stream._
import scala.concurrent.Future
/**
* INTERNAL API
*
* Implemented by [[DefaultProducerStage]] and [[TransactionalProducerStage]].
*/
@InternalApi
private[internal] trait ProducerStage[K, V, P, IN <: Envelope[K, V, P], OUT <: Results[K, V, P]] {
val settings: ProducerSettings[K, V]
val in: Inlet[IN] = Inlet[IN]("messages")
val out: Outlet[Future[OUT]] = Outlet[Future[OUT]]("result")
val shape: FlowShape[IN, Future[OUT]] = FlowShape(in, out)
}
/**
* INTERNAL API
*/
@InternalApi
private[internal] object ProducerStage {
trait ProducerCompletionState {
def onCompletionSuccess(): Unit
def onCompletionFailure(ex: Throwable): Unit
}
}