diff options
4 files changed, 29 insertions, 9 deletions
diff --git a/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVRemoteAgent.kt b/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVRemoteAgent.kt index 3e538bd1..9c6f8274 100644 --- a/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVRemoteAgent.kt +++ b/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVRemoteAgent.kt @@ -377,6 +377,7 @@ open class KVRemoteAgent<T : Any>(val serviceManager: KVServiceManager<T>) : Rem /** * Executes defined web socket connection */ + @Suppress("ComplexMethod", "TooGenericExceptionCaught") suspend inline fun <reified PAR1 : Any, reified PAR2 : Any> webSocket( noinline function: suspend T.(ReceiveChannel<PAR1>, SendChannel<PAR2>) -> Unit, noinline handler: suspend (SendChannel<PAR1>, ReceiveChannel<PAR2>) -> Unit @@ -446,6 +447,7 @@ open class KVRemoteAgent<T : Any>(val serviceManager: KVServiceManager<T>) : Rem /** * Executes defined web socket connection returning list objects */ + @Suppress("ComplexMethod", "TooGenericExceptionCaught") suspend inline fun <reified PAR1 : Any, reified PAR2 : Any> webSocket( noinline function: suspend T.(ReceiveChannel<PAR1>, SendChannel<List<PAR2>>) -> Unit, noinline handler: suspend (SendChannel<PAR1>, ReceiveChannel<List<PAR2>>) -> Unit @@ -539,6 +541,7 @@ open class KVRemoteAgent<T : Any>(val serviceManager: KVServiceManager<T>) : Rem /** * @suppress internal function */ + @Suppress("TooGenericExceptionCaught") suspend fun exceptionHelper(block: suspend () -> Unit) { try { block() diff --git a/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/Socket.kt b/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/Socket.kt index c547ce9b..74edaba0 100644 --- a/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/Socket.kt +++ b/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/Socket.kt @@ -90,6 +90,7 @@ class Socket { /** * Receive a string from a websocket. */ + @Suppress("ThrowsCount", "MagicNumber") suspend fun receive(): String { val event = eventQueue.receive() return when (event) { @@ -117,6 +118,7 @@ class Socket { /** * Send string to a websocket. */ + @Suppress("MagicNumber") fun send(obj: String) { when { isClosed() -> { @@ -130,6 +132,7 @@ class Socket { /** * Close a websocket. */ + @Suppress("MagicNumber") fun close(code: Short = 1000) { when (state) { OPEN -> ws.close(code, getReason(1000)) @@ -148,21 +151,34 @@ class Socket { private fun logError(event: Event) = console.error("An error %o occurred when connecting to ${ws.url}", event) + @Suppress("ComplexMethod", "MagicNumber") private fun getReason(code: Short): String { return when (code.toInt()) { // See http://tools.ietf.org/html/rfc6455#section-7.4.1 1000 -> "Normal closure" - 1001 -> "An endpoint is \"going away\", such as a server going down or a browser having navigated away from a page." + 1001 -> "An endpoint is \"going away\", such as a server going down or " + + "a browser having navigated away from a page." 1002 -> "An endpoint is terminating the connection due to a protocol error" - 1003 -> "An endpoint is terminating the connection because it has received a type of data it cannot accept (e.g., an endpoint that understands only text data MAY send this if it receives a binary message)." + 1003 -> "An endpoint is terminating the connection because it has received a type of data it cannot " + + "accept (e.g., an endpoint that understands only text data MAY send this if it receives a " + + "binary message)." 1004 -> "Reserved. The specific meaning might be defined in the future." 1005 -> "No status code was actually present." 1006 -> "The connection was closed abnormally, e.g., without sending or receiving a Close control frame" - 1007 -> "An endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 [http://tools.ietf.org/html/rfc3629] data within a text message)." - 1008 -> "An endpoint is terminating the connection because it has received a message that \"violates its policy\". This reason is given either if there is no other sutible reason, or if there is a need to hide specific details about the policy." - 1009 -> "An endpoint is terminating the connection because it has received a message that is too big for it to process." - 1010 -> "An endpoint (client ) is terminating the connection because it has expected the server to negotiate one or more extension, but the server didn't return them in the response message of the WebSocket handshake. <br /> Specifically, the extensions that are needed are: " - 1011 -> "A server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request." - 1015 -> "The connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified)." + 1007 -> "An endpoint is terminating the connection because it has received data within a message that " + + "was not consistent with the type of the message (e.g., non-UTF-8 " + + "[http://tools.ietf.org/html/rfc3629] data within a text message)." + 1008 -> "An endpoint is terminating the connection because it has received a message that " + + "\"violates its policy\". This reason is given either if there is no other sutible reason, or " + + "if there is a need to hide specific details about the policy." + 1009 -> "An endpoint is terminating the connection because it has received a message that is too big " + + "for it to process." + 1010 -> "An endpoint (client ) is terminating the connection because it has expected the server to " + + "negotiate one or more extension, but the server didn't return them in the response message of " + + "the WebSocket handshake. <br /> Specifically, the extensions that are needed are: " + 1011 -> "A server is terminating the connection because it encountered an unexpected condition that " + + "prevented it from fulfilling the request." + 1015 -> "The connection was closed due to a failure to perform a TLS handshake (e.g., the server " + + "certificate can't be verified)." 4001 -> "Unexpected event" 4002 -> "You are trying to use closed socket" else -> "Unknown reason" diff --git a/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVModules.kt b/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVModules.kt index e2edc175..b0218b96 100644 --- a/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVModules.kt +++ b/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVModules.kt @@ -88,7 +88,7 @@ class WsSessionModule(private val webSocketSession: WebSocketServerSession) : } } -class DummyWsSessionModule() : AbstractModule() { +class DummyWsSessionModule : AbstractModule() { override fun configure() { bind(WebSocketServerSession::class.java).toInstance(DummyWebSocketServerSession()) } diff --git a/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt b/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt index 0839a5c5..aca5d2f0 100644 --- a/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt +++ b/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt @@ -56,6 +56,7 @@ import kotlin.reflect.KClass * Multiplatform service manager for Ktor. */ @UseExperimental(ExperimentalCoroutinesApi::class) +@Suppress("LargeClass") actual open class KVServiceManager<T : Any> actual constructor(val serviceClass: KClass<T>) { companion object { |