You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

20 lines
653 B

package net.aiterp.git.ykonsole2.infrastructure.drivers
import net.aiterp.git.ykonsole2.domain.models.tryMilestone
import net.aiterp.git.ykonsole2.domain.runtime.*
import net.aiterp.git.ykonsole2.infrastructure.drivers.abstracts.PassiveDriver
import java.util.concurrent.ConcurrentHashMap
class MilestoneChecker : PassiveDriver() {
private val milestoneMap = ConcurrentHashMap<Value, List<Value>>()
override suspend fun onEvent(event: Event, output: FlowBus<Event>) {
if (event is Disconnected) {
milestoneMap.clear()
}
if (event is ValuesReceived) {
milestoneMap.tryMilestone(event)?.let { output.emit(it) }
}
}
}