mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-13 10:16:07 +00:00
test[kotlin]: kotlin protocol test
This commit is contained in:
1 parent
6c84df87e9
commit
710a28b21d
7 files changed
+597
-603
No files matched your search
@@ -1,10 +1,16 @@
|
||||
package com.zfoo.kotlin
|
||||
import com.zfoo.kotlin.packet.EmptyObject
|
||||
import com.zfoo.kotlin.packet.EmptyObjectRegistration
|
||||
import com.zfoo.kotlin.packet.ComplexObject
|
||||
import com.zfoo.kotlin.packet.ComplexObjectRegistration
|
||||
import com.zfoo.kotlin.packet.NormalObject
|
||||
import com.zfoo.kotlin.packet.NormalObjectRegistration
|
||||
import com.zfoo.kotlin.packet.ObjectA
|
||||
import com.zfoo.kotlin.packet.ObjectARegistration
|
||||
import com.zfoo.kotlin.packet.ObjectB
|
||||
import com.zfoo.kotlin.packet.ObjectBRegistration
|
||||
import com.zfoo.kotlin.packet.SimpleObject
|
||||
import com.zfoo.kotlin.packet.SimpleObjectRegistration
|
||||
class ProtocolManager {
|
||||
companion object {
|
||||
val protocols = arrayOfNulls<IProtocolRegistration>(Short.MAX_VALUE.toInt())
|
||||
@@ -12,17 +18,17 @@ class ProtocolManager {
|
||||
@JvmStatic
|
||||
fun initProtocol() {
|
||||
// initProtocol
|
||||
protocols[0] = EmptyObject.registrationEmptyObject
|
||||
protocols[0] = EmptyObjectRegistration()
|
||||
protocolIdMap[EmptyObject::class.java] = 0.toShort()
|
||||
protocols[100] = ComplexObject.registrationComplexObject
|
||||
protocols[100] = ComplexObjectRegistration()
|
||||
protocolIdMap[ComplexObject::class.java] = 100.toShort()
|
||||
protocols[101] = NormalObject.registrationNormalObject
|
||||
protocols[101] = NormalObjectRegistration()
|
||||
protocolIdMap[NormalObject::class.java] = 101.toShort()
|
||||
protocols[102] = ObjectA.registrationObjectA
|
||||
protocols[102] = ObjectARegistration()
|
||||
protocolIdMap[ObjectA::class.java] = 102.toShort()
|
||||
protocols[103] = ObjectB.registrationObjectB
|
||||
protocols[103] = ObjectBRegistration()
|
||||
protocolIdMap[ObjectB::class.java] = 103.toShort()
|
||||
protocols[104] = SimpleObject.registrationSimpleObject
|
||||
protocols[104] = SimpleObjectRegistration()
|
||||
protocolIdMap[SimpleObject::class.java] = 104.toShort()
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import com.zfoo.kotlin.packet.ObjectA
|
||||
import com.zfoo.kotlin.packet.ObjectB
|
||||
import com.zfoo.kotlin.IProtocolRegistration
|
||||
import com.zfoo.kotlin.ByteBuffer
|
||||
|
||||
// 复杂的对象,包括了各种复杂的结构,数组,List,Set,Map
|
||||
class ComplexObject {
|
||||
// byte类型,最简单的整形
|
||||
@@ -58,366 +59,363 @@ class ComplexObject {
|
||||
// 如果要修改协议并且兼容老协议,需要加上Compatible注解,保持Compatible注解的value自增
|
||||
var myCompatible: Int = 0
|
||||
var myObject: ObjectA? = null
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val registrationComplexObject: IProtocolRegistration = object : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 100
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as ComplexObject
|
||||
val beforeWriteIndex = buffer.writeOffset()
|
||||
buffer.writeInt(36962)
|
||||
buffer.writeByte(message.a)
|
||||
buffer.writeByte(message.aa)
|
||||
buffer.writeByteArray(message.aaa)
|
||||
buffer.writeByteArray(message.aaaa)
|
||||
buffer.writeShort(message.b)
|
||||
buffer.writeShort(message.bb)
|
||||
buffer.writeShortArray(message.bbb)
|
||||
buffer.writeShortArray(message.bbbb)
|
||||
buffer.writeInt(message.c)
|
||||
buffer.writeInt(message.cc)
|
||||
buffer.writeIntArray(message.ccc)
|
||||
buffer.writeIntArray(message.cccc)
|
||||
buffer.writeLong(message.d)
|
||||
buffer.writeLong(message.dd)
|
||||
buffer.writeLongArray(message.ddd)
|
||||
buffer.writeLongArray(message.dddd)
|
||||
buffer.writeFloat(message.e)
|
||||
buffer.writeFloat(message.ee)
|
||||
buffer.writeFloatArray(message.eee)
|
||||
buffer.writeFloatArray(message.eeee)
|
||||
buffer.writeDouble(message.f)
|
||||
buffer.writeDouble(message.ff)
|
||||
buffer.writeDoubleArray(message.fff)
|
||||
buffer.writeDoubleArray(message.ffff)
|
||||
buffer.writeBool(message.g)
|
||||
buffer.writeBool(message.gg)
|
||||
buffer.writeBooleanArray(message.ggg)
|
||||
buffer.writeBooleanArray(message.gggg)
|
||||
buffer.writeString(message.jj)
|
||||
buffer.writeStringArray(message.jjj)
|
||||
buffer.writePacket(message.kk, 102)
|
||||
buffer.writeInt(message.kkk.size)
|
||||
val length0 = message.kkk.size
|
||||
for (i1 in 0 until length0) {
|
||||
val element2 = message.kkk[i1]
|
||||
buffer.writePacket(element2, 102)
|
||||
}
|
||||
buffer.writeIntList(message.l)
|
||||
buffer.writeInt(message.ll.size)
|
||||
for (element3 in message.ll) {
|
||||
buffer.writeInt(element3.size)
|
||||
for (element4 in element3) {
|
||||
buffer.writeIntList(element4)
|
||||
}
|
||||
}
|
||||
buffer.writeInt(message.lll.size)
|
||||
for (element5 in message.lll) {
|
||||
buffer.writePacketList(element5, 102)
|
||||
}
|
||||
buffer.writeStringList(message.llll)
|
||||
buffer.writeInt(message.lllll.size)
|
||||
for (element6 in message.lllll) {
|
||||
buffer.writeIntStringMap(element6)
|
||||
}
|
||||
buffer.writeIntStringMap(message.m)
|
||||
buffer.writeIntPacketMap(message.mm, 102)
|
||||
buffer.writeInt(message.mmm.size)
|
||||
for ((keyElement7, valueElement8) in message.mmm) {
|
||||
buffer.writePacket(keyElement7, 102)
|
||||
buffer.writeIntList(valueElement8)
|
||||
}
|
||||
buffer.writeInt(message.mmmm.size)
|
||||
for ((keyElement9, valueElement10) in message.mmmm) {
|
||||
buffer.writeInt(keyElement9.size)
|
||||
for (element11 in keyElement9) {
|
||||
buffer.writePacketList(element11, 102)
|
||||
}
|
||||
buffer.writeInt(valueElement10.size)
|
||||
for (element12 in valueElement10) {
|
||||
buffer.writeInt(element12.size)
|
||||
for (element13 in element12) {
|
||||
buffer.writeIntList(element13)
|
||||
}
|
||||
}
|
||||
}
|
||||
buffer.writeInt(message.mmmmm.size)
|
||||
for ((keyElement14, valueElement15) in message.mmmmm) {
|
||||
buffer.writeInt(keyElement14.size)
|
||||
for (element16 in keyElement14) {
|
||||
buffer.writeIntStringMap(element16)
|
||||
}
|
||||
buffer.writeInt(valueElement15.size)
|
||||
for (i17 in valueElement15) {
|
||||
buffer.writeIntStringMap(i17)
|
||||
}
|
||||
}
|
||||
buffer.writeIntSet(message.s)
|
||||
buffer.writeInt(message.ss.size)
|
||||
for (i18 in message.ss) {
|
||||
buffer.writeInt(i18.size)
|
||||
for (i19 in i18) {
|
||||
buffer.writeIntList(i19)
|
||||
}
|
||||
}
|
||||
buffer.writeInt(message.sss.size)
|
||||
for (i20 in message.sss) {
|
||||
buffer.writePacketSet(i20, 102)
|
||||
}
|
||||
buffer.writeStringSet(message.ssss)
|
||||
buffer.writeInt(message.sssss.size)
|
||||
for (i21 in message.sssss) {
|
||||
buffer.writeIntStringMap(i21)
|
||||
}
|
||||
buffer.writeInt(message.myCompatible)
|
||||
buffer.writePacket(message.myObject, 102)
|
||||
buffer.adjustPadding(36962, beforeWriteIndex)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = ComplexObject()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readByte()
|
||||
packet.a = result0
|
||||
val result1 = buffer.readByte()
|
||||
packet.aa = result1
|
||||
val array2 = buffer.readByteArray()
|
||||
packet.aaa = array2
|
||||
val array3 = buffer.readByteArray()
|
||||
packet.aaaa = array3
|
||||
val result4 = buffer.readShort()
|
||||
packet.b = result4
|
||||
val result5 = buffer.readShort()
|
||||
packet.bb = result5
|
||||
val array6 = buffer.readShortArray()
|
||||
packet.bbb = array6
|
||||
val array7 = buffer.readShortArray()
|
||||
packet.bbbb = array7
|
||||
val result8 = buffer.readInt()
|
||||
packet.c = result8
|
||||
val result9 = buffer.readInt()
|
||||
packet.cc = result9
|
||||
val array10 = buffer.readIntArray()
|
||||
packet.ccc = array10
|
||||
val array11 = buffer.readIntArray()
|
||||
packet.cccc = array11
|
||||
val result12 = buffer.readLong()
|
||||
packet.d = result12
|
||||
val result13 = buffer.readLong()
|
||||
packet.dd = result13
|
||||
val array14 = buffer.readLongArray()
|
||||
packet.ddd = array14
|
||||
val array15 = buffer.readLongArray()
|
||||
packet.dddd = array15
|
||||
val result16 = buffer.readFloat()
|
||||
packet.e = result16
|
||||
val result17 = buffer.readFloat()
|
||||
packet.ee = result17
|
||||
val array18 = buffer.readFloatArray()
|
||||
packet.eee = array18
|
||||
val array19 = buffer.readFloatArray()
|
||||
packet.eeee = array19
|
||||
val result20 = buffer.readDouble()
|
||||
packet.f = result20
|
||||
val result21 = buffer.readDouble()
|
||||
packet.ff = result21
|
||||
val array22 = buffer.readDoubleArray()
|
||||
packet.fff = array22
|
||||
val array23 = buffer.readDoubleArray()
|
||||
packet.ffff = array23
|
||||
val result24 = buffer.readBool()
|
||||
packet.g = result24
|
||||
val result25 = buffer.readBool()
|
||||
packet.gg = result25
|
||||
val array26 = buffer.readBooleanArray()
|
||||
packet.ggg = array26
|
||||
val array27 = buffer.readBooleanArray()
|
||||
packet.gggg = array27
|
||||
val result28 = buffer.readString()
|
||||
packet.jj = result28
|
||||
val array29 = buffer.readStringArray()
|
||||
packet.jjj = array29
|
||||
val result30 = buffer.readPacket(102) as ObjectA
|
||||
packet.kk = result30
|
||||
val size34 = buffer.readInt()
|
||||
val result31 = Array<ObjectA>(size34) { init -> ObjectA()}
|
||||
if (size34 > 0) {
|
||||
for (index32 in 0 until size34) {
|
||||
val result35 = buffer.readPacket(102) as ObjectA
|
||||
result31[index32] = result35
|
||||
}
|
||||
}
|
||||
packet.kkk = result31
|
||||
val list36 = buffer.readIntList()
|
||||
packet.l = list36
|
||||
val size39 = buffer.readInt()
|
||||
val result37 = ArrayList<List<List<Int>>>(size39)
|
||||
if (size39 > 0) {
|
||||
for (index38 in 0 until size39) {
|
||||
val size42 = buffer.readInt()
|
||||
val result40 = ArrayList<List<Int>>(size42)
|
||||
if (size42 > 0) {
|
||||
for (index41 in 0 until size42) {
|
||||
val list43 = buffer.readIntList()
|
||||
result40.add(list43)
|
||||
}
|
||||
}
|
||||
result37.add(result40)
|
||||
}
|
||||
}
|
||||
packet.ll = result37
|
||||
val size46 = buffer.readInt()
|
||||
val result44 = ArrayList<List<ObjectA>>(size46)
|
||||
if (size46 > 0) {
|
||||
for (index45 in 0 until size46) {
|
||||
val list47 = buffer.readPacketList(ObjectA::class.java, 102)
|
||||
result44.add(list47)
|
||||
}
|
||||
}
|
||||
packet.lll = result44
|
||||
val list48 = buffer.readStringList()
|
||||
packet.llll = list48
|
||||
val size51 = buffer.readInt()
|
||||
val result49 = ArrayList<Map<Int, String>>(size51)
|
||||
if (size51 > 0) {
|
||||
for (index50 in 0 until size51) {
|
||||
val map52 = buffer.readIntStringMap()
|
||||
result49.add(map52)
|
||||
}
|
||||
}
|
||||
packet.lllll = result49
|
||||
val map53 = buffer.readIntStringMap()
|
||||
packet.m = map53
|
||||
val map54 = buffer.readIntPacketMap(ObjectA::class.java, 102)
|
||||
packet.mm = map54
|
||||
val size56 = buffer.readInt()
|
||||
val result55 = HashMap<ObjectA, List<Int>>(size56)
|
||||
if (size56 > 0) {
|
||||
for (index57 in 0 until size56) {
|
||||
val result58 = buffer.readPacket(102) as ObjectA
|
||||
val list59 = buffer.readIntList()
|
||||
result55.put(result58, list59)
|
||||
}
|
||||
}
|
||||
packet.mmm = result55
|
||||
val size61 = buffer.readInt()
|
||||
val result60 = HashMap<List<List<ObjectA>>, List<List<List<Int>>>>(size61)
|
||||
if (size61 > 0) {
|
||||
for (index62 in 0 until size61) {
|
||||
val size65 = buffer.readInt()
|
||||
val result63 = ArrayList<List<ObjectA>>(size65)
|
||||
if (size65 > 0) {
|
||||
for (index64 in 0 until size65) {
|
||||
val list66 = buffer.readPacketList(ObjectA::class.java, 102)
|
||||
result63.add(list66)
|
||||
}
|
||||
}
|
||||
val size69 = buffer.readInt()
|
||||
val result67 = ArrayList<List<List<Int>>>(size69)
|
||||
if (size69 > 0) {
|
||||
for (index68 in 0 until size69) {
|
||||
val size72 = buffer.readInt()
|
||||
val result70 = ArrayList<List<Int>>(size72)
|
||||
if (size72 > 0) {
|
||||
for (index71 in 0 until size72) {
|
||||
val list73 = buffer.readIntList()
|
||||
result70.add(list73)
|
||||
}
|
||||
}
|
||||
result67.add(result70)
|
||||
}
|
||||
}
|
||||
result60.put(result63, result67)
|
||||
}
|
||||
}
|
||||
packet.mmmm = result60
|
||||
val size75 = buffer.readInt()
|
||||
val result74 = HashMap<List<Map<Int, String>>, Set<Map<Int, String>>>(size75)
|
||||
if (size75 > 0) {
|
||||
for (index76 in 0 until size75) {
|
||||
val size79 = buffer.readInt()
|
||||
val result77 = ArrayList<Map<Int, String>>(size79)
|
||||
if (size79 > 0) {
|
||||
for (index78 in 0 until size79) {
|
||||
val map80 = buffer.readIntStringMap()
|
||||
result77.add(map80)
|
||||
}
|
||||
}
|
||||
val size83 = buffer.readInt()
|
||||
val result81 = HashSet<Map<Int, String>>()
|
||||
if (size83 > 0) {
|
||||
for (index82 in 0 until size83) {
|
||||
val map84 = buffer.readIntStringMap()
|
||||
result81.add(map84)
|
||||
}
|
||||
}
|
||||
result74.put(result77, result81)
|
||||
}
|
||||
}
|
||||
packet.mmmmm = result74
|
||||
val set85 = buffer.readIntSet()
|
||||
packet.s = set85
|
||||
val size88 = buffer.readInt()
|
||||
val result86 = HashSet<Set<List<Int>>>()
|
||||
if (size88 > 0) {
|
||||
for (index87 in 0 until size88) {
|
||||
val size91 = buffer.readInt()
|
||||
val result89 = HashSet<List<Int>>()
|
||||
if (size91 > 0) {
|
||||
for (index90 in 0 until size91) {
|
||||
val list92 = buffer.readIntList()
|
||||
result89.add(list92)
|
||||
}
|
||||
}
|
||||
result86.add(result89)
|
||||
}
|
||||
}
|
||||
packet.ss = result86
|
||||
val size95 = buffer.readInt()
|
||||
val result93 = HashSet<Set<ObjectA>>()
|
||||
if (size95 > 0) {
|
||||
for (index94 in 0 until size95) {
|
||||
val set96 = buffer.readPacketSet(ObjectA::class.java, 102)
|
||||
result93.add(set96)
|
||||
}
|
||||
}
|
||||
packet.sss = result93
|
||||
val set97 = buffer.readStringSet()
|
||||
packet.ssss = set97
|
||||
val size100 = buffer.readInt()
|
||||
val result98 = HashSet<Map<Int, String>>()
|
||||
if (size100 > 0) {
|
||||
for (index99 in 0 until size100) {
|
||||
val map101 = buffer.readIntStringMap()
|
||||
result98.add(map101)
|
||||
}
|
||||
}
|
||||
packet.sssss = result98
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result102 = buffer.readInt()
|
||||
packet.myCompatible = result102
|
||||
}
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result103 = buffer.readPacket(102) as ObjectA
|
||||
packet.myObject = result103
|
||||
}
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
class ComplexObjectRegistration : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 100
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as ComplexObject
|
||||
val beforeWriteIndex = buffer.writeOffset()
|
||||
buffer.writeInt(36962)
|
||||
buffer.writeByte(message.a)
|
||||
buffer.writeByte(message.aa)
|
||||
buffer.writeByteArray(message.aaa)
|
||||
buffer.writeByteArray(message.aaaa)
|
||||
buffer.writeShort(message.b)
|
||||
buffer.writeShort(message.bb)
|
||||
buffer.writeShortArray(message.bbb)
|
||||
buffer.writeShortArray(message.bbbb)
|
||||
buffer.writeInt(message.c)
|
||||
buffer.writeInt(message.cc)
|
||||
buffer.writeIntArray(message.ccc)
|
||||
buffer.writeIntArray(message.cccc)
|
||||
buffer.writeLong(message.d)
|
||||
buffer.writeLong(message.dd)
|
||||
buffer.writeLongArray(message.ddd)
|
||||
buffer.writeLongArray(message.dddd)
|
||||
buffer.writeFloat(message.e)
|
||||
buffer.writeFloat(message.ee)
|
||||
buffer.writeFloatArray(message.eee)
|
||||
buffer.writeFloatArray(message.eeee)
|
||||
buffer.writeDouble(message.f)
|
||||
buffer.writeDouble(message.ff)
|
||||
buffer.writeDoubleArray(message.fff)
|
||||
buffer.writeDoubleArray(message.ffff)
|
||||
buffer.writeBool(message.g)
|
||||
buffer.writeBool(message.gg)
|
||||
buffer.writeBooleanArray(message.ggg)
|
||||
buffer.writeBooleanArray(message.gggg)
|
||||
buffer.writeString(message.jj)
|
||||
buffer.writeStringArray(message.jjj)
|
||||
buffer.writePacket(message.kk, 102)
|
||||
buffer.writeInt(message.kkk.size)
|
||||
val length0 = message.kkk.size
|
||||
for (i1 in 0 until length0) {
|
||||
val element2 = message.kkk[i1]
|
||||
buffer.writePacket(element2, 102)
|
||||
}
|
||||
buffer.writeIntList(message.l)
|
||||
buffer.writeInt(message.ll.size)
|
||||
for (element3 in message.ll) {
|
||||
buffer.writeInt(element3.size)
|
||||
for (element4 in element3) {
|
||||
buffer.writeIntList(element4)
|
||||
}
|
||||
}
|
||||
buffer.writeInt(message.lll.size)
|
||||
for (element5 in message.lll) {
|
||||
buffer.writePacketList(element5, 102)
|
||||
}
|
||||
buffer.writeStringList(message.llll)
|
||||
buffer.writeInt(message.lllll.size)
|
||||
for (element6 in message.lllll) {
|
||||
buffer.writeIntStringMap(element6)
|
||||
}
|
||||
buffer.writeIntStringMap(message.m)
|
||||
buffer.writeIntPacketMap(message.mm, 102)
|
||||
buffer.writeInt(message.mmm.size)
|
||||
for ((keyElement7, valueElement8) in message.mmm) {
|
||||
buffer.writePacket(keyElement7, 102)
|
||||
buffer.writeIntList(valueElement8)
|
||||
}
|
||||
buffer.writeInt(message.mmmm.size)
|
||||
for ((keyElement9, valueElement10) in message.mmmm) {
|
||||
buffer.writeInt(keyElement9.size)
|
||||
for (element11 in keyElement9) {
|
||||
buffer.writePacketList(element11, 102)
|
||||
}
|
||||
buffer.writeInt(valueElement10.size)
|
||||
for (element12 in valueElement10) {
|
||||
buffer.writeInt(element12.size)
|
||||
for (element13 in element12) {
|
||||
buffer.writeIntList(element13)
|
||||
}
|
||||
}
|
||||
}
|
||||
buffer.writeInt(message.mmmmm.size)
|
||||
for ((keyElement14, valueElement15) in message.mmmmm) {
|
||||
buffer.writeInt(keyElement14.size)
|
||||
for (element16 in keyElement14) {
|
||||
buffer.writeIntStringMap(element16)
|
||||
}
|
||||
buffer.writeInt(valueElement15.size)
|
||||
for (i17 in valueElement15) {
|
||||
buffer.writeIntStringMap(i17)
|
||||
}
|
||||
}
|
||||
buffer.writeIntSet(message.s)
|
||||
buffer.writeInt(message.ss.size)
|
||||
for (i18 in message.ss) {
|
||||
buffer.writeInt(i18.size)
|
||||
for (i19 in i18) {
|
||||
buffer.writeIntList(i19)
|
||||
}
|
||||
}
|
||||
buffer.writeInt(message.sss.size)
|
||||
for (i20 in message.sss) {
|
||||
buffer.writePacketSet(i20, 102)
|
||||
}
|
||||
buffer.writeStringSet(message.ssss)
|
||||
buffer.writeInt(message.sssss.size)
|
||||
for (i21 in message.sssss) {
|
||||
buffer.writeIntStringMap(i21)
|
||||
}
|
||||
buffer.writeInt(message.myCompatible)
|
||||
buffer.writePacket(message.myObject, 102)
|
||||
buffer.adjustPadding(36962, beforeWriteIndex)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = ComplexObject()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readByte()
|
||||
packet.a = result0
|
||||
val result1 = buffer.readByte()
|
||||
packet.aa = result1
|
||||
val array2 = buffer.readByteArray()
|
||||
packet.aaa = array2
|
||||
val array3 = buffer.readByteArray()
|
||||
packet.aaaa = array3
|
||||
val result4 = buffer.readShort()
|
||||
packet.b = result4
|
||||
val result5 = buffer.readShort()
|
||||
packet.bb = result5
|
||||
val array6 = buffer.readShortArray()
|
||||
packet.bbb = array6
|
||||
val array7 = buffer.readShortArray()
|
||||
packet.bbbb = array7
|
||||
val result8 = buffer.readInt()
|
||||
packet.c = result8
|
||||
val result9 = buffer.readInt()
|
||||
packet.cc = result9
|
||||
val array10 = buffer.readIntArray()
|
||||
packet.ccc = array10
|
||||
val array11 = buffer.readIntArray()
|
||||
packet.cccc = array11
|
||||
val result12 = buffer.readLong()
|
||||
packet.d = result12
|
||||
val result13 = buffer.readLong()
|
||||
packet.dd = result13
|
||||
val array14 = buffer.readLongArray()
|
||||
packet.ddd = array14
|
||||
val array15 = buffer.readLongArray()
|
||||
packet.dddd = array15
|
||||
val result16 = buffer.readFloat()
|
||||
packet.e = result16
|
||||
val result17 = buffer.readFloat()
|
||||
packet.ee = result17
|
||||
val array18 = buffer.readFloatArray()
|
||||
packet.eee = array18
|
||||
val array19 = buffer.readFloatArray()
|
||||
packet.eeee = array19
|
||||
val result20 = buffer.readDouble()
|
||||
packet.f = result20
|
||||
val result21 = buffer.readDouble()
|
||||
packet.ff = result21
|
||||
val array22 = buffer.readDoubleArray()
|
||||
packet.fff = array22
|
||||
val array23 = buffer.readDoubleArray()
|
||||
packet.ffff = array23
|
||||
val result24 = buffer.readBool()
|
||||
packet.g = result24
|
||||
val result25 = buffer.readBool()
|
||||
packet.gg = result25
|
||||
val array26 = buffer.readBooleanArray()
|
||||
packet.ggg = array26
|
||||
val array27 = buffer.readBooleanArray()
|
||||
packet.gggg = array27
|
||||
val result28 = buffer.readString()
|
||||
packet.jj = result28
|
||||
val array29 = buffer.readStringArray()
|
||||
packet.jjj = array29
|
||||
val result30 = buffer.readPacket(102) as ObjectA
|
||||
packet.kk = result30
|
||||
val size34 = buffer.readInt()
|
||||
val result31 = Array<ObjectA>(size34) { init -> ObjectA()}
|
||||
if (size34 > 0) {
|
||||
for (index32 in 0 until size34) {
|
||||
val result35 = buffer.readPacket(102) as ObjectA
|
||||
result31[index32] = result35
|
||||
}
|
||||
}
|
||||
packet.kkk = result31
|
||||
val list36 = buffer.readIntList()
|
||||
packet.l = list36
|
||||
val size39 = buffer.readInt()
|
||||
val result37 = ArrayList<List<List<Int>>>(size39)
|
||||
if (size39 > 0) {
|
||||
for (index38 in 0 until size39) {
|
||||
val size42 = buffer.readInt()
|
||||
val result40 = ArrayList<List<Int>>(size42)
|
||||
if (size42 > 0) {
|
||||
for (index41 in 0 until size42) {
|
||||
val list43 = buffer.readIntList()
|
||||
result40.add(list43)
|
||||
}
|
||||
}
|
||||
result37.add(result40)
|
||||
}
|
||||
}
|
||||
packet.ll = result37
|
||||
val size46 = buffer.readInt()
|
||||
val result44 = ArrayList<List<ObjectA>>(size46)
|
||||
if (size46 > 0) {
|
||||
for (index45 in 0 until size46) {
|
||||
val list47 = buffer.readPacketList(ObjectA::class.java, 102)
|
||||
result44.add(list47)
|
||||
}
|
||||
}
|
||||
packet.lll = result44
|
||||
val list48 = buffer.readStringList()
|
||||
packet.llll = list48
|
||||
val size51 = buffer.readInt()
|
||||
val result49 = ArrayList<Map<Int, String>>(size51)
|
||||
if (size51 > 0) {
|
||||
for (index50 in 0 until size51) {
|
||||
val map52 = buffer.readIntStringMap()
|
||||
result49.add(map52)
|
||||
}
|
||||
}
|
||||
packet.lllll = result49
|
||||
val map53 = buffer.readIntStringMap()
|
||||
packet.m = map53
|
||||
val map54 = buffer.readIntPacketMap(ObjectA::class.java, 102)
|
||||
packet.mm = map54
|
||||
val size56 = buffer.readInt()
|
||||
val result55 = HashMap<ObjectA, List<Int>>(size56)
|
||||
if (size56 > 0) {
|
||||
for (index57 in 0 until size56) {
|
||||
val result58 = buffer.readPacket(102) as ObjectA
|
||||
val list59 = buffer.readIntList()
|
||||
result55.put(result58, list59)
|
||||
}
|
||||
}
|
||||
packet.mmm = result55
|
||||
val size61 = buffer.readInt()
|
||||
val result60 = HashMap<List<List<ObjectA>>, List<List<List<Int>>>>(size61)
|
||||
if (size61 > 0) {
|
||||
for (index62 in 0 until size61) {
|
||||
val size65 = buffer.readInt()
|
||||
val result63 = ArrayList<List<ObjectA>>(size65)
|
||||
if (size65 > 0) {
|
||||
for (index64 in 0 until size65) {
|
||||
val list66 = buffer.readPacketList(ObjectA::class.java, 102)
|
||||
result63.add(list66)
|
||||
}
|
||||
}
|
||||
val size69 = buffer.readInt()
|
||||
val result67 = ArrayList<List<List<Int>>>(size69)
|
||||
if (size69 > 0) {
|
||||
for (index68 in 0 until size69) {
|
||||
val size72 = buffer.readInt()
|
||||
val result70 = ArrayList<List<Int>>(size72)
|
||||
if (size72 > 0) {
|
||||
for (index71 in 0 until size72) {
|
||||
val list73 = buffer.readIntList()
|
||||
result70.add(list73)
|
||||
}
|
||||
}
|
||||
result67.add(result70)
|
||||
}
|
||||
}
|
||||
result60.put(result63, result67)
|
||||
}
|
||||
}
|
||||
packet.mmmm = result60
|
||||
val size75 = buffer.readInt()
|
||||
val result74 = HashMap<List<Map<Int, String>>, Set<Map<Int, String>>>(size75)
|
||||
if (size75 > 0) {
|
||||
for (index76 in 0 until size75) {
|
||||
val size79 = buffer.readInt()
|
||||
val result77 = ArrayList<Map<Int, String>>(size79)
|
||||
if (size79 > 0) {
|
||||
for (index78 in 0 until size79) {
|
||||
val map80 = buffer.readIntStringMap()
|
||||
result77.add(map80)
|
||||
}
|
||||
}
|
||||
val size83 = buffer.readInt()
|
||||
val result81 = HashSet<Map<Int, String>>()
|
||||
if (size83 > 0) {
|
||||
for (index82 in 0 until size83) {
|
||||
val map84 = buffer.readIntStringMap()
|
||||
result81.add(map84)
|
||||
}
|
||||
}
|
||||
result74.put(result77, result81)
|
||||
}
|
||||
}
|
||||
packet.mmmmm = result74
|
||||
val set85 = buffer.readIntSet()
|
||||
packet.s = set85
|
||||
val size88 = buffer.readInt()
|
||||
val result86 = HashSet<Set<List<Int>>>()
|
||||
if (size88 > 0) {
|
||||
for (index87 in 0 until size88) {
|
||||
val size91 = buffer.readInt()
|
||||
val result89 = HashSet<List<Int>>()
|
||||
if (size91 > 0) {
|
||||
for (index90 in 0 until size91) {
|
||||
val list92 = buffer.readIntList()
|
||||
result89.add(list92)
|
||||
}
|
||||
}
|
||||
result86.add(result89)
|
||||
}
|
||||
}
|
||||
packet.ss = result86
|
||||
val size95 = buffer.readInt()
|
||||
val result93 = HashSet<Set<ObjectA>>()
|
||||
if (size95 > 0) {
|
||||
for (index94 in 0 until size95) {
|
||||
val set96 = buffer.readPacketSet(ObjectA::class.java, 102)
|
||||
result93.add(set96)
|
||||
}
|
||||
}
|
||||
packet.sss = result93
|
||||
val set97 = buffer.readStringSet()
|
||||
packet.ssss = set97
|
||||
val size100 = buffer.readInt()
|
||||
val result98 = HashSet<Map<Int, String>>()
|
||||
if (size100 > 0) {
|
||||
for (index99 in 0 until size100) {
|
||||
val map101 = buffer.readIntStringMap()
|
||||
result98.add(map101)
|
||||
}
|
||||
}
|
||||
packet.sssss = result98
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result102 = buffer.readInt()
|
||||
packet.myCompatible = result102
|
||||
}
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result103 = buffer.readPacket(102) as ObjectA
|
||||
packet.myObject = result103
|
||||
}
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
}
|
||||
@@ -2,38 +2,36 @@ package com.zfoo.kotlin.packet
|
||||
import com.zfoo.kotlin.IProtocolRegistration
|
||||
import com.zfoo.kotlin.ByteBuffer
|
||||
|
||||
|
||||
class EmptyObject {
|
||||
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val registrationEmptyObject: IProtocolRegistration = object : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 0
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as EmptyObject
|
||||
buffer.writeInt(-1)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = EmptyObject()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
class EmptyObjectRegistration : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 0
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as EmptyObject
|
||||
buffer.writeInt(-1)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = EmptyObject()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ import com.zfoo.kotlin.packet.ObjectA
|
||||
import com.zfoo.kotlin.packet.ObjectB
|
||||
import com.zfoo.kotlin.IProtocolRegistration
|
||||
import com.zfoo.kotlin.ByteBuffer
|
||||
|
||||
// 常规的对象,取所有语言语法的交集,基本上所有语言都支持下面的语法
|
||||
class NormalObject {
|
||||
var a: Byte = 0
|
||||
@@ -26,101 +27,98 @@ class NormalObject {
|
||||
var ssss: Set<String> = emptySet()
|
||||
var outCompatibleValue: Int = 0
|
||||
var outCompatibleValue2: Int = 0
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val registrationNormalObject: IProtocolRegistration = object : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 101
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as NormalObject
|
||||
val beforeWriteIndex = buffer.writeOffset()
|
||||
buffer.writeInt(857)
|
||||
buffer.writeByte(message.a)
|
||||
buffer.writeByteArray(message.aaa)
|
||||
buffer.writeShort(message.b)
|
||||
buffer.writeInt(message.c)
|
||||
buffer.writeLong(message.d)
|
||||
buffer.writeFloat(message.e)
|
||||
buffer.writeDouble(message.f)
|
||||
buffer.writeBool(message.g)
|
||||
buffer.writeString(message.jj)
|
||||
buffer.writePacket(message.kk, 102)
|
||||
buffer.writeIntList(message.l)
|
||||
buffer.writeLongList(message.ll)
|
||||
buffer.writePacketList(message.lll, 102)
|
||||
buffer.writeStringList(message.llll)
|
||||
buffer.writeIntStringMap(message.m)
|
||||
buffer.writeIntPacketMap(message.mm, 102)
|
||||
buffer.writeIntSet(message.s)
|
||||
buffer.writeStringSet(message.ssss)
|
||||
buffer.writeInt(message.outCompatibleValue)
|
||||
buffer.writeInt(message.outCompatibleValue2)
|
||||
buffer.adjustPadding(857, beforeWriteIndex)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = NormalObject()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readByte()
|
||||
packet.a = result0
|
||||
val array1 = buffer.readByteArray()
|
||||
packet.aaa = array1
|
||||
val result2 = buffer.readShort()
|
||||
packet.b = result2
|
||||
val result3 = buffer.readInt()
|
||||
packet.c = result3
|
||||
val result4 = buffer.readLong()
|
||||
packet.d = result4
|
||||
val result5 = buffer.readFloat()
|
||||
packet.e = result5
|
||||
val result6 = buffer.readDouble()
|
||||
packet.f = result6
|
||||
val result7 = buffer.readBool()
|
||||
packet.g = result7
|
||||
val result8 = buffer.readString()
|
||||
packet.jj = result8
|
||||
val result9 = buffer.readPacket(102) as ObjectA
|
||||
packet.kk = result9
|
||||
val list10 = buffer.readIntList()
|
||||
packet.l = list10
|
||||
val list11 = buffer.readLongList()
|
||||
packet.ll = list11
|
||||
val list12 = buffer.readPacketList(ObjectA::class.java, 102)
|
||||
packet.lll = list12
|
||||
val list13 = buffer.readStringList()
|
||||
packet.llll = list13
|
||||
val map14 = buffer.readIntStringMap()
|
||||
packet.m = map14
|
||||
val map15 = buffer.readIntPacketMap(ObjectA::class.java, 102)
|
||||
packet.mm = map15
|
||||
val set16 = buffer.readIntSet()
|
||||
packet.s = set16
|
||||
val set17 = buffer.readStringSet()
|
||||
packet.ssss = set17
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result18 = buffer.readInt()
|
||||
packet.outCompatibleValue = result18
|
||||
}
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result19 = buffer.readInt()
|
||||
packet.outCompatibleValue2 = result19
|
||||
}
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
class NormalObjectRegistration : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 101
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as NormalObject
|
||||
val beforeWriteIndex = buffer.writeOffset()
|
||||
buffer.writeInt(857)
|
||||
buffer.writeByte(message.a)
|
||||
buffer.writeByteArray(message.aaa)
|
||||
buffer.writeShort(message.b)
|
||||
buffer.writeInt(message.c)
|
||||
buffer.writeLong(message.d)
|
||||
buffer.writeFloat(message.e)
|
||||
buffer.writeDouble(message.f)
|
||||
buffer.writeBool(message.g)
|
||||
buffer.writeString(message.jj)
|
||||
buffer.writePacket(message.kk, 102)
|
||||
buffer.writeIntList(message.l)
|
||||
buffer.writeLongList(message.ll)
|
||||
buffer.writePacketList(message.lll, 102)
|
||||
buffer.writeStringList(message.llll)
|
||||
buffer.writeIntStringMap(message.m)
|
||||
buffer.writeIntPacketMap(message.mm, 102)
|
||||
buffer.writeIntSet(message.s)
|
||||
buffer.writeStringSet(message.ssss)
|
||||
buffer.writeInt(message.outCompatibleValue)
|
||||
buffer.writeInt(message.outCompatibleValue2)
|
||||
buffer.adjustPadding(857, beforeWriteIndex)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = NormalObject()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readByte()
|
||||
packet.a = result0
|
||||
val array1 = buffer.readByteArray()
|
||||
packet.aaa = array1
|
||||
val result2 = buffer.readShort()
|
||||
packet.b = result2
|
||||
val result3 = buffer.readInt()
|
||||
packet.c = result3
|
||||
val result4 = buffer.readLong()
|
||||
packet.d = result4
|
||||
val result5 = buffer.readFloat()
|
||||
packet.e = result5
|
||||
val result6 = buffer.readDouble()
|
||||
packet.f = result6
|
||||
val result7 = buffer.readBool()
|
||||
packet.g = result7
|
||||
val result8 = buffer.readString()
|
||||
packet.jj = result8
|
||||
val result9 = buffer.readPacket(102) as ObjectA
|
||||
packet.kk = result9
|
||||
val list10 = buffer.readIntList()
|
||||
packet.l = list10
|
||||
val list11 = buffer.readLongList()
|
||||
packet.ll = list11
|
||||
val list12 = buffer.readPacketList(ObjectA::class.java, 102)
|
||||
packet.lll = list12
|
||||
val list13 = buffer.readStringList()
|
||||
packet.llll = list13
|
||||
val map14 = buffer.readIntStringMap()
|
||||
packet.m = map14
|
||||
val map15 = buffer.readIntPacketMap(ObjectA::class.java, 102)
|
||||
packet.mm = map15
|
||||
val set16 = buffer.readIntSet()
|
||||
packet.s = set16
|
||||
val set17 = buffer.readStringSet()
|
||||
packet.ssss = set17
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result18 = buffer.readInt()
|
||||
packet.outCompatibleValue = result18
|
||||
}
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result19 = buffer.readInt()
|
||||
packet.outCompatibleValue2 = result19
|
||||
}
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
}
|
||||
@@ -3,56 +3,54 @@ import com.zfoo.kotlin.packet.ObjectB
|
||||
import com.zfoo.kotlin.IProtocolRegistration
|
||||
import com.zfoo.kotlin.ByteBuffer
|
||||
|
||||
|
||||
class ObjectA {
|
||||
var a: Int = 0
|
||||
var m: Map<Int, String> = emptyMap()
|
||||
var objectB: ObjectB? = null
|
||||
var innerCompatibleValue: Int = 0
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val registrationObjectA: IProtocolRegistration = object : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 102
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as ObjectA
|
||||
val beforeWriteIndex = buffer.writeOffset()
|
||||
buffer.writeInt(201)
|
||||
buffer.writeInt(message.a)
|
||||
buffer.writeIntStringMap(message.m)
|
||||
buffer.writePacket(message.objectB, 103)
|
||||
buffer.writeInt(message.innerCompatibleValue)
|
||||
buffer.adjustPadding(201, beforeWriteIndex)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = ObjectA()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readInt()
|
||||
packet.a = result0
|
||||
val map1 = buffer.readIntStringMap()
|
||||
packet.m = map1
|
||||
val result2 = buffer.readPacket(103) as ObjectB
|
||||
packet.objectB = result2
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result3 = buffer.readInt()
|
||||
packet.innerCompatibleValue = result3
|
||||
}
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
class ObjectARegistration : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 102
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as ObjectA
|
||||
val beforeWriteIndex = buffer.writeOffset()
|
||||
buffer.writeInt(201)
|
||||
buffer.writeInt(message.a)
|
||||
buffer.writeIntStringMap(message.m)
|
||||
buffer.writePacket(message.objectB, 103)
|
||||
buffer.writeInt(message.innerCompatibleValue)
|
||||
buffer.adjustPadding(201, beforeWriteIndex)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = ObjectA()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readInt()
|
||||
packet.a = result0
|
||||
val map1 = buffer.readIntStringMap()
|
||||
packet.m = map1
|
||||
val result2 = buffer.readPacket(103) as ObjectB
|
||||
packet.objectB = result2
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result3 = buffer.readInt()
|
||||
packet.innerCompatibleValue = result3
|
||||
}
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
}
|
||||
@@ -2,48 +2,46 @@ package com.zfoo.kotlin.packet
|
||||
import com.zfoo.kotlin.IProtocolRegistration
|
||||
import com.zfoo.kotlin.ByteBuffer
|
||||
|
||||
|
||||
class ObjectB {
|
||||
var flag: Boolean = false
|
||||
var innerCompatibleValue: Int = 0
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val registrationObjectB: IProtocolRegistration = object : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 103
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as ObjectB
|
||||
val beforeWriteIndex = buffer.writeOffset()
|
||||
buffer.writeInt(4)
|
||||
buffer.writeBool(message.flag)
|
||||
buffer.writeInt(message.innerCompatibleValue)
|
||||
buffer.adjustPadding(4, beforeWriteIndex)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = ObjectB()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readBool()
|
||||
packet.flag = result0
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result1 = buffer.readInt()
|
||||
packet.innerCompatibleValue = result1
|
||||
}
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
class ObjectBRegistration : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 103
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as ObjectB
|
||||
val beforeWriteIndex = buffer.writeOffset()
|
||||
buffer.writeInt(4)
|
||||
buffer.writeBool(message.flag)
|
||||
buffer.writeInt(message.innerCompatibleValue)
|
||||
buffer.adjustPadding(4, beforeWriteIndex)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = ObjectB()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readBool()
|
||||
packet.flag = result0
|
||||
if (buffer.compatibleRead(beforeReadIndex, length)) {
|
||||
val result1 = buffer.readInt()
|
||||
packet.innerCompatibleValue = result1
|
||||
}
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
}
|
||||
@@ -2,44 +2,42 @@ package com.zfoo.kotlin.packet
|
||||
import com.zfoo.kotlin.IProtocolRegistration
|
||||
import com.zfoo.kotlin.ByteBuffer
|
||||
|
||||
|
||||
class SimpleObject {
|
||||
var c: Int = 0
|
||||
var g: Boolean = false
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val registrationSimpleObject: IProtocolRegistration = object : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 104
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as SimpleObject
|
||||
buffer.writeInt(-1)
|
||||
buffer.writeInt(message.c)
|
||||
buffer.writeBool(message.g)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = SimpleObject()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readInt()
|
||||
packet.c = result0
|
||||
val result1 = buffer.readBool()
|
||||
packet.g = result1
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
class SimpleObjectRegistration : IProtocolRegistration {
|
||||
override fun protocolId(): Short {
|
||||
return 104
|
||||
}
|
||||
|
||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||
if (packet == null) {
|
||||
buffer.writeInt(0)
|
||||
return
|
||||
}
|
||||
val message = packet as SimpleObject
|
||||
buffer.writeInt(-1)
|
||||
buffer.writeInt(message.c)
|
||||
buffer.writeBool(message.g)
|
||||
}
|
||||
|
||||
override fun read(buffer: ByteBuffer): Any {
|
||||
val length = buffer.readInt()
|
||||
val packet = SimpleObject()
|
||||
if (length == 0) {
|
||||
return packet
|
||||
}
|
||||
val beforeReadIndex = buffer.readOffset()
|
||||
val result0 = buffer.readInt()
|
||||
packet.c = result0
|
||||
val result1 = buffer.readBool()
|
||||
packet.g = result1
|
||||
if (length > 0) {
|
||||
buffer.setReadOffset(beforeReadIndex + length)
|
||||
}
|
||||
return packet
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user