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

Cleanup session init code

parent 50f1d3dd
Branches
Tags
No related merge requests found
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
package de.justjanne.libquassel.protocol.models package de.justjanne.libquassel.protocol.models
import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.features.FeatureSet
import de.justjanne.libquassel.protocol.models.ids.NetworkId
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
...@@ -190,13 +191,13 @@ sealed class HandshakeMessage { ...@@ -190,13 +191,13 @@ sealed class HandshakeMessage {
* Buffers created or deleted after [SessionInit] will be defined via RPC * Buffers created or deleted after [SessionInit] will be defined via RPC
* messages * messages
*/ */
val bufferInfos: QVariantList?, val bufferInfos: List<BufferInfo>,
/** /**
* List of Ids of Network sync objects existing at the current time. * List of Ids of Network sync objects existing at the current time.
* *
* Network objects created or modified after [SessionInit] will be defined * Network 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 networkIds: QVariantList? val networkIds: List<NetworkId>
) : HandshakeMessage() ) : HandshakeMessage()
} }
...@@ -10,9 +10,13 @@ ...@@ -10,9 +10,13 @@
package de.justjanne.libquassel.protocol.serializers.handshake package de.justjanne.libquassel.protocol.serializers.handshake
import de.justjanne.libquassel.protocol.models.BufferInfo
import de.justjanne.libquassel.protocol.models.HandshakeMessage import de.justjanne.libquassel.protocol.models.HandshakeMessage
import de.justjanne.libquassel.protocol.models.ids.NetworkId
import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QtType
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.QVariantMap import de.justjanne.libquassel.protocol.variant.QVariantMap
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,8 +31,18 @@ object SessionInitSerializer : HandshakeSerializer<HandshakeMessage.SessionInit> ...@@ -27,8 +31,18 @@ object SessionInitSerializer : HandshakeSerializer<HandshakeMessage.SessionInit>
"MsgType" to qVariant(type, QtType.QString), "MsgType" to qVariant(type, QtType.QString),
"SessionState" to qVariant( "SessionState" to qVariant(
mapOf( mapOf(
"BufferInfos" to qVariant(data.bufferInfos, QtType.QVariantList), "BufferInfos" to qVariant<QVariantList>(
"NetworkIds" to qVariant(data.networkIds, QtType.QVariantList), data.bufferInfos.map {
qVariant(it, QuasselType.BufferInfo)
},
QtType.QVariantList
),
"NetworkIds" to qVariant<QVariantList>(
data.networkIds.map {
qVariant(it, QuasselType.NetworkId)
},
QtType.QVariantList
),
"Identities" to qVariant(data.identities, QtType.QVariantList), "Identities" to qVariant(data.identities, QtType.QVariantList),
), ),
QtType.QVariantMap QtType.QVariantMap
...@@ -37,8 +51,12 @@ object SessionInitSerializer : HandshakeSerializer<HandshakeMessage.SessionInit> ...@@ -37,8 +51,12 @@ object SessionInitSerializer : HandshakeSerializer<HandshakeMessage.SessionInit>
override fun deserialize(data: QVariantMap) = data["SessionState"].into<QVariantMap>().let { override fun deserialize(data: QVariantMap) = data["SessionState"].into<QVariantMap>().let {
HandshakeMessage.SessionInit( HandshakeMessage.SessionInit(
bufferInfos = it?.get("BufferInfos").into(), bufferInfos = it?.get("BufferInfos").into<QVariantList>()?.mapNotNull {
networkIds = it?.get("NetworkIds").into(), it.into<BufferInfo>()
}.orEmpty(),
networkIds = it?.get("NetworkIds").into<QVariantList>()?.mapNotNull {
it.into<NetworkId>()
}.orEmpty(),
identities = it?.get("Identities").into(), identities = it?.get("Identities").into(),
) )
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment