perf[protocol]: 优化Set的数据结构

This commit is contained in:
jaysunxiao
2021-10-20 10:24:47 +08:00
parent b74178ae11
commit 4c3bb625fc
8 changed files with 2 additions and 1247 deletions
-33
View File
@@ -1,33 +0,0 @@
const ComplexObject = preload("res://gdProtocol/packet/ComplexObject.gd")
const NormalObject = preload("res://gdProtocol/packet/NormalObject.gd")
const ObjectA = preload("res://gdProtocol/packet/ObjectA.gd")
const ObjectB = preload("res://gdProtocol/packet/ObjectB.gd")
const SimpleObject = preload("res://gdProtocol/packet/SimpleObject.gd")
const protocols = {}
static func getProtocol(protocolId: int):
return protocols[protocolId]
static func newInstance(protocolId: int):
var protocol = protocols[protocolId]
return protocol.new()
static func write(buffer, packet):
var protocolId: int = packet.PROTOCOL_ID
buffer.writeShort(protocolId)
var protocol = protocols[protocolId]
protocol.write(buffer, packet)
static func read(buffer):
var protocolId = buffer.readShort();
var protocol = protocols[protocolId]
var packet = protocol.read(buffer);
return packet;
static func initProtocol():
protocols[100] = ComplexObject
protocols[101] = NormalObject
protocols[102] = ObjectA
protocols[103] = ObjectB
protocols[104] = SimpleObject
-661
View File
@@ -1,661 +0,0 @@
const ProtocolManager = preload("res://gdProtocol/ProtocolManager.gd")
const EMPTY: String = ""
var buffer = StreamPeerBuffer.new()
var writeOffset: int = 0 setget setWriteOffset, getWriteOffset
var readOffset: int = 0 setget setReadOffset, getReadOffset
func _init():
buffer.big_endian = true
# -------------------------------------------------get/set-------------------------------------------------
func setWriteOffset(writeIndex: int) -> void:
if (writeIndex > buffer.get_size()):
var template = "writeIndex[{}] out of bounds exception: readerIndex: {}, writerIndex: {} (expected: 0 <= readerIndex <= writerIndex <= capacity: {})"
printerr(template.format([writeIndex, readOffset, writeOffset, buffer.size()], "{}"))
return
writeOffset = writeIndex
func getWriteOffset() -> int:
return writeOffset
func setReadOffset(readIndex: int) -> void:
if (readIndex > writeOffset):
var template = "readIndex[{}] out of bounds exception: readerIndex: {}, writerIndex: {} (expected: 0 <= readerIndex <= writerIndex <= capacity: {})"
printerr(template.format([readIndex, readOffset, writeOffset, buffer.size()], "{}"))
return
readOffset = readIndex
func getReadOffset() -> int:
return readOffset
# -------------------------------------------------write/read-------------------------------------------------
func writePoolByteArray(value: PoolByteArray):
var length = value.size()
buffer.put_partial_data(value)
writeOffset += length
func writeBool(value: bool) -> void:
var byte = 0
if (value):
byte = 1
buffer.seek(writeOffset)
buffer.put_8(byte)
writeOffset += 1
func readBool() -> bool:
buffer.seek(readOffset)
var byte = buffer.get_8()
readOffset += 1
return byte == 1
func writeByte(value: int) -> void:
buffer.seek(writeOffset)
buffer.put_8(value)
writeOffset += 1
func readByte() -> int:
buffer.seek(readOffset)
var value = buffer.get_8()
readOffset += 1
return value
func writeShort(value: int) -> void:
buffer.seek(writeOffset)
buffer.put_16(value)
writeOffset += 2
func readShort() -> int:
buffer.seek(readOffset)
var value = buffer.get_16()
readOffset += 2
return value
func writeInt(value) -> void:
writeLong(value)
func readInt() -> int:
return readLong()
func writeLong(longValue: int) -> void:
var value = (longValue << 1) ^ (longValue >> 63)
if (value >> 7 == 0):
writeByte(value)
return
if (value >> 14 == 0):
writeByte(value | 0x80)
writeByte(value >> 7)
return
if (value >> 21 == 0):
writeByte(value | 0x80)
writeByte((value >> 7) | 0x80)
writeByte(value >> 14)
return
if (value >> 28 == 0):
writeByte(value | 0x80)
writeByte((value >> 7) | 0x80)
writeByte((value >> 14) | 0x80)
writeByte(value >> 21)
return
if (value >> 35 == 0):
writeByte(value | 0x80)
writeByte((value >> 7) | 0x80)
writeByte((value >> 14) | 0x80)
writeByte((value >> 21) | 0x80)
writeByte(value >> 28)
return
if (value >> 42 == 0):
writeByte(value | 0x80)
writeByte((value >> 7) | 0x80)
writeByte((value >> 14) | 0x80)
writeByte((value >> 21) | 0x80)
writeByte((value >> 28) | 0x80)
writeByte(value >> 35)
return
if (value >> 49 == 0):
writeByte(value | 0x80)
writeByte((value >> 7) | 0x80)
writeByte((value >> 14) | 0x80)
writeByte((value >> 21) | 0x80)
writeByte((value >> 28) | 0x80)
writeByte((value >> 35) | 0x80)
writeByte(value >> 42)
return
if (value >> 56 == 0):
writeByte(value | 0x80)
writeByte((value >> 7) | 0x80)
writeByte((value >> 14) | 0x80)
writeByte((value >> 21) | 0x80)
writeByte((value >> 28) | 0x80)
writeByte((value >> 35) | 0x80)
writeByte((value >> 42) | 0x80)
writeByte(value >> 49)
return
writeByte(value | 0x80)
writeByte((value >> 7) | 0x80)
writeByte((value >> 14) | 0x80)
writeByte((value >> 21) | 0x80)
writeByte((value >> 28) | 0x80)
writeByte((value >> 35) | 0x80)
writeByte((value >> 42) | 0x80)
writeByte((value >> 49) | 0x80)
writeByte(value >> 56)
func readLong() -> int:
var byte: int = readByte()
var value: int = byte
if (byte < 0):
byte = readByte()
value = value & 0x00000000_0000007F | byte << 7
if (byte < 0):
byte = readByte()
value = value & 0x00000000_00003FFF | byte << 14
if (byte < 0):
byte = readByte()
value = value & 0x00000000_001FFFFF | byte << 21
if (byte < 0):
byte = readByte()
value = value & 0x00000000_0FFFFFFF | byte << 28
if (byte < 0):
byte = readByte()
value = value & 0x00000007_FFFFFFFF | byte << 35
if (byte < 0):
byte = readByte()
value = value & 0x000003FF_FFFFFFFF | byte << 42
if (byte < 0):
byte = readByte()
value = value & 0x0001FFFF_FFFFFFFF | byte << 49
if (byte < 0):
byte = readByte()
value = value & 0x00FFFFFF_FFFFFFFF | byte << 56
var mask = value >> 1
if (mask < 0):
mask = mask & 0x7FFFFFFF_FFFFFFFF
return mask ^ -(value & 1)
func writeFloat(value: float) -> void:
buffer.seek(writeOffset)
buffer.put_float(value)
writeOffset += 4
func readFloat() -> float:
buffer.seek(readOffset)
var value = buffer.get_float()
readOffset += 4
return value
func writeDouble(value: float) -> void:
buffer.seek(writeOffset)
buffer.put_double(value)
writeOffset += 8
func readDouble() -> float:
buffer.seek(readOffset)
var value = buffer.get_double()
readOffset += 8
return value
func writeString(value: String) -> void:
if (value == null || value.length() ==0):
writeInt(0)
return
buffer.seek(writeOffset)
var strBytes = value.to_utf8()
var length = strBytes.size()
writeInt(length)
buffer.put_partial_data(strBytes)
writeOffset += length
func readString() -> String:
var length = readInt()
if (length <= 0):
return EMPTY
buffer.seek(readOffset)
var value = buffer.get_utf8_string(length)
var strBytes = value.to_utf8()
readOffset += length
return value
func writeChar(value) -> void:
if (value == null || value.length() == 0):
writeString(EMPTY)
return
writeString(value[0])
func readChar() -> String:
return readString()
func writePacketFlag(packet) -> bool:
var flag = (packet == null)
writeBool(!flag)
return flag
func writePacket(packet, protocolId):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
protocolRegistration.write(self, packet)
func readPacket(protocolId):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
return protocolRegistration.read(self)
func newInstance(protocolId: int):
return ProtocolManager.newInstance(protocolId)
func writeBooleanArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeBool(element)
func readBooleanArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readBool())
return array
func writeByteArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeByte(element)
func readByteArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readByte())
return array
func writeShortArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeShort(element)
func readShortArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readShort())
return array
func writeIntArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeInt(element)
func readIntArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readInt())
return array
func writeLongArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeLong(element)
func readLongArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readLong())
return array
func writeFloatArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeFloat(element)
func readFloatArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readFloat())
return array
func writeDoubleArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeDouble(element)
func readDoubleArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readDouble())
return array
func writeCharArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeChar(element)
func readCharArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readChar())
return array
func writeStringArray(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size());
for element in value:
writeString(element)
func readStringArray():
var array = []
var size = readInt()
if (size > 0):
for index in range(size):
array.append(readString())
return array
func writePacketArray(value, protocolId):
if (value == null):
writeInt(0)
else:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
writeInt(value.size());
for element in value:
protocolRegistration.write(self, element)
func readPacketArray(protocolId):
var array = []
var size = readInt()
if (size > 0):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
for index in range(size):
array.append(protocolRegistration.read(self))
return array
func writeIntIntMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeInt(key)
writeInt(value[key])
func readIntIntMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readInt()
var value = readInt()
map[key] = value
return map
func writeIntLongMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeInt(key)
writeLong(value[key])
func readIntLongMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readInt()
var value = readLong()
map[key] = value
return map
func writeIntStringMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeInt(key)
writeString(value[key])
func readIntStringMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readInt()
var value = readString()
map[key] = value
return map
func writeIntPacketMap(value, protocolId):
if (value == null):
writeInt(0)
else:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
writeInt(value.size())
for key in value:
writeInt(key)
protocolRegistration.write(self, value[key])
func readIntPacketMap(protocolId):
var map = {}
var size = readInt()
if (size > 0):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
for index in range(size):
var key = readInt()
var value = protocolRegistration.read(self)
map[key] = value
return map
func writeLongIntMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeLong(key)
writeInt(value[key])
func readLongIntMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readLong()
var value = readInt()
map[key] = value
return map
func writeLongLongMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeLong(key)
writeLong(value[key])
func readLongLongMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readLong()
var value = readLong()
map[key] = value
return map
func writeLongStringMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeLong(key)
writeString(value[key])
func readLongStringMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readLong()
var value = readString()
map[key] = value
return map
func writeLongPacketMap(value, protocolId):
if (value == null):
writeInt(0)
else:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
writeInt(value.size())
for key in value:
writeLong(key)
protocolRegistration.write(self, value[key])
func readLongPacketMap(protocolId):
var map = {}
var size = readInt()
if (size > 0):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
for index in range(size):
var key = readLong()
var value = protocolRegistration.read(self)
map[key] = value
return map
func writeStringIntMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeString(key)
writeInt(value[key])
func readStringIntMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readString()
var value = readInt()
map[key] = value
return map
func writeStringLongMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeString(key)
writeLong(value[key])
func readStringLongMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readString()
var value = readLong()
map[key] = value
return map
func writeStringStringMap(value):
if (value == null):
writeInt(0)
else:
writeInt(value.size())
for key in value:
writeString(key)
writeString(value[key])
func readStringStringMap():
var map = {}
var size = readInt()
if (size > 0):
for index in range(size):
var key = readString()
var value = readString()
map[key] = value
return map
func writeStringPacketMap(value, protocolId):
if (value == null):
writeInt(0)
else:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
writeInt(value.size())
for key in value:
writeString(key)
protocolRegistration.write(self, value[key])
func readStringPacketMap(protocolId):
var map = {}
var size = readInt()
if (size > 0):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
for index in range(size):
var key = readString()
var value = protocolRegistration.read(self)
map[key] = value
return map
-395
View File
@@ -1,395 +0,0 @@
# 复杂的对象
# 包括了各种复杂的结构,数组,List,Set,Map
#
# @author jaysunxiao
# @version 3.0
# byte类型,最简单的整形
var a # byte
# byte的包装类型
# 优先使用基础类型,包装类型会有装箱拆箱
var aa # java.lang.Byte
# 数组类型
var aaa # byte[]
var aaaa # java.lang.Byte[]
var b # short
var bb # java.lang.Short
var bbb # short[]
var bbbb # java.lang.Short[]
var c # int
var cc # java.lang.Integer
var ccc # int[]
var cccc # java.lang.Integer[]
var d # long
var dd # java.lang.Long
var ddd # long[]
var dddd # java.lang.Long[]
var e # float
var ee # java.lang.Float
var eee # float[]
var eeee # java.lang.Float[]
var f # double
var ff # java.lang.Double
var fff # double[]
var ffff # java.lang.Double[]
var g # boolean
var gg # java.lang.Boolean
var ggg # boolean[]
var gggg # java.lang.Boolean[]
var h # char
var hh # java.lang.Character
var hhh # char[]
var hhhh # java.lang.Character[]
var jj # java.lang.String
var jjj # java.lang.String[]
var kk # com.zfoo.protocol.packet.ObjectA
var kkk # com.zfoo.protocol.packet.ObjectA[]
var l # java.util.List<java.lang.Integer>
var ll # java.util.List<java.util.List<java.util.List<java.lang.Integer>>>
var lll # java.util.List<java.util.List<com.zfoo.protocol.packet.ObjectA>>
var llll # java.util.List<java.lang.String>
var lllll # java.util.List<java.util.Map<java.lang.Integer, java.lang.String>>
var m # java.util.Map<java.lang.Integer, java.lang.String>
var mm # java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ObjectA>
var mmm # java.util.Map<com.zfoo.protocol.packet.ObjectA, java.util.List<java.lang.Integer>>
var mmmm # java.util.Map<java.util.List<java.util.List<com.zfoo.protocol.packet.ObjectA>>, java.util.List<java.util.List<java.util.List<java.lang.Integer>>>>
var mmmmm # java.util.Map<java.util.List<java.util.Map<java.lang.Integer, java.lang.String>>, java.util.Set<java.util.Map<java.lang.Integer, java.lang.String>>>
var s # java.util.Set<java.lang.Integer>
var ss # java.util.Set<java.util.Set<java.util.List<java.lang.Integer>>>
var sss # java.util.Set<java.util.Set<com.zfoo.protocol.packet.ObjectA>>
var ssss # java.util.Set<java.lang.String>
var sssss # java.util.Set<java.util.Map<java.lang.Integer, java.lang.String>>
const PROTOCOL_ID = 100
static func write(buffer, packet):
if (buffer.writePacketFlag(packet)):
return
buffer.writeByte(packet.a)
buffer.writeByte(packet.aa)
buffer.writeByteArray(packet.aaa)
buffer.writeByteArray(packet.aaaa)
buffer.writeShort(packet.b)
buffer.writeShort(packet.bb)
buffer.writeShortArray(packet.bbb)
buffer.writeShortArray(packet.bbbb)
buffer.writeInt(packet.c)
buffer.writeInt(packet.cc)
buffer.writeIntArray(packet.ccc)
buffer.writeIntArray(packet.cccc)
buffer.writeLong(packet.d)
buffer.writeLong(packet.dd)
buffer.writeLongArray(packet.ddd)
buffer.writeLongArray(packet.dddd)
buffer.writeFloat(packet.e)
buffer.writeFloat(packet.ee)
buffer.writeFloatArray(packet.eee)
buffer.writeFloatArray(packet.eeee)
buffer.writeDouble(packet.f)
buffer.writeDouble(packet.ff)
buffer.writeDoubleArray(packet.fff)
buffer.writeDoubleArray(packet.ffff)
buffer.writeBool(packet.g)
buffer.writeBool(packet.gg)
buffer.writeBooleanArray(packet.ggg)
buffer.writeBooleanArray(packet.gggg)
buffer.writeChar(packet.h)
buffer.writeChar(packet.hh)
buffer.writeCharArray(packet.hhh)
buffer.writeCharArray(packet.hhhh)
buffer.writeString(packet.jj)
buffer.writeStringArray(packet.jjj)
buffer.writePacket(packet.kk, 102)
buffer.writePacketArray(packet.kkk, 102)
buffer.writeIntArray(packet.l)
if (packet.ll == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.ll.size())
for element0 in packet.ll:
if (element0 == null):
buffer.writeInt(0)
else:
buffer.writeInt(element0.size())
for element1 in element0:
buffer.writeIntArray(element1)
if (packet.lll == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.lll.size())
for element2 in packet.lll:
buffer.writePacketArray(element2, 102)
buffer.writeStringArray(packet.llll)
if (packet.lllll == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.lllll.size())
for element3 in packet.lllll:
buffer.writeIntStringMap(element3)
buffer.writeIntStringMap(packet.m)
buffer.writeIntPacketMap(packet.mm, 102)
if (packet.mmm == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.mmm.size())
for key4 in packet.mmm:
var value5 = packet.mmm[key4]
buffer.writePacket(key4, 102)
buffer.writeIntArray(value5)
if (packet.mmmm == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.mmmm.size())
for key6 in packet.mmmm:
var value7 = packet.mmmm[key6]
if (key6 == null):
buffer.writeInt(0)
else:
buffer.writeInt(key6.size())
for element8 in key6:
buffer.writePacketArray(element8, 102)
if (value7 == null):
buffer.writeInt(0)
else:
buffer.writeInt(value7.size())
for element9 in value7:
if (element9 == null):
buffer.writeInt(0)
else:
buffer.writeInt(element9.size())
for element10 in element9:
buffer.writeIntArray(element10)
if (packet.mmmmm == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.mmmmm.size())
for key11 in packet.mmmmm:
var value12 = packet.mmmmm[key11]
if (key11 == null):
buffer.writeInt(0)
else:
buffer.writeInt(key11.size())
for element13 in key11:
buffer.writeIntStringMap(element13)
if (value12 == null):
buffer.writeInt(0)
else:
buffer.writeInt(value12.size())
for element14 in value12:
buffer.writeIntStringMap(element14)
buffer.writeIntArray(packet.s)
if (packet.ss == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.ss.size())
for element15 in packet.ss:
if (element15 == null):
buffer.writeInt(0)
else:
buffer.writeInt(element15.size())
for element16 in element15:
buffer.writeIntArray(element16)
if (packet.sss == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.sss.size())
for element17 in packet.sss:
buffer.writePacketArray(element17, 102)
buffer.writeStringArray(packet.ssss)
if (packet.sssss == null):
buffer.writeInt(0)
else:
buffer.writeInt(packet.sssss.size())
for element18 in packet.sssss:
buffer.writeIntStringMap(element18)
static func read(buffer):
if (!buffer.readBool()):
return null
var packet = buffer.newInstance(100)
var result19 = buffer.readByte()
packet.a = result19
var result20 = buffer.readByte()
packet.aa = result20
var array21 = buffer.readByteArray()
packet.aaa = array21
var array22 = buffer.readByteArray()
packet.aaaa = array22
var result23 = buffer.readShort()
packet.b = result23
var result24 = buffer.readShort()
packet.bb = result24
var array25 = buffer.readShortArray()
packet.bbb = array25
var array26 = buffer.readShortArray()
packet.bbbb = array26
var result27 = buffer.readInt()
packet.c = result27
var result28 = buffer.readInt()
packet.cc = result28
var array29 = buffer.readIntArray()
packet.ccc = array29
var array30 = buffer.readIntArray()
packet.cccc = array30
var result31 = buffer.readLong()
packet.d = result31
var result32 = buffer.readLong()
packet.dd = result32
var array33 = buffer.readLongArray()
packet.ddd = array33
var array34 = buffer.readLongArray()
packet.dddd = array34
var result35 = buffer.readFloat()
packet.e = result35
var result36 = buffer.readFloat()
packet.ee = result36
var array37 = buffer.readFloatArray()
packet.eee = array37
var array38 = buffer.readFloatArray()
packet.eeee = array38
var result39 = buffer.readDouble()
packet.f = result39
var result40 = buffer.readDouble()
packet.ff = result40
var array41 = buffer.readDoubleArray()
packet.fff = array41
var array42 = buffer.readDoubleArray()
packet.ffff = array42
var result43 = buffer.readBool()
packet.g = result43
var result44 = buffer.readBool()
packet.gg = result44
var array45 = buffer.readBooleanArray()
packet.ggg = array45
var array46 = buffer.readBooleanArray()
packet.gggg = array46
var result47 = buffer.readChar()
packet.h = result47
var result48 = buffer.readChar()
packet.hh = result48
var array49 = buffer.readCharArray()
packet.hhh = array49
var array50 = buffer.readCharArray()
packet.hhhh = array50
var result51 = buffer.readString()
packet.jj = result51
var array52 = buffer.readStringArray()
packet.jjj = array52
var result53 = buffer.readPacket(102)
packet.kk = result53
var array54 = buffer.readPacketArray(102)
packet.kkk = array54
var list55 = buffer.readIntArray()
packet.l = list55
var result56 = []
var size58 = buffer.readInt()
if (size58 > 0):
for index57 in range(size58):
var result59 = []
var size61 = buffer.readInt()
if (size61 > 0):
for index60 in range(size61):
var list62 = buffer.readIntArray()
result59.append(list62)
result56.append(result59)
packet.ll = result56
var result63 = []
var size65 = buffer.readInt()
if (size65 > 0):
for index64 in range(size65):
var list66 = buffer.readPacketArray(102)
result63.append(list66)
packet.lll = result63
var list67 = buffer.readStringArray()
packet.llll = list67
var result68 = []
var size70 = buffer.readInt()
if (size70 > 0):
for index69 in range(size70):
var map71 = buffer.readIntStringMap()
result68.append(map71)
packet.lllll = result68
var map72 = buffer.readIntStringMap()
packet.m = map72
var map73 = buffer.readIntPacketMap(102)
packet.mm = map73
var result74 = {}
var size75 = buffer.readInt()
if (size75 > 0):
for index76 in range(size75):
var result77 = buffer.readPacket(102)
var list78 = buffer.readIntArray()
result74[result77] = list78
packet.mmm = result74
var result79 = {}
var size80 = buffer.readInt()
if (size80 > 0):
for index81 in range(size80):
var result82 = []
var size84 = buffer.readInt()
if (size84 > 0):
for index83 in range(size84):
var list85 = buffer.readPacketArray(102)
result82.append(list85)
var result86 = []
var size88 = buffer.readInt()
if (size88 > 0):
for index87 in range(size88):
var result89 = []
var size91 = buffer.readInt()
if (size91 > 0):
for index90 in range(size91):
var list92 = buffer.readIntArray()
result89.append(list92)
result86.append(result89)
result79[result82] = result86
packet.mmmm = result79
var result93 = {}
var size94 = buffer.readInt()
if (size94 > 0):
for index95 in range(size94):
var result96 = []
var size98 = buffer.readInt()
if (size98 > 0):
for index97 in range(size98):
var map99 = buffer.readIntStringMap()
result96.append(map99)
var result100 = []
var size102 = buffer.readInt()
if (size102 > 0):
for index101 in range(size102):
var map103 = buffer.readIntStringMap()
result100.append(map103)
result93[result96] = result100
packet.mmmmm = result93
var set104 = buffer.readIntArray()
packet.s = set104
var result105 = []
var size107 = buffer.readInt()
if (size107 > 0):
for index106 in range(size107):
var result108 = []
var size110 = buffer.readInt()
if (size110 > 0):
for index109 in range(size110):
var list111 = buffer.readIntArray()
result108.append(list111)
result105.append(result108)
packet.ss = result105
var result112 = []
var size114 = buffer.readInt()
if (size114 > 0):
for index113 in range(size114):
var set115 = buffer.readPacketArray(102)
result112.append(set115)
packet.sss = result112
var set116 = buffer.readStringArray()
packet.ssss = set116
var result117 = []
var size119 = buffer.readInt()
if (size119 > 0):
for index118 in range(size119):
var map120 = buffer.readIntStringMap()
result117.append(map120)
packet.sssss = result117
return packet
@@ -1,87 +0,0 @@
# @author jaysunxiao
# @version 3.0
var a # byte
var aaa # byte[]
var b # short
var c # int
var d # long
var e # float
var f # double
var g # boolean
var jj # java.lang.String
var kk # com.zfoo.protocol.packet.ObjectA
var l # java.util.List<java.lang.Integer>
var ll # java.util.List<java.lang.Long>
var lll # java.util.List<com.zfoo.protocol.packet.ObjectA>
var llll # java.util.List<java.lang.String>
var m # java.util.Map<java.lang.Integer, java.lang.String>
var mm # java.util.Map<java.lang.Integer, com.zfoo.protocol.packet.ObjectA>
var s # java.util.Set<java.lang.Integer>
var ssss # java.util.Set<java.lang.String>
const PROTOCOL_ID = 101
static func write(buffer, packet):
if (buffer.writePacketFlag(packet)):
return
buffer.writeByte(packet.a)
buffer.writeByteArray(packet.aaa)
buffer.writeShort(packet.b)
buffer.writeInt(packet.c)
buffer.writeLong(packet.d)
buffer.writeFloat(packet.e)
buffer.writeDouble(packet.f)
buffer.writeBool(packet.g)
buffer.writeString(packet.jj)
buffer.writePacket(packet.kk, 102)
buffer.writeIntArray(packet.l)
buffer.writeLongArray(packet.ll)
buffer.writePacketArray(packet.lll, 102)
buffer.writeStringArray(packet.llll)
buffer.writeIntStringMap(packet.m)
buffer.writeIntPacketMap(packet.mm, 102)
buffer.writeIntArray(packet.s)
buffer.writeStringArray(packet.ssss)
static func read(buffer):
if (!buffer.readBool()):
return null
var packet = buffer.newInstance(101)
var result0 = buffer.readByte()
packet.a = result0
var array1 = buffer.readByteArray()
packet.aaa = array1
var result2 = buffer.readShort()
packet.b = result2
var result3 = buffer.readInt()
packet.c = result3
var result4 = buffer.readLong()
packet.d = result4
var result5 = buffer.readFloat()
packet.e = result5
var result6 = buffer.readDouble()
packet.f = result6
var result7 = buffer.readBool()
packet.g = result7
var result8 = buffer.readString()
packet.jj = result8
var result9 = buffer.readPacket(102)
packet.kk = result9
var list10 = buffer.readIntArray()
packet.l = list10
var list11 = buffer.readLongArray()
packet.ll = list11
var list12 = buffer.readPacketArray(102)
packet.lll = list12
var list13 = buffer.readStringArray()
packet.llll = list13
var map14 = buffer.readIntStringMap()
packet.m = map14
var map15 = buffer.readIntPacketMap(102)
packet.mm = map15
var set16 = buffer.readIntArray()
packet.s = set16
var set17 = buffer.readStringArray()
packet.ssss = set17
return packet
-27
View File
@@ -1,27 +0,0 @@
# @author jaysunxiao
# @version 3.0
var a # int
var m # java.util.Map<java.lang.Integer, java.lang.String>
var objectB # com.zfoo.protocol.packet.ObjectB
const PROTOCOL_ID = 102
static func write(buffer, packet):
if (buffer.writePacketFlag(packet)):
return
buffer.writeInt(packet.a)
buffer.writeIntStringMap(packet.m)
buffer.writePacket(packet.objectB, 103)
static func read(buffer):
if (!buffer.readBool()):
return null
var packet = buffer.newInstance(102)
var result0 = buffer.readInt()
packet.a = result0
var map1 = buffer.readIntStringMap()
packet.m = map1
var result2 = buffer.readPacket(103)
packet.objectB = result2
return packet
-19
View File
@@ -1,19 +0,0 @@
# @author jaysunxiao
# @version 3.0
var flag # boolean
const PROTOCOL_ID = 103
static func write(buffer, packet):
if (buffer.writePacketFlag(packet)):
return
buffer.writeBool(packet.flag)
static func read(buffer):
if (!buffer.readBool()):
return null
var packet = buffer.newInstance(103)
var result0 = buffer.readBool()
packet.flag = result0
return packet
@@ -1,23 +0,0 @@
# @author jaysunxiao
# @version 3.0
var c # int
var g # boolean
const PROTOCOL_ID = 104
static func write(buffer, packet):
if (buffer.writePacketFlag(packet)):
return
buffer.writeInt(packet.c)
buffer.writeBool(packet.g)
static func read(buffer):
if (!buffer.readBool()):
return null
var packet = buffer.newInstance(104)
var result0 = buffer.readInt()
packet.c = result0
var result1 = buffer.readBool()
packet.g = result1
return packet
@@ -15,7 +15,7 @@ package com.zfoo.protocol.generate;
import com.zfoo.protocol.serializer.CodeLanguage;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Set;
/**
@@ -44,7 +44,7 @@ public class GenerateOperation {
/**
* 需要生成的协议文件
*/
private Set<CodeLanguage> generateLanguages = new HashSet<>();
private final Set<CodeLanguage> generateLanguages = EnumSet.noneOf(CodeLanguage.class);
public boolean isFoldProtocol() {
return foldProtocol;