Skip to content
Snippets Groups Projects
Verified Commit be20250e authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Further code quality improvements

parent c65606fb
No related branches found
No related tags found
No related merge requests found
Showing
with 176 additions and 59 deletions
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
package de.justjanne.coverageconverter package de.justjanne.coverageconverter
import groovy.util.XmlSlurper
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.testing.jacoco.plugins.JacocoPluginExtension import org.gradle.testing.jacoco.plugins.JacocoPluginExtension
...@@ -36,7 +35,7 @@ class CoverageConverterPlugin : Plugin<Project> { ...@@ -36,7 +35,7 @@ class CoverageConverterPlugin : Plugin<Project> {
jacocoReportTask.dependsOn(testTask) jacocoReportTask.dependsOn(testTask)
if (extension.autoConfigureCoverage) { if (extension.autoConfigureCoverage) {
jacocoReportTask.sourceDirectories.from(fileTree("src/main/kotlin")) jacocoReportTask.sourceDirectories.from(fileTree("src/main/kotlin"))
jacocoReportTask.classDirectories.from(fileTree("build/classes")) jacocoReportTask.classDirectories.from(fileTree("build/classes/kotlin/main"))
jacocoReportTask.reports { jacocoReportTask.reports {
xml.destination = File("${buildDir}/reports/jacoco/report.xml") xml.destination = File("${buildDir}/reports/jacoco/report.xml")
html.isEnabled = true html.isEnabled = true
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
*/ */
plugins { plugins {
id("java-library")
id("com.vanniktech.maven.publish") id("com.vanniktech.maven.publish")
id("com.google.devtools.ksp") version "1.4.30-1.0.0-alpha02" id("com.google.devtools.ksp") version "1.4.30-1.0.0-alpha02"
} }
......
...@@ -64,15 +64,15 @@ private val alphabet = charArrayOf( ...@@ -64,15 +64,15 @@ private val alphabet = charArrayOf(
fun ByteBuffer.contentToString(): String { fun ByteBuffer.contentToString(): String {
val position = position() val position = position()
val limit = limit() val limit = limit()
var result = "" val result = StringBuilder()
while (hasRemaining()) { while (hasRemaining()) {
val byte = get() val byte = get()
val upperNibble = byte.toInt() shr 4 val upperNibble = byte.toInt() shr 4
val lowerNibble = byte.toInt() % 16 val lowerNibble = byte.toInt() % 16
result += alphabet[(upperNibble + 16) % 16] result.append(alphabet[(upperNibble + 16) % 16])
result += alphabet[(lowerNibble + 16) % 16] result.append(alphabet[(lowerNibble + 16) % 16])
} }
limit(limit) limit(limit)
position(position) position(position)
return result return result.toString()
} }
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
package de.justjanne.libquassel.protocol.models package de.justjanne.libquassel.protocol.models
import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QtType
import de.justjanne.libquassel.protocol.util.triples import de.justjanne.libquassel.protocol.util.collections.triples
import de.justjanne.libquassel.protocol.variant.QVariantList import de.justjanne.libquassel.protocol.variant.QVariantList
import de.justjanne.libquassel.protocol.variant.QVariantMap import de.justjanne.libquassel.protocol.variant.QVariantMap
import de.justjanne.libquassel.protocol.variant.QVariant_ import de.justjanne.libquassel.protocol.variant.QVariant_
......
...@@ -151,7 +151,7 @@ sealed class HandshakeMessage { ...@@ -151,7 +151,7 @@ sealed class HandshakeMessage {
/** /**
* Storage backend configuration data * Storage backend configuration data
*/ */
val setupData: QVariantMap?, val setupData: QVariantMap,
/** /**
* Chosen authenticator backend id * Chosen authenticator backend id
*/ */
...@@ -159,7 +159,7 @@ sealed class HandshakeMessage { ...@@ -159,7 +159,7 @@ sealed class HandshakeMessage {
/** /**
* Authenticator backend configuration data * Authenticator backend configuration data
*/ */
val authSetupData: QVariantMap? val authSetupData: QVariantMap
) : HandshakeMessage() ) : HandshakeMessage()
/** /**
...@@ -184,7 +184,7 @@ sealed class HandshakeMessage { ...@@ -184,7 +184,7 @@ sealed class HandshakeMessage {
* Identity objects created or modified after [SessionInit] will be defined * Identity objects created or modified after [SessionInit] will be defined
* via sync updates and RPC identity creation messages. * via sync updates and RPC identity creation messages.
*/ */
val identities: QVariantList?, val identities: List<QVariantMap>,
/** /**
* List of existing buffers at the current time. * List of existing buffers at the current time.
* *
......
...@@ -14,29 +14,29 @@ import de.justjanne.libquassel.protocol.models.ids.IdentityId ...@@ -14,29 +14,29 @@ import de.justjanne.libquassel.protocol.models.ids.IdentityId
import de.justjanne.libquassel.protocol.models.ids.NetworkId import de.justjanne.libquassel.protocol.models.ids.NetworkId
data class NetworkInfo( data class NetworkInfo(
var networkId: NetworkId = NetworkId(-1), val networkId: NetworkId = NetworkId(-1),
var networkName: String = "", val networkName: String = "",
var identity: IdentityId = IdentityId(-1), val identity: IdentityId = IdentityId(-1),
var useCustomEncodings: Boolean = false, val useCustomEncodings: Boolean = false,
var codecForServer: String = "UTF_8", val codecForServer: String = "UTF_8",
var codecForEncoding: String = "UTF_8", val codecForEncoding: String = "UTF_8",
var codecForDecoding: String = "UTF_8", val codecForDecoding: String = "UTF_8",
var serverList: List<NetworkServer> = emptyList(), val serverList: List<NetworkServer> = emptyList(),
var useRandomServer: Boolean = false, val useRandomServer: Boolean = false,
var perform: List<String> = emptyList(), val perform: List<String> = emptyList(),
var useAutoIdentify: Boolean = false, val useAutoIdentify: Boolean = false,
var autoIdentifyService: String = "", val autoIdentifyService: String = "",
var autoIdentifyPassword: String = "", val autoIdentifyPassword: String = "",
var useSasl: Boolean = false, val useSasl: Boolean = false,
var saslAccount: String = "", val saslAccount: String = "",
var saslPassword: String = "", val saslPassword: String = "",
var useAutoReconnect: Boolean = true, val useAutoReconnect: Boolean = true,
var autoReconnectInterval: UInt = 0u, val autoReconnectInterval: UInt = 0u,
var autoReconnectRetries: UShort = 0u, val autoReconnectRetries: UShort = 0u,
var unlimitedReconnectRetries: Boolean = true, val unlimitedReconnectRetries: Boolean = true,
var rejoinChannels: Boolean = true, val rejoinChannels: Boolean = true,
var useCustomMessageRate: Boolean = false, val useCustomMessageRate: Boolean = false,
var messageRateBurstSize: UInt = 0u, val messageRateBurstSize: UInt = 0u,
var messageRateDelay: UInt = 0u, val messageRateDelay: UInt = 0u,
var unlimitedMessageRate: Boolean = false val unlimitedMessageRate: Boolean = false
) )
...@@ -42,7 +42,6 @@ interface SignedId<T> : Serializable, Comparable<SignedId<T>> ...@@ -42,7 +42,6 @@ interface SignedId<T> : Serializable, Comparable<SignedId<T>>
*/ */
@Suppress("NOTHING_TO_INLINE") @Suppress("NOTHING_TO_INLINE")
@JvmName("isValidId") @JvmName("isValidId")
@Generated
inline fun SignedId<SignedIdType>.isValid() = id > 0 inline fun SignedId<SignedIdType>.isValid() = id > 0
/** /**
...@@ -50,5 +49,4 @@ inline fun SignedId<SignedIdType>.isValid() = id > 0 ...@@ -50,5 +49,4 @@ inline fun SignedId<SignedIdType>.isValid() = id > 0
*/ */
@Suppress("NOTHING_TO_INLINE") @Suppress("NOTHING_TO_INLINE")
@JvmName("isValidId64") @JvmName("isValidId64")
@Generated
inline fun SignedId<SignedId64Type>.isValid() = id > 0 inline fun SignedId<SignedId64Type>.isValid() = id > 0
...@@ -17,6 +17,9 @@ import de.justjanne.libquassel.protocol.serializers.quassel.BufferInfoSerializer ...@@ -17,6 +17,9 @@ import de.justjanne.libquassel.protocol.serializers.quassel.BufferInfoSerializer
import de.justjanne.libquassel.protocol.serializers.quassel.DccIpDetectionModeSerializer import de.justjanne.libquassel.protocol.serializers.quassel.DccIpDetectionModeSerializer
import de.justjanne.libquassel.protocol.serializers.quassel.DccPortSelectionModeSerializer import de.justjanne.libquassel.protocol.serializers.quassel.DccPortSelectionModeSerializer
import de.justjanne.libquassel.protocol.serializers.quassel.IdentityIdSerializer import de.justjanne.libquassel.protocol.serializers.quassel.IdentityIdSerializer
import de.justjanne.libquassel.protocol.serializers.quassel.IdentitySerializer
import de.justjanne.libquassel.protocol.serializers.quassel.IrcChannelSerializer
import de.justjanne.libquassel.protocol.serializers.quassel.IrcUserSerializer
import de.justjanne.libquassel.protocol.serializers.quassel.MessageSerializer import de.justjanne.libquassel.protocol.serializers.quassel.MessageSerializer
import de.justjanne.libquassel.protocol.serializers.quassel.MsgIdSerializer import de.justjanne.libquassel.protocol.serializers.quassel.MsgIdSerializer
import de.justjanne.libquassel.protocol.serializers.quassel.NetworkIdSerializer import de.justjanne.libquassel.protocol.serializers.quassel.NetworkIdSerializer
...@@ -70,19 +73,19 @@ enum class QuasselType( ...@@ -70,19 +73,19 @@ enum class QuasselType(
* Type for IrcUser objects * Type for IrcUser objects
* Serialized as [de.justjanne.libquassel.protocol.variant.QVariantMap] * Serialized as [de.justjanne.libquassel.protocol.variant.QVariantMap]
*/ */
IrcUser("IrcUser"), IrcUser("IrcUser", IrcUserSerializer),
/** /**
* Type for IrcChannel objects * Type for IrcChannel objects
* Serialized as [de.justjanne.libquassel.protocol.variant.QVariantMap] * Serialized as [de.justjanne.libquassel.protocol.variant.QVariantMap]
*/ */
IrcChannel("IrcChannel"), IrcChannel("IrcChannel", IrcChannelSerializer),
/** /**
* Type for Identity objects * Type for Identity objects
* Serialized as [de.justjanne.libquassel.protocol.variant.QVariantMap] * Serialized as [de.justjanne.libquassel.protocol.variant.QVariantMap]
*/ */
Identity("Identity"), Identity("Identity", IdentitySerializer),
/** /**
* Type for [de.justjanne.libquassel.protocol.models.IdentityId] * Type for [de.justjanne.libquassel.protocol.models.IdentityId]
......
...@@ -47,7 +47,7 @@ object SignalProxyMessageSerializer : PrimitiveSerializer<SignalProxyMessage> { ...@@ -47,7 +47,7 @@ object SignalProxyMessageSerializer : PrimitiveSerializer<SignalProxyMessage> {
} }
private fun deserializeFromList(data: QVariantList): SignalProxyMessage = private fun deserializeFromList(data: QVariantList): SignalProxyMessage =
when (val type = data.firstOrNull().into<Int>(0)) { when (val type = data.firstOrNull().into(0)) {
SyncSerializer.type -> SyncSerializer.type ->
SyncSerializer.deserialize(data) SyncSerializer.deserialize(data)
RpcSerializer.type -> RpcSerializer.type ->
......
...@@ -39,14 +39,14 @@ object CoreSetupDataSerializer : HandshakeSerializer<HandshakeMessage.CoreSetupD ...@@ -39,14 +39,14 @@ object CoreSetupDataSerializer : HandshakeSerializer<HandshakeMessage.CoreSetupD
) )
override fun deserialize(data: QVariantMap) = override fun deserialize(data: QVariantMap) =
data["SetupData"].into<QVariantMap>().let { data["SetupData"].into<QVariantMap>().orEmpty().let {
HandshakeMessage.CoreSetupData( HandshakeMessage.CoreSetupData(
adminUser = it?.get("AdminUser").into(), adminUser = it["AdminUser"].into(),
adminPassword = it?.get("AdminPasswd").into(), adminPassword = it["AdminPasswd"].into(),
backend = it?.get("Backend").into(), backend = it["Backend"].into(),
setupData = it?.get("ConnectionProperties").into(), setupData = it["ConnectionProperties"].into<QVariantMap>().orEmpty(),
authenticator = it?.get("Authenticator").into(), authenticator = it["Authenticator"].into(),
authSetupData = it?.get("AuthProperties").into() authSetupData = it["AuthProperties"].into<QVariantMap>().orEmpty()
) )
} }
} }
...@@ -18,6 +18,7 @@ import de.justjanne.libquassel.protocol.models.types.QuasselType ...@@ -18,6 +18,7 @@ import de.justjanne.libquassel.protocol.models.types.QuasselType
import de.justjanne.libquassel.protocol.serializers.HandshakeSerializer import de.justjanne.libquassel.protocol.serializers.HandshakeSerializer
import de.justjanne.libquassel.protocol.variant.QVariantList import de.justjanne.libquassel.protocol.variant.QVariantList
import de.justjanne.libquassel.protocol.variant.QVariantMap import de.justjanne.libquassel.protocol.variant.QVariantMap
import de.justjanne.libquassel.protocol.variant.QVariant_
import de.justjanne.libquassel.protocol.variant.into import de.justjanne.libquassel.protocol.variant.into
import de.justjanne.libquassel.protocol.variant.qVariant import de.justjanne.libquassel.protocol.variant.qVariant
...@@ -27,23 +28,25 @@ import de.justjanne.libquassel.protocol.variant.qVariant ...@@ -27,23 +28,25 @@ import de.justjanne.libquassel.protocol.variant.qVariant
object SessionInitSerializer : HandshakeSerializer<HandshakeMessage.SessionInit> { object SessionInitSerializer : HandshakeSerializer<HandshakeMessage.SessionInit> {
override val type: String = "SessionInit" override val type: String = "SessionInit"
override fun serialize(data: HandshakeMessage.SessionInit) = mapOf( override fun serialize(data: HandshakeMessage.SessionInit) = mapOf<String, QVariant_>(
"MsgType" to qVariant(type, QtType.QString), "MsgType" to qVariant<String>(type, QtType.QString),
"SessionState" to qVariant( "SessionState" to qVariant<QVariantMap>(
mapOf( mapOf(
"BufferInfos" to qVariant<QVariantList>( "BufferInfos" to qVariant<QVariantList>(
data.bufferInfos.map { data.bufferInfos.map {
qVariant(it, QuasselType.BufferInfo) qVariant<BufferInfo>(it, QuasselType.BufferInfo)
}, },
QtType.QVariantList QtType.QVariantList
), ),
"NetworkIds" to qVariant<QVariantList>( "NetworkIds" to qVariant<QVariantList>(
data.networkIds.map { data.networkIds.map {
qVariant(it, QuasselType.NetworkId) qVariant<NetworkId>(it, QuasselType.NetworkId)
}, },
QtType.QVariantList QtType.QVariantList
), ),
"Identities" to qVariant(data.identities, QtType.QVariantList), "Identities" to qVariant<QVariantList>(data.identities.map {
qVariant<QVariantMap>(it, QuasselType.Identity)
}, QtType.QVariantList),
), ),
QtType.QVariantMap QtType.QVariantMap
) )
...@@ -57,7 +60,9 @@ object SessionInitSerializer : HandshakeSerializer<HandshakeMessage.SessionInit> ...@@ -57,7 +60,9 @@ object SessionInitSerializer : HandshakeSerializer<HandshakeMessage.SessionInit>
networkIds = it?.get("NetworkIds").into<QVariantList>()?.mapNotNull { networkIds = it?.get("NetworkIds").into<QVariantList>()?.mapNotNull {
it.into<NetworkId>() it.into<NetworkId>()
}.orEmpty(), }.orEmpty(),
identities = it?.get("Identities").into(), identities = it?.get("Identities").into<QVariantList>()?.mapNotNull {
it.into<QVariantMap>()
}.orEmpty(),
) )
} }
} }
...@@ -12,6 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.qt ...@@ -12,6 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.qt
import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.features.FeatureSet
import de.justjanne.libquassel.protocol.io.ChainedByteBuffer import de.justjanne.libquassel.protocol.io.ChainedByteBuffer
import de.justjanne.libquassel.protocol.io.contentToString
import de.justjanne.libquassel.protocol.io.copyData import de.justjanne.libquassel.protocol.io.copyData
import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer
import java.nio.ByteBuffer import java.nio.ByteBuffer
...@@ -27,6 +28,7 @@ object ByteBufferSerializer : PrimitiveSerializer<ByteBuffer?> { ...@@ -27,6 +28,7 @@ object ByteBufferSerializer : PrimitiveSerializer<ByteBuffer?> {
if (data != null) { if (data != null) {
buffer.put(data) buffer.put(data)
} }
data?.rewind()
} }
override fun deserialize(buffer: ByteBuffer, featureSet: FeatureSet): ByteBuffer? { override fun deserialize(buffer: ByteBuffer, featureSet: FeatureSet): ByteBuffer? {
......
...@@ -33,6 +33,12 @@ object QVariantSerializer : PrimitiveSerializer<QVariant_> { ...@@ -33,6 +33,12 @@ object QVariantSerializer : PrimitiveSerializer<QVariant_> {
BoolSerializer.serialize(buffer, false, featureSet) BoolSerializer.serialize(buffer, false, featureSet)
data.serialize(buffer, featureSet) data.serialize(buffer, featureSet)
} }
is QVariant.Custom -> {
IntSerializer.serialize(buffer, QtType.UserType.id, featureSet)
BoolSerializer.serialize(buffer, false, featureSet)
StringSerializerAscii.serialize(buffer, data.type.typeName, featureSet)
data.serialize(buffer, featureSet)
}
} }
} }
......
...@@ -14,6 +14,7 @@ import de.justjanne.bitflags.of ...@@ -14,6 +14,7 @@ import de.justjanne.bitflags.of
import de.justjanne.bitflags.toBits import de.justjanne.bitflags.toBits
import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.features.FeatureSet
import de.justjanne.libquassel.protocol.io.ChainedByteBuffer import de.justjanne.libquassel.protocol.io.ChainedByteBuffer
import de.justjanne.libquassel.protocol.io.contentToString
import de.justjanne.libquassel.protocol.models.BufferInfo import de.justjanne.libquassel.protocol.models.BufferInfo
import de.justjanne.libquassel.protocol.models.flags.BufferType import de.justjanne.libquassel.protocol.models.flags.BufferType
import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer
......
/*
* libquassel
* Copyright (c) 2021 Janne Mareike Koschinski
* Copyright (c) 2021 The Quassel Project
*
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at https://mozilla.org/MPL/2.0/.
*/
package de.justjanne.libquassel.protocol.serializers.quassel
import de.justjanne.libquassel.protocol.features.FeatureSet
import de.justjanne.libquassel.protocol.io.ChainedByteBuffer
import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer
import de.justjanne.libquassel.protocol.serializers.qt.QVariantMapSerializer
import de.justjanne.libquassel.protocol.syncables.Identity
import de.justjanne.libquassel.protocol.variant.QVariantMap
import java.nio.ByteBuffer
/**
* Serializer for [QVariantMap], with custom name for [Identity]
*/
object IdentitySerializer : PrimitiveSerializer<QVariantMap> {
@Suppress("UNCHECKED_CAST")
override val javaType: Class<out QVariantMap> = Map::class.java as Class<QVariantMap>
override fun serialize(buffer: ChainedByteBuffer, data: QVariantMap, featureSet: FeatureSet) =
QVariantMapSerializer.serialize(buffer, data, featureSet)
override fun deserialize(buffer: ByteBuffer, featureSet: FeatureSet): QVariantMap =
QVariantMapSerializer.deserialize(buffer, featureSet)
}
/*
* libquassel
* Copyright (c) 2021 Janne Mareike Koschinski
* Copyright (c) 2021 The Quassel Project
*
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at https://mozilla.org/MPL/2.0/.
*/
package de.justjanne.libquassel.protocol.serializers.quassel
import de.justjanne.libquassel.protocol.features.FeatureSet
import de.justjanne.libquassel.protocol.io.ChainedByteBuffer
import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer
import de.justjanne.libquassel.protocol.serializers.qt.QVariantMapSerializer
import de.justjanne.libquassel.protocol.syncables.IrcChannel
import de.justjanne.libquassel.protocol.variant.QVariantMap
import java.nio.ByteBuffer
/**
* Serializer for [QVariantMap], with custom name for [IrcChannel]
*/
object IrcChannelSerializer : PrimitiveSerializer<QVariantMap> {
@Suppress("UNCHECKED_CAST")
override val javaType: Class<out QVariantMap> = Map::class.java as Class<QVariantMap>
override fun serialize(buffer: ChainedByteBuffer, data: QVariantMap, featureSet: FeatureSet) =
QVariantMapSerializer.serialize(buffer, data, featureSet)
override fun deserialize(buffer: ByteBuffer, featureSet: FeatureSet): QVariantMap =
QVariantMapSerializer.deserialize(buffer, featureSet)
}
/*
* libquassel
* Copyright (c) 2021 Janne Mareike Koschinski
* Copyright (c) 2021 The Quassel Project
*
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at https://mozilla.org/MPL/2.0/.
*/
package de.justjanne.libquassel.protocol.serializers.quassel
import de.justjanne.libquassel.protocol.features.FeatureSet
import de.justjanne.libquassel.protocol.io.ChainedByteBuffer
import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer
import de.justjanne.libquassel.protocol.serializers.qt.QVariantMapSerializer
import de.justjanne.libquassel.protocol.syncables.IrcUser
import de.justjanne.libquassel.protocol.variant.QVariantMap
import java.nio.ByteBuffer
/**
* Serializer for [QVariantMap], with custom name for [IrcUser]
*/
object IrcUserSerializer : PrimitiveSerializer<QVariantMap> {
@Suppress("UNCHECKED_CAST")
override val javaType: Class<out QVariantMap> = Map::class.java as Class<QVariantMap>
override fun serialize(buffer: ChainedByteBuffer, data: QVariantMap, featureSet: FeatureSet) =
QVariantMapSerializer.serialize(buffer, data, featureSet)
override fun deserialize(buffer: ByteBuffer, featureSet: FeatureSet): QVariantMap =
QVariantMapSerializer.deserialize(buffer, featureSet)
}
...@@ -30,6 +30,6 @@ object HeartBeatReplySerializer : SignalProxySerializer<SignalProxyMessage.Heart ...@@ -30,6 +30,6 @@ object HeartBeatReplySerializer : SignalProxySerializer<SignalProxyMessage.Heart
) )
override fun deserialize(data: QVariantList) = SignalProxyMessage.HeartBeatReply( override fun deserialize(data: QVariantList) = SignalProxyMessage.HeartBeatReply(
data[1].into(Instant.EPOCH) data.getOrNull(1).into(Instant.EPOCH)
) )
} }
...@@ -30,6 +30,6 @@ object HeartBeatSerializer : SignalProxySerializer<SignalProxyMessage.HeartBeat> ...@@ -30,6 +30,6 @@ object HeartBeatSerializer : SignalProxySerializer<SignalProxyMessage.HeartBeat>
) )
override fun deserialize(data: QVariantList) = SignalProxyMessage.HeartBeat( override fun deserialize(data: QVariantList) = SignalProxyMessage.HeartBeat(
data[1].into(Instant.EPOCH) data.getOrNull(1).into(Instant.EPOCH)
) )
} }
...@@ -34,8 +34,8 @@ object InitDataSerializer : SignalProxySerializer<SignalProxyMessage.InitData> { ...@@ -34,8 +34,8 @@ object InitDataSerializer : SignalProxySerializer<SignalProxyMessage.InitData> {
) + data.initData.toVariantList() ) + data.initData.toVariantList()
override fun deserialize(data: QVariantList) = SignalProxyMessage.InitData( override fun deserialize(data: QVariantList) = SignalProxyMessage.InitData(
StringSerializerUtf8.deserializeRaw(data[1].into<ByteBuffer>()), StringSerializerUtf8.deserializeRaw(data.getOrNull(1).into<ByteBuffer>()),
StringSerializerUtf8.deserializeRaw(data[2].into<ByteBuffer>()), StringSerializerUtf8.deserializeRaw(data.getOrNull(2).into<ByteBuffer>()),
data.drop(3).toVariantMap() data.drop(3).toVariantMap()
) )
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment