Commit 9488ea26 authored by Him188's avatar Him188

Make generic type TPacket nullable

parent f6ab87f1
...@@ -33,7 +33,7 @@ import kotlin.contracts.contract ...@@ -33,7 +33,7 @@ import kotlin.contracts.contract
import kotlin.jvm.JvmName import kotlin.jvm.JvmName
internal sealed class PacketFactory<TPacket : Packet> { internal sealed class PacketFactory<TPacket : Packet?> {
/** /**
* 筛选从服务器接收到的包时的 commandName * 筛选从服务器接收到的包时的 commandName
*/ */
...@@ -49,7 +49,7 @@ internal sealed class PacketFactory<TPacket : Packet> { ...@@ -49,7 +49,7 @@ internal sealed class PacketFactory<TPacket : Packet> {
* @param TPacket 服务器回复包解析结果 * @param TPacket 服务器回复包解析结果
*/ */
@UseExperimental(ExperimentalUnsignedTypes::class) @UseExperimental(ExperimentalUnsignedTypes::class)
internal abstract class OutgoingPacketFactory<TPacket : Packet>( internal abstract class OutgoingPacketFactory<TPacket : Packet?>(
/** /**
* 命令名. 如 `wtlogin.login`, `ConfigPushSvc.PushDomain` * 命令名. 如 `wtlogin.login`, `ConfigPushSvc.PushDomain`
*/ */
...@@ -73,7 +73,7 @@ internal abstract class OutgoingPacketFactory<TPacket : Packet>( ...@@ -73,7 +73,7 @@ internal abstract class OutgoingPacketFactory<TPacket : Packet>(
* 这个工厂可以在 [handle] 时回复一个 commandId 为 [responseCommandName] 的包, 也可以不回复. * 这个工厂可以在 [handle] 时回复一个 commandId 为 [responseCommandName] 的包, 也可以不回复.
* 必须先到 [KnownPacketFactories] 中注册工厂, 否则不能处理. * 必须先到 [KnownPacketFactories] 中注册工厂, 否则不能处理.
*/ */
internal abstract class IncomingPacketFactory<TPacket : Packet>( internal abstract class IncomingPacketFactory<TPacket : Packet?>(
/** /**
* 接收自服务器的包的 commandName * 接收自服务器的包的 commandName
*/ */
...@@ -263,7 +263,7 @@ internal object KnownPacketFactories { ...@@ -263,7 +263,7 @@ internal object KnownPacketFactories {
private inline fun <R> inline(block: () -> R): R = block() private inline fun <R> inline(block: () -> R): R = block()
class IncomingPacket<T : Packet>( class IncomingPacket<T : Packet?>(
val packetFactory: PacketFactory<T>?, val packetFactory: PacketFactory<T>?,
val sequenceId: Int, val sequenceId: Int,
val data: ByteReadPacket, val data: ByteReadPacket,
......
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