Return Server instance from Connection.connect
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user