Commit 5b8dbf59 authored by jiahua.liu's avatar jiahua.liu

nothing

parent 75f21405
......@@ -3,6 +3,8 @@ package net.mamoe.mirai.qqandroid.io
import kotlinx.io.charsets.Charset
import kotlinx.io.core.*
import kotlinx.io.pool.ObjectPool
import kotlinx.serialization.DeserializationStrategy
import net.mamoe.mirai.qqandroid.io.serialization.Jce
import net.mamoe.mirai.qqandroid.network.protocol.jce.RequestPacket
import net.mamoe.mirai.utils.io.DebugLogger
import net.mamoe.mirai.utils.io.readIoBuffer
......@@ -18,12 +20,16 @@ inline class JceHead(private val value: Long) {
override fun toString(): String {
return "JceHead(tag=$tag, type=$type)"
}
}Z
}
fun <J : JceStruct> ByteArray.readJceStruct(factory: JceStruct.Factory<J>, tag: Int = 0, charset: Charset = CharsetUTF8): J {
fun <J : JceStruct> ByteArray.readJceStruct(
deserializer: DeserializationStrategy<J>,
tag: Int = 0,
charset: Charset = CharsetUTF8
): J {
this.asJceInput(charset).use {
return it.readJceStruct(factory, tag)
return Jce.byCharSet(charset).load(deserializer, this.)
}
}
......
......@@ -10,6 +10,7 @@ import kotlinx.serialization.*
import kotlinx.serialization.internal.*
import kotlinx.serialization.modules.EmptyModule
import kotlinx.serialization.modules.SerialModule
import net.mamoe.mirai.qqandroid.io.CharsetUTF8
import net.mamoe.mirai.qqandroid.io.JceEncodeException
import net.mamoe.mirai.qqandroid.io.JceOutput
import net.mamoe.mirai.utils.io.toUHexString
......@@ -310,6 +311,14 @@ class Jce private constructor(private val charset: JceCharset, context: SerialMo
val UTF8 = Jce(JceCharset.UTF8)
val GBK = Jce(JceCharset.GBK)
public fun byCharSet(c: Charset): Jce {
return if (c === CharsetUTF8) {
UTF8
} else {
GBK
}
}
internal const val BYTE: Int = 0
internal const val DOUBLE: Int = 5
internal const val FLOAT: Int = 4
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment