diff --git a/src/main/kotlin/com/shr4pnel/ferretirc/net/Connection.kt b/src/main/kotlin/com/shr4pnel/ferretirc/net/Connection.kt index 7770c6d..e9d8de7 100644 --- a/src/main/kotlin/com/shr4pnel/ferretirc/net/Connection.kt +++ b/src/main/kotlin/com/shr4pnel/ferretirc/net/Connection.kt @@ -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) } } \ No newline at end of file