1 /* 2 * Make.org Core API 3 * Copyright (C) 2018 Make.org 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU Affero General Public License as 7 * published by the Free Software Foundation, either version 3 of the 8 * License, or (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Affero General Public License for more details. 14 * 15 * You should have received a copy of the GNU Affero General Public License 16 * along with this program. If not, see <https://www.gnu.org/licenses/>. 17 * 18 */ 19 20 package org.make.api.technical 21 22 import akka.actor.typed.eventstream.EventStream 23 import akka.actor.typed.scaladsl.ActorContext 24 import akka.persistence.typed.scaladsl.EffectBuilder 25 26 object EffectBuilderHelper { 27 implicit class PublishOps[E, S](val effect: EffectBuilder[E, S]) extends AnyVal { 28 def thenPublish(event: E)(implicit context: ActorContext[_]): EffectBuilder[E, S] = 29 effect.thenRun(_ => context.system.eventStream ! EventStream.Publish(event)) 30 } 31 }
| Line | Stmt Id | Pos | Tree | Symbol | Tests | Code |
|---|---|---|---|---|---|---|
| 29 | 339 | 1181 - 1207 | Apply | akka.actor.typed.eventstream.EventStream.Publish.apply | akka.actor.typed.eventstream.EventStream.Publish.apply[E](event) | |
| 29 | 368 | 1132 - 1208 | Apply | akka.persistence.typed.scaladsl.EffectBuilder.thenRun | PublishOps.this.effect.thenRun(((x$1: S) => typed.this.ActorRef.ActorRefOps[akka.actor.typed.eventstream.EventStream.Command](context.system.eventStream).!(akka.actor.typed.eventstream.EventStream.Publish.apply[E](event)))) | |
| 29 | 362 | 1152 - 1178 | Select | akka.actor.typed.ActorSystem.eventStream | context.system.eventStream | |
| 29 | 371 | 1152 - 1207 | Apply | akka.actor.typed.ActorRef.ActorRefOps.! | typed.this.ActorRef.ActorRefOps[akka.actor.typed.eventstream.EventStream.Command](context.system.eventStream).!(akka.actor.typed.eventstream.EventStream.Publish.apply[E](event)) |