minor refactoring

This commit is contained in:
Alexander Nozik 2022-11-17 21:13:51 +03:00
parent 4c7ba62a5a
commit 3890689f5c
No known key found for this signature in database
GPG Key ID: F7FCF2DD25C71357
4 changed files with 14 additions and 13 deletions

View File

@ -9,7 +9,6 @@ group = "center.sciprog"
version = "1.0-SNAPSHOT"
repositories {
jcenter()
mavenCentral()
maven("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven")
}
@ -72,6 +71,7 @@ application {
tasks.named<Copy>("jvmProcessResources") {
val jsBrowserDistribution = tasks.named("jsBrowserDistribution")
include("*.js")
from(jsBrowserDistribution)
}

View File

@ -1,13 +1,15 @@
package fullstack.kotlin.demo
import kotlinx.serialization.Serializable
@Serializable
sealed interface ControlEvent
@Serializable
data class IntControlEvent(val value: Int) : ControlEvent
data class CounterControlEvent(val value: Int) : ControlEvent
@Serializable
sealed interface DataEvent
@Serializable
data class IntDataEvent(val value: Int) : DataEvent
data class CounterDataEvent(val value: Int) : DataEvent

View File

@ -1,3 +1,5 @@
package fullstack.kotlin.demo
import androidx.compose.runtime.*
import io.ktor.client.engine.js.Js
import io.rsocket.kotlin.RSocket
@ -50,14 +52,14 @@ suspend fun main() {
fun setCount(value: Int) {
count = value
scope.launch {
sendEvent(IntControlEvent(value))
sendEvent(CounterControlEvent(value))
}
}
LaunchedEffect(Unit){
dataFlow.onEach { event ->
println("Received $event")
if (event is IntDataEvent) {
if (event is CounterDataEvent) {
count = event.value
}
}.launchIn(scope)

View File

@ -1,9 +1,5 @@
package center.sciprog.application
package fullstack.kotlin.demo
import ControlEvent
import DataEvent
import IntControlEvent
import IntDataEvent
import io.ktor.http.HttpStatusCode
import io.ktor.server.application.call
import io.ktor.server.application.install
@ -54,9 +50,9 @@ fun main() {
controlFlow.onEach { event ->
println("Received $event")
if (event is IntControlEvent) {
if (event is CounterControlEvent) {
counterState = event.value
dataFlow.emit(IntDataEvent(event.value))
dataFlow.emit(CounterDataEvent(event.value))
}
}.launchIn(this)
@ -78,7 +74,8 @@ fun main() {
}
//handler for request/stream
requestStream { _: Payload ->
merge(flowOf(IntDataEvent(counterState)), dataFlow).map { event ->
merge(flowOf(CounterDataEvent(counterState)), dataFlow).map { event ->
println("Sent $event")
buildPayload {
data(Json.encodeToString<DataEvent>(event))
}