diff options
Diffstat (limited to 'src/main/scala/xyz/driver/core/messaging/ReportingBus.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/messaging/ReportingBus.scala | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/messaging/ReportingBus.scala b/src/main/scala/xyz/driver/core/messaging/ReportingBus.scala new file mode 100644 index 0000000..74038e4 --- /dev/null +++ b/src/main/scala/xyz/driver/core/messaging/ReportingBus.scala @@ -0,0 +1,34 @@ +package xyz.driver.core.messaging + +import xyz.driver.core.reporting.{Reporter, SpanContext} + +import scala.concurrent.Future +import scala.language.higherKinds + +trait ReportingBus extends Bus { + + def reporter: Reporter + + trait TracedMessage[A] extends BasicMessage[A] { self: Message[A] => + def spanContext: SpanContext + } + + type Message[A] <: TracedMessage[A] + + abstract override def publishMessages[A](topic: Topic[A], messages: Seq[A]): Future[Unit] = { + super.publishMessages(topic, messages) + } + + abstract override def fetchMessages[A]( + topic: Topic[A], + config: SubscriptionConfig, + maxMessages: Int): Future[Seq[Message[A]]] = { + super.fetchMessages(topic, config, maxMessages) + } + +} + +trait Topic2 +trait Bus2 { + def publishMessage[A](topic: Topic2, message: A) +} |