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 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.Socket
import io.ktor.network.sockets.aSocket import io.ktor.network.sockets.aSocket
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
class Connection(val hostname: String, val port: Int, val scope: CoroutineScope) { 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 socket: Socket
lateinit var reader: MessageReader lateinit var reader: MessageReader
lateinit var writer: MessageWriter lateinit var writer: MessageWriter
suspend fun connect() { suspend fun connect(): Server {
socket = socketBuilder.connect(hostname, port) socket = socketBuilder.connect(hostname, port)
reader = MessageReader(socket, scope) reader = MessageReader(socket, scope)
writer = MessageWriter(socket, scope) writer = MessageWriter(socket, scope)
reader.start() reader.start()
writer.start() writer.start()
return Server(reader.sharedMessageBuffer, writer.outgoingMessages, scope)
} }
} }