withStdInOut

expect inline suspend fun withStdInOut(ksrpcEnvironment: KsrpcEnvironment<String>, withConnection: (Connection<String>) -> Unit)

Create a Connection that communicates over the std in/out streams of this process.

Samples

import com.monkopedia.ksrpc.channels.connect
import com.monkopedia.ksrpc.ksrpcEnvironment
import com.monkopedia.ksrpc.serialized
import com.monkopedia.ksrpc.sockets.asConnection
import com.monkopedia.ksrpc.sockets.withStdInOut
import com.monkopedia.ksrpc.toStub
import io.ktor.utils.io.ByteChannel

fun main() { 
   //sampleStart 
   val env = ksrpcEnvironment { }
val service = object : GreetingService {
    override suspend fun greet(name: String): String = "Hello, $name!"
}

// withStdInOut creates a bidirectional Connection over stdin/stdout.
// This is useful for CLI tools that communicate via pipes.
withStdInOut(env) { connection ->
    connection.registerDefault(service.serialized(env))
    // Connection stays open until the process ends or the connection closes.
} 
   //sampleEnd
}
actual inline suspend fun withStdInOut(ksrpcEnvironment: KsrpcEnvironment<String>, withConnection: (Connection<String>) -> Unit)

Create a Connection that communicates over the std in/out streams of this process.

actual inline suspend fun withStdInOut(ksrpcEnvironment: KsrpcEnvironment<String>, withConnection: (Connection<String>) -> Unit)
actual inline suspend fun withStdInOut(ksrpcEnvironment: KsrpcEnvironment<String>, withConnection: (Connection<String>) -> Unit)
actual inline suspend fun withStdInOut(ksrpcEnvironment: KsrpcEnvironment<String>, withConnection: (Connection<String>) -> Unit)

Create a Connection that communicates over the std in/out streams of this process.