mirror of
https://github.com/InsanusMokrassar/PsychomatrixBase.git
synced 2025-10-24 00:30: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