Return Server instance from Connection.connect

This commit is contained in:
2026-09-12 20:30:29 +01:00
parent ab88896b01
commit 973a6fa11b
@@ -1,21 +1,25 @@
package com.shr4pnel.ferretirc.net
import com.shr4pnel.ferretirc.net.messages.ClientMessage
import com.shr4pnel.ferretirc.irc.Server
import io.ktor.network.selector.SelectorManager
import io.ktor.network.sockets.Socket
import io.ktor.network.sockets.aSocket
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
class Connection(val hostname: String, val port: Int, val scope: CoroutineScope) {
private val socketBuilder = aSocket(ClientMessage.selectorManager).tcp()
private val selectorManager = SelectorManager(Dispatchers.IO)
private val socketBuilder = aSocket(selectorManager).tcp()
lateinit var socket: Socket
lateinit var reader: MessageReader
lateinit var writer: MessageWriter
suspend fun connect() {
suspend fun connect(): Server {
socket = socketBuilder.connect(hostname, port)
reader = MessageReader(socket, scope)
writer = MessageWriter(socket, scope)
reader.start()
writer.start()
return Server(reader.sharedMessageBuffer, writer.outgoingMessages, scope)
}
}