Skip to content

Commit

Permalink
feat: create event consumer interface
Browse files Browse the repository at this point in the history
  • Loading branch information
andrea-acampora committed Feb 15, 2023
1 parent 61dfb21 commit c722847
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/main/kotlin/application/presenter/EventConsumer.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (c) 2023. Smart Operating Block
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT.
*/

package application.presenter

import entities.events.Event
import io.reactivex.rxjava3.core.FlowableEmitter

/**
* The consumer of events.
* It's responsible to consume events and to emit them to an Observer.
*/
interface EventConsumer<in E> {

/**
* The function to start the consumer.
* @param emitter the emitter of events.
*/
fun start(emitter: FlowableEmitter<Event<Any>>)

/**
* The function fon consuming events.
* @param inputEvent the input event.
* @return the parsed Event.
*/
fun consumeEvent(inputEvent: E): Event<*>
}

0 comments on commit c722847

Please # to comment.