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