mirror of
https://github.com/InsanusMokrassar/PsychomatrixBase.git
synced 2025-10-21 15:20:13 +00:00
git add -A
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package com.github.insanusmokrassar.PsychomatrixBase.domain.interactors
|
||||
|
||||
import com.github.insanusmokrassar.PsychomatrixBase.domain.UseCases.CeilDescriptionReady
|
||||
import com.github.insanusmokrassar.PsychomatrixBase.domain.UseCases.CeilDescriptionUseCase
|
||||
import com.github.insanusmokrassar.PsychomatrixBase.domain.entities.CeilInfo
|
||||
import com.github.insanusmokrassar.PsychomatrixBase.domain.entities.CeilState
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.channels.BroadcastChannel
|
||||
import kotlinx.coroutines.channels.ReceiveChannel
|
||||
|
||||
class CeilDescriptionInteractor : CeilDescriptionUseCase {
|
||||
private val scope = CoroutineScope(Dispatchers.Default)
|
||||
private val ceilDescriptionReadyBroadcastChannel = BroadcastChannel<CeilDescriptionReady>(
|
||||
16
|
||||
)
|
||||
private val ceilDescriptionRequestedBroadcastChannel = BroadcastChannel<CeilState>(
|
||||
8
|
||||
)
|
||||
|
||||
override fun openCeilDescriptionReadySubscription(): ReceiveChannel<CeilDescriptionReady> {
|
||||
return ceilDescriptionReadyBroadcastChannel.openSubscription()
|
||||
}
|
||||
|
||||
override fun openCeilDescriptionRequestedSubscription(): ReceiveChannel<CeilState> {
|
||||
return ceilDescriptionRequestedBroadcastChannel.openSubscription()
|
||||
}
|
||||
|
||||
override fun descriptionReady(ceilState: CeilState, ceilInfo: CeilInfo) {
|
||||
scope.launch {
|
||||
ceilDescriptionReadyBroadcastChannel.send(ceilState to ceilInfo)
|
||||
}
|
||||
}
|
||||
|
||||
override fun requestDescription(ceilState: CeilState) {
|
||||
scope.launch {
|
||||
ceilDescriptionRequestedBroadcastChannel.send(
|
||||
ceilState
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user