diff --git a/krpc/krpc-ktor/krpc-ktor-client/api/krpc-ktor-client.api b/krpc/krpc-ktor/krpc-ktor-client/api/krpc-ktor-client.api index 199d0fbbe..7f4eaf629 100644 --- a/krpc/krpc-ktor/krpc-ktor-client/api/krpc-ktor-client.api +++ b/krpc/krpc-ktor/krpc-ktor-client/api/krpc-ktor-client.api @@ -13,7 +13,8 @@ public final class kotlinx/rpc/krpc/ktor/client/KtorClientDslKt { public static synthetic fun rpcConfig$default (Lio/ktor/client/request/HttpRequestBuilder;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V } -public abstract interface class kotlinx/rpc/krpc/ktor/client/KtorRpcClient : kotlinx/rpc/RpcClient { +public abstract class kotlinx/rpc/krpc/ktor/client/KtorRpcClient : kotlinx/rpc/krpc/client/KrpcClient { + public fun ()V public abstract fun getWebSocketSession ()Lkotlinx/coroutines/Deferred; } diff --git a/krpc/krpc-ktor/krpc-ktor-client/api/krpc-ktor-client.klib.api b/krpc/krpc-ktor/krpc-ktor-client/api/krpc-ktor-client.klib.api index 71c518e67..18fce80d0 100644 --- a/krpc/krpc-ktor/krpc-ktor-client/api/krpc-ktor-client.klib.api +++ b/krpc/krpc-ktor/krpc-ktor-client/api/krpc-ktor-client.klib.api @@ -6,7 +6,9 @@ // - Show declarations: true // Library unique name: -abstract interface kotlinx.rpc.krpc.ktor.client/KtorRpcClient : kotlinx.rpc/RpcClient { // kotlinx.rpc.krpc.ktor.client/KtorRpcClient|null[0] +abstract class kotlinx.rpc.krpc.ktor.client/KtorRpcClient : kotlinx.rpc.krpc.client/KrpcClient { // kotlinx.rpc.krpc.ktor.client/KtorRpcClient|null[0] + constructor () // kotlinx.rpc.krpc.ktor.client/KtorRpcClient.|(){}[0] + abstract val webSocketSession // kotlinx.rpc.krpc.ktor.client/KtorRpcClient.webSocketSession|{}webSocketSession[0] abstract fun (): kotlinx.coroutines/Deferred // kotlinx.rpc.krpc.ktor.client/KtorRpcClient.webSocketSession.|(){}[0] } diff --git a/krpc/krpc-ktor/krpc-ktor-client/src/commonMain/kotlin/kotlinx/rpc/krpc/ktor/client/KtorRpcClient.kt b/krpc/krpc-ktor/krpc-ktor-client/src/commonMain/kotlin/kotlinx/rpc/krpc/ktor/client/KtorRpcClient.kt index 9c3a52b35..86e94c5b0 100644 --- a/krpc/krpc-ktor/krpc-ktor-client/src/commonMain/kotlin/kotlinx/rpc/krpc/ktor/client/KtorRpcClient.kt +++ b/krpc/krpc-ktor/krpc-ktor-client/src/commonMain/kotlin/kotlinx/rpc/krpc/ktor/client/KtorRpcClient.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. */ package kotlinx.rpc.krpc.ktor.client @@ -22,11 +22,11 @@ import kotlinx.rpc.krpc.rpcClientConfig * Client is cold, meaning the connection will be established on the first request. * [webSocketSession] will be completed when the connection is established. */ -public interface KtorRpcClient : RpcClient { +public abstract class KtorRpcClient : KrpcClient() { /** * Cold [WebSocketSession] object. Instantiated when the connection is established on the first request. */ - public val webSocketSession: Deferred + public abstract val webSocketSession: Deferred } internal class KtorKrpcClientImpl( @@ -34,7 +34,7 @@ internal class KtorKrpcClientImpl( private val webSocketSessionFactory: suspend ( configSetter: (KrpcConfigBuilder.Client.() -> Unit) -> Unit, ) -> WebSocketSession, -): KrpcClient(), KtorRpcClient { +): KtorRpcClient() { private var requestConfigBuilder: KrpcConfigBuilder.Client.() -> Unit = {} private val _webSocketSession = CompletableDeferred()