test[protocol]: gdscript protocol generation test

This commit is contained in:
godotg committed 2025-04-12 22:18:51 +08:00
1 parent 1cbcaac1ed
commit edacbfd9fa
9 files changed
+10564 -10637

No files matched your search

+21 -38
View File
@@ -1,4 +1,4 @@
const ProtocolManager = preload("./ProtocolManager.gd") class_name ByteBuffer
const EMPTY: String = "" const EMPTY: String = ""
@@ -71,9 +71,6 @@ func isReadable() -> bool:
func toBytes() -> PackedByteArray: func toBytes() -> PackedByteArray:
return buffer.data_array.slice(0, writeOffset) return buffer.data_array.slice(0, writeOffset)
func newInstance(protocolId: int) -> Object:
return ProtocolManager.newInstance(protocolId)
# -------------------------------------------------write/read------------------------------------------------- # -------------------------------------------------write/read-------------------------------------------------
func writeBytes(value: PackedByteArray): func writeBytes(value: PackedByteArray):
var length: int = value.size() var length: int = value.size()
@@ -304,14 +301,12 @@ func readString() -> String:
readOffset += length readOffset += length
return value return value
func writePacket(packet, protocolId): func writePacket(packet: Object, protocol: Object):
var protocolRegistration = ProtocolManager.getProtocol(protocolId) protocol.write(self, packet)
protocolRegistration.write(self, packet)
pass pass
func readPacket(protocolId) -> Object: func readPacket(protocol: Object) -> Object:
var protocolRegistration = ProtocolManager.getProtocol(protocolId) return protocol.read(self)
return protocolRegistration.read(self)
func writeBoolArray(array): func writeBoolArray(array):
if (array == null): if (array == null):
@@ -449,24 +444,21 @@ func readStringArray() -> Array[String]:
array.append(readString()) array.append(readString())
return array return array
func writePacketArray(array, protocolId): func writePacketArray(array: Array, protocol: Object):
if (array == null): if (array == null):
writeInt(0) writeInt(0)
else: else:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
writeInt(array.size()) writeInt(array.size())
for element in array: for element in array:
protocolRegistration.write(self, element) protocol.write(self, element)
pass pass
func readPacketArray(protocolId) -> Array: func readPacketArray(protocol: Object) -> Array:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
var protocol = ProtocolManager.getProtocolClass(protocolId)
var array = Array([], typeof(protocol), StringName("RefCounted"), protocol) var array = Array([], typeof(protocol), StringName("RefCounted"), protocol)
var size = readInt() var size = readInt()
if (size > 0): if (size > 0):
for index in range(size): for index in range(size):
array.append(protocolRegistration.read(self)) array.append(protocol.read(self))
#var a = array.get_typed_class_name() #var a = array.get_typed_class_name()
#var b = array.get_typed_script() #var b = array.get_typed_script()
#var c = array.get_typed_builtin() #var c = array.get_typed_builtin()
@@ -537,26 +529,23 @@ func readIntStringMap() -> Dictionary[int, String]:
map[key] = value map[key] = value
return map return map
func writeIntPacketMap(map, protocolId): func writeIntPacketMap(map: Dictionary, protocol: Object):
if (map == null): if (map == null):
writeInt(0) writeInt(0)
else: else:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
writeInt(map.size()) writeInt(map.size())
for key in map: for key in map:
writeInt(key) writeInt(key)
protocolRegistration.write(self, map[key]) protocol.write(self, map[key])
pass pass
func readIntPacketMap(protocolId) -> Dictionary: func readIntPacketMap(protocol: Object) -> Dictionary:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
var protocol = ProtocolManager.getProtocolClass(protocolId)
var map = Dictionary({}, TYPE_INT, "", null, typeof(protocol), StringName("RefCounted"), protocol) var map = Dictionary({}, TYPE_INT, "", null, typeof(protocol), StringName("RefCounted"), protocol)
var size = readInt() var size = readInt()
if (size > 0): if (size > 0):
for index in range(size): for index in range(size):
var key = readInt() var key = readInt()
var value = protocolRegistration.read(self) var value = protocol.read(self)
map[key] = value map[key] = value
return map return map
@@ -620,26 +609,23 @@ func readLongStringMap() -> Dictionary[int, String]:
map[key] = value map[key] = value
return map return map
func writeLongPacketMap(map, protocolId): func writeLongPacketMap(map: Dictionary, protocol: Object):
if (map == null): if (map == null):
writeInt(0) writeInt(0)
else: else:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
writeInt(map.size()) writeInt(map.size())
for key in map: for key in map:
writeLong(key) writeLong(key)
protocolRegistration.write(self, map[key]) protocol.write(self, map[key])
pass pass
func readLongPacketMap(protocolId) -> Dictionary: func readLongPacketMap(protocol: Object) -> Dictionary:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
var protocol = ProtocolManager.getProtocolClass(protocolId)
var map = Dictionary({}, TYPE_INT, "", null, typeof(protocol), StringName("RefCounted"), protocol) var map = Dictionary({}, TYPE_INT, "", null, typeof(protocol), StringName("RefCounted"), protocol)
var size = readInt() var size = readInt()
if (size > 0): if (size > 0):
for index in range(size): for index in range(size):
var key = readLong() var key = readLong()
var value = protocolRegistration.read(self) var value = protocol.read(self)
map[key] = value map[key] = value
return map return map
@@ -703,25 +689,22 @@ func readStringStringMap() -> Dictionary[String, String]:
map[key] = value map[key] = value
return map return map
func writeStringPacketMap(map, protocolId): func writeStringPacketMap(map: Dictionary, protocol: Object):
if (map == null): if (map == null):
writeInt(0) writeInt(0)
else: else:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
writeInt(map.size()) writeInt(map.size())
for key in map: for key in map:
writeString(key) writeString(key)
protocolRegistration.write(self, map[key]) protocol.write(self, map[key])
pass pass
func readStringPacketMap(protocolId) -> Dictionary: func readStringPacketMap(protocol: Object) -> Dictionary:
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
var protocol = ProtocolManager.getProtocolClass(protocolId)
var map = Dictionary({}, TYPE_STRING, "", null, typeof(protocol), StringName("RefCounted"), protocol) var map = Dictionary({}, TYPE_STRING, "", null, typeof(protocol), StringName("RefCounted"), protocol)
var size = readInt() var size = readInt()
if (size > 0): if (size > 0):
for index in range(size): for index in range(size):
var key = readString() var key = readString()
var value = protocolRegistration.read(self) var value = protocol.read(self)
map[key] = value map[key] = value
return map return map
@@ -1,48 +1,20 @@
const EmptyObject = preload("./packet/EmptyObject.gd") static var protocols: Dictionary[int, Object] = {
const VeryBigObject = preload("./packet/VeryBigObject.gd") 0 : EmptyObject,
const ComplexObject = preload("./packet/ComplexObject.gd") 1 : VeryBigObject,
const NormalObject = preload("./packet/NormalObject.gd") 100 : ComplexObject,
const ObjectA = preload("./packet/ObjectA.gd") 101 : NormalObject,
const ObjectB = preload("./packet/ObjectB.gd") 102 : ObjectA,
const SimpleObject = preload("./packet/SimpleObject.gd") 103 : ObjectB,
104 : SimpleObject
}
static var protocols: Dictionary[int, RefCounted] = {} static func write(buffer: ByteBuffer, packet: Object) -> void:
static var protocolClassMap: Dictionary[int, Object] = {}
static func initProtocol():
protocols[0] = EmptyObject.EmptyObjectRegistration.new()
protocolClassMap[0] = EmptyObject
protocols[1] = VeryBigObject.VeryBigObjectRegistration.new()
protocolClassMap[1] = VeryBigObject
protocols[100] = ComplexObject.ComplexObjectRegistration.new()
protocolClassMap[100] = ComplexObject
protocols[101] = NormalObject.NormalObjectRegistration.new()
protocolClassMap[101] = NormalObject
protocols[102] = ObjectA.ObjectARegistration.new()
protocolClassMap[102] = ObjectA
protocols[103] = ObjectB.ObjectBRegistration.new()
protocolClassMap[103] = ObjectB
protocols[104] = SimpleObject.SimpleObjectRegistration.new()
protocolClassMap[104] = SimpleObject
pass
static func getProtocol(protocolId: int):
return protocols[protocolId]
static func getProtocolClass(protocolId: int):
return protocolClassMap[protocolId]
static func newInstance(protocolId: int):
var protocol = protocolClassMap[protocolId]
return protocol.new()
static func write(buffer, packet):
var protocolId: int = packet.protocolId() var protocolId: int = packet.protocolId()
buffer.writeShort(protocolId) buffer.writeShort(protocolId)
var protocol = protocols[protocolId] packet.write(buffer, packet)
protocol.write(buffer, packet) pass
static func read(buffer): static func read(buffer: ByteBuffer) -> Object:
var protocolId = buffer.readShort() var protocolId = buffer.readShort()
var protocol = protocols[protocolId] var protocol = protocols[protocolId]
var packet = protocol.read(buffer) var packet = protocol.read(buffer)
@@ -1,9 +1,5 @@
class_name ComplexObject class_name ComplexObject
const ByteBuffer = preload("../ByteBuffer.gd")
const ObjectA = preload("./ObjectA.gd")
const ObjectB = preload("./ObjectB.gd")
# 复杂的对象,包括了各种复杂的结构,数组,List,Set,Map # 复杂的对象,包括了各种复杂的结构,数组,List,Set,Map
# byte类型,最简单的整形 # byte类型,最简单的整形
var a: int var a: int
@@ -67,340 +63,339 @@ func _to_string() -> String:
var params = [self.a, self.aa, JSON.stringify(self.aaa), JSON.stringify(self.aaaa), self.b, self.bb, JSON.stringify(self.bbb), JSON.stringify(self.bbbb), self.c, self.cc, JSON.stringify(self.ccc), JSON.stringify(self.cccc), self.d, self.dd, JSON.stringify(self.ddd), JSON.stringify(self.dddd), self.e, self.ee, JSON.stringify(self.eee), JSON.stringify(self.eeee), self.f, self.ff, JSON.stringify(self.fff), JSON.stringify(self.ffff), self.g, self.gg, JSON.stringify(self.ggg), JSON.stringify(self.gggg), self.jj, JSON.stringify(self.jjj), self.kk, JSON.stringify(self.kkk), JSON.stringify(self.l), JSON.stringify(self.ll), JSON.stringify(self.lll), JSON.stringify(self.llll), JSON.stringify(self.lllll), self.m, self.mm, JSON.stringify(self.mmm), JSON.stringify(self.mmmm), JSON.stringify(self.mmmmm), JSON.stringify(self.s), JSON.stringify(self.ss), JSON.stringify(self.sss), JSON.stringify(self.ssss), JSON.stringify(self.sssss), self.myCompatible, self.myObject] var params = [self.a, self.aa, JSON.stringify(self.aaa), JSON.stringify(self.aaaa), self.b, self.bb, JSON.stringify(self.bbb), JSON.stringify(self.bbbb), self.c, self.cc, JSON.stringify(self.ccc), JSON.stringify(self.cccc), self.d, self.dd, JSON.stringify(self.ddd), JSON.stringify(self.dddd), self.e, self.ee, JSON.stringify(self.eee), JSON.stringify(self.eeee), self.f, self.ff, JSON.stringify(self.fff), JSON.stringify(self.ffff), self.g, self.gg, JSON.stringify(self.ggg), JSON.stringify(self.gggg), self.jj, JSON.stringify(self.jjj), self.kk, JSON.stringify(self.kkk), JSON.stringify(self.l), JSON.stringify(self.ll), JSON.stringify(self.lll), JSON.stringify(self.llll), JSON.stringify(self.lllll), self.m, self.mm, JSON.stringify(self.mmm), JSON.stringify(self.mmmm), JSON.stringify(self.mmmmm), JSON.stringify(self.s), JSON.stringify(self.ss), JSON.stringify(self.sss), JSON.stringify(self.ssss), JSON.stringify(self.sssss), self.myCompatible, self.myObject]
return jsonTemplate.format(params, "{}") return jsonTemplate.format(params, "{}")
class ComplexObjectRegistration: static func write(buffer: ByteBuffer, packet: ComplexObject):
func write(buffer: ByteBuffer, packet: ComplexObject): if (packet == null):
if (packet == null): buffer.writeInt(0)
buffer.writeInt(0) return
return var beforeWriteIndex = buffer.getWriteOffset()
var beforeWriteIndex = buffer.getWriteOffset() buffer.writeInt(36962)
buffer.writeInt(36962) buffer.writeByte(packet.a)
buffer.writeByte(packet.a) buffer.writeByte(packet.aa)
buffer.writeByte(packet.aa) buffer.writeByteArray(packet.aaa)
buffer.writeByteArray(packet.aaa) buffer.writeByteArray(packet.aaaa)
buffer.writeByteArray(packet.aaaa) buffer.writeShort(packet.b)
buffer.writeShort(packet.b) buffer.writeShort(packet.bb)
buffer.writeShort(packet.bb) buffer.writeShortArray(packet.bbb)
buffer.writeShortArray(packet.bbb) buffer.writeShortArray(packet.bbbb)
buffer.writeShortArray(packet.bbbb) buffer.writeInt(packet.c)
buffer.writeInt(packet.c) buffer.writeInt(packet.cc)
buffer.writeInt(packet.cc) buffer.writeIntArray(packet.ccc)
buffer.writeIntArray(packet.ccc) buffer.writeIntArray(packet.cccc)
buffer.writeIntArray(packet.cccc) buffer.writeLong(packet.d)
buffer.writeLong(packet.d) buffer.writeLong(packet.dd)
buffer.writeLong(packet.dd) buffer.writeLongArray(packet.ddd)
buffer.writeLongArray(packet.ddd) buffer.writeLongArray(packet.dddd)
buffer.writeLongArray(packet.dddd) buffer.writeFloat(packet.e)
buffer.writeFloat(packet.e) buffer.writeFloat(packet.ee)
buffer.writeFloat(packet.ee) buffer.writeFloatArray(packet.eee)
buffer.writeFloatArray(packet.eee) buffer.writeFloatArray(packet.eeee)
buffer.writeFloatArray(packet.eeee) buffer.writeDouble(packet.f)
buffer.writeDouble(packet.f) buffer.writeDouble(packet.ff)
buffer.writeDouble(packet.ff) buffer.writeDoubleArray(packet.fff)
buffer.writeDoubleArray(packet.fff) buffer.writeDoubleArray(packet.ffff)
buffer.writeDoubleArray(packet.ffff) buffer.writeBool(packet.g)
buffer.writeBool(packet.g) buffer.writeBool(packet.gg)
buffer.writeBool(packet.gg) buffer.writeBoolArray(packet.ggg)
buffer.writeBoolArray(packet.ggg) buffer.writeBoolArray(packet.gggg)
buffer.writeBoolArray(packet.gggg) buffer.writeString(packet.jj)
buffer.writeString(packet.jj) buffer.writeStringArray(packet.jjj)
buffer.writeStringArray(packet.jjj) buffer.writePacket(packet.kk, ObjectA)
buffer.writePacket(packet.kk, 102) buffer.writePacketArray(packet.kkk, ObjectA)
buffer.writePacketArray(packet.kkk, 102) buffer.writeIntArray(packet.l)
buffer.writeIntArray(packet.l) if (packet.ll == null):
if (packet.ll == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.ll.size())
buffer.writeInt(packet.ll.size()) for element0 in packet.ll:
for element0 in packet.ll: if (element0 == null):
if (element0 == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(element0.size())
buffer.writeInt(element0.size()) for element1 in element0:
for element1 in element0: buffer.writeIntArray(element1)
buffer.writeIntArray(element1) if (packet.lll == null):
if (packet.lll == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.lll.size())
buffer.writeInt(packet.lll.size()) for element2 in packet.lll:
for element2 in packet.lll: buffer.writePacketArray(element2, ObjectA)
buffer.writePacketArray(element2, 102) buffer.writeStringArray(packet.llll)
buffer.writeStringArray(packet.llll) if (packet.lllll == null):
if (packet.lllll == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.lllll.size())
buffer.writeInt(packet.lllll.size()) for element3 in packet.lllll:
for element3 in packet.lllll: buffer.writeIntStringMap(element3)
buffer.writeIntStringMap(element3) buffer.writeIntStringMap(packet.m)
buffer.writeIntStringMap(packet.m) buffer.writeIntPacketMap(packet.mm, ObjectA)
buffer.writeIntPacketMap(packet.mm, 102) if (packet.mmm == null):
if (packet.mmm == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.mmm.size())
buffer.writeInt(packet.mmm.size()) for key4 in packet.mmm:
for key4 in packet.mmm: var value5 = packet.mmm[key4]
var value5 = packet.mmm[key4] buffer.writePacket(key4, ObjectA)
buffer.writePacket(key4, 102) buffer.writeIntArray(value5)
buffer.writeIntArray(value5) if (packet.mmmm == null):
if (packet.mmmm == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.mmmm.size())
buffer.writeInt(packet.mmmm.size()) for key6 in packet.mmmm:
for key6 in packet.mmmm: var value7 = packet.mmmm[key6]
var value7 = packet.mmmm[key6] if (key6 == null):
if (key6 == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(key6.size())
buffer.writeInt(key6.size()) for element8 in key6:
for element8 in key6: buffer.writePacketArray(element8, ObjectA)
buffer.writePacketArray(element8, 102) if (value7 == null):
if (value7 == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(value7.size())
buffer.writeInt(value7.size()) for element9 in value7:
for element9 in value7: if (element9 == null):
if (element9 == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(element9.size())
buffer.writeInt(element9.size()) for element10 in element9:
for element10 in element9: buffer.writeIntArray(element10)
buffer.writeIntArray(element10) if (packet.mmmmm == null):
if (packet.mmmmm == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.mmmmm.size())
buffer.writeInt(packet.mmmmm.size()) for key11 in packet.mmmmm:
for key11 in packet.mmmmm: var value12 = packet.mmmmm[key11]
var value12 = packet.mmmmm[key11] if (key11 == null):
if (key11 == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(key11.size())
buffer.writeInt(key11.size()) for element13 in key11:
for element13 in key11: buffer.writeIntStringMap(element13)
buffer.writeIntStringMap(element13) if (value12 == null):
if (value12 == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(value12.size())
buffer.writeInt(value12.size()) for element14 in value12:
for element14 in value12: buffer.writeIntStringMap(element14)
buffer.writeIntStringMap(element14) buffer.writeIntArray(packet.s)
buffer.writeIntArray(packet.s) if (packet.ss == null):
if (packet.ss == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.ss.size())
buffer.writeInt(packet.ss.size()) for element15 in packet.ss:
for element15 in packet.ss: if (element15 == null):
if (element15 == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(element15.size())
buffer.writeInt(element15.size()) for element16 in element15:
for element16 in element15: buffer.writeIntArray(element16)
buffer.writeIntArray(element16) if (packet.sss == null):
if (packet.sss == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.sss.size())
buffer.writeInt(packet.sss.size()) for element17 in packet.sss:
for element17 in packet.sss: buffer.writePacketArray(element17, ObjectA)
buffer.writePacketArray(element17, 102) buffer.writeStringArray(packet.ssss)
buffer.writeStringArray(packet.ssss) if (packet.sssss == null):
if (packet.sssss == null): buffer.writeInt(0)
buffer.writeInt(0) else:
else: buffer.writeInt(packet.sssss.size())
buffer.writeInt(packet.sssss.size()) for element18 in packet.sssss:
for element18 in packet.sssss: buffer.writeIntStringMap(element18)
buffer.writeIntStringMap(element18) buffer.writeInt(packet.myCompatible)
buffer.writeInt(packet.myCompatible) buffer.writePacket(packet.myObject, ObjectA)
buffer.writePacket(packet.myObject, 102) buffer.adjustPadding(36962, beforeWriteIndex)
buffer.adjustPadding(36962, beforeWriteIndex) pass
pass
func read(buffer: ByteBuffer) -> ComplexObject: static func read(buffer: ByteBuffer) -> ComplexObject:
var length = buffer.readInt() var length = buffer.readInt()
if (length == 0): if (length == 0):
return null return null
var beforeReadIndex = buffer.getReadOffset() var beforeReadIndex = buffer.getReadOffset()
var packet: ComplexObject = buffer.newInstance(100) var packet: ComplexObject = ComplexObject.new()
var result0 = buffer.readByte() var result0 = buffer.readByte()
packet.a = result0 packet.a = result0
var result1 = buffer.readByte() var result1 = buffer.readByte()
packet.aa = result1 packet.aa = result1
var array2 = buffer.readByteArray() var array2 = buffer.readByteArray()
packet.aaa = array2 packet.aaa = array2
var array3 = buffer.readByteArray() var array3 = buffer.readByteArray()
packet.aaaa = array3 packet.aaaa = array3
var result4 = buffer.readShort() var result4 = buffer.readShort()
packet.b = result4 packet.b = result4
var result5 = buffer.readShort() var result5 = buffer.readShort()
packet.bb = result5 packet.bb = result5
var array6 = buffer.readShortArray() var array6 = buffer.readShortArray()
packet.bbb = array6 packet.bbb = array6
var array7 = buffer.readShortArray() var array7 = buffer.readShortArray()
packet.bbbb = array7 packet.bbbb = array7
var result8 = buffer.readInt() var result8 = buffer.readInt()
packet.c = result8 packet.c = result8
var result9 = buffer.readInt() var result9 = buffer.readInt()
packet.cc = result9 packet.cc = result9
var array10 = buffer.readIntArray() var array10 = buffer.readIntArray()
packet.ccc = array10 packet.ccc = array10
var array11 = buffer.readIntArray() var array11 = buffer.readIntArray()
packet.cccc = array11 packet.cccc = array11
var result12 = buffer.readLong() var result12 = buffer.readLong()
packet.d = result12 packet.d = result12
var result13 = buffer.readLong() var result13 = buffer.readLong()
packet.dd = result13 packet.dd = result13
var array14 = buffer.readLongArray() var array14 = buffer.readLongArray()
packet.ddd = array14 packet.ddd = array14
var array15 = buffer.readLongArray() var array15 = buffer.readLongArray()
packet.dddd = array15 packet.dddd = array15
var result16 = buffer.readFloat() var result16 = buffer.readFloat()
packet.e = result16 packet.e = result16
var result17 = buffer.readFloat() var result17 = buffer.readFloat()
packet.ee = result17 packet.ee = result17
var array18 = buffer.readFloatArray() var array18 = buffer.readFloatArray()
packet.eee = array18 packet.eee = array18
var array19 = buffer.readFloatArray() var array19 = buffer.readFloatArray()
packet.eeee = array19 packet.eeee = array19
var result20 = buffer.readDouble() var result20 = buffer.readDouble()
packet.f = result20 packet.f = result20
var result21 = buffer.readDouble() var result21 = buffer.readDouble()
packet.ff = result21 packet.ff = result21
var array22 = buffer.readDoubleArray() var array22 = buffer.readDoubleArray()
packet.fff = array22 packet.fff = array22
var array23 = buffer.readDoubleArray() var array23 = buffer.readDoubleArray()
packet.ffff = array23 packet.ffff = array23
var result24 = buffer.readBool() var result24 = buffer.readBool()
packet.g = result24 packet.g = result24
var result25 = buffer.readBool() var result25 = buffer.readBool()
packet.gg = result25 packet.gg = result25
var array26 = buffer.readBoolArray() var array26 = buffer.readBoolArray()
packet.ggg = array26 packet.ggg = array26
var array27 = buffer.readBoolArray() var array27 = buffer.readBoolArray()
packet.gggg = array27 packet.gggg = array27
var result28 = buffer.readString() var result28 = buffer.readString()
packet.jj = result28 packet.jj = result28
var array29 = buffer.readStringArray() var array29 = buffer.readStringArray()
packet.jjj = array29 packet.jjj = array29
var result30 = buffer.readPacket(102) var result30 = buffer.readPacket(ObjectA)
packet.kk = result30 packet.kk = result30
var array31 = buffer.readPacketArray(102) var array31 = buffer.readPacketArray(ObjectA)
packet.kkk = array31 packet.kkk = array31
var list32 = buffer.readIntArray() var list32 = buffer.readIntArray()
packet.l = list32 packet.l = list32
var result33 = [] var result33 = []
var size35 = buffer.readInt() var size35 = buffer.readInt()
if (size35 > 0): if (size35 > 0):
for index34 in range(size35): for index34 in range(size35):
var result36 = [] var result36 = []
var size38 = buffer.readInt() var size38 = buffer.readInt()
if (size38 > 0): if (size38 > 0):
for index37 in range(size38): for index37 in range(size38):
var list39 = buffer.readIntArray() var list39 = buffer.readIntArray()
result36.append(list39) result36.append(list39)
result33.append(result36) result33.append(result36)
packet.ll = result33 packet.ll = result33
var result40 = [] var result40 = []
var size42 = buffer.readInt() var size42 = buffer.readInt()
if (size42 > 0): if (size42 > 0):
for index41 in range(size42): for index41 in range(size42):
var list43 = buffer.readPacketArray(102) var list43 = buffer.readPacketArray(ObjectA)
result40.append(list43) result40.append(list43)
packet.lll = result40 packet.lll = result40
var list44 = buffer.readStringArray() var list44 = buffer.readStringArray()
packet.llll = list44 packet.llll = list44
var result45 = [] var result45 = []
var size47 = buffer.readInt() var size47 = buffer.readInt()
if (size47 > 0): if (size47 > 0):
for index46 in range(size47): for index46 in range(size47):
var map48 = buffer.readIntStringMap() var map48 = buffer.readIntStringMap()
result45.append(map48) result45.append(map48)
packet.lllll = result45 packet.lllll = result45
var map49 = buffer.readIntStringMap() var map49 = buffer.readIntStringMap()
packet.m = map49 packet.m = map49
var map50 = buffer.readIntPacketMap(102) var map50 = buffer.readIntPacketMap(ObjectA)
packet.mm = map50 packet.mm = map50
var result51 = {} var result51 = {}
var size52 = buffer.readInt() var size52 = buffer.readInt()
if (size52 > 0): if (size52 > 0):
for index53 in range(size52): for index53 in range(size52):
var result54 = buffer.readPacket(102) var result54 = buffer.readPacket(ObjectA)
var list55 = buffer.readIntArray() var list55 = buffer.readIntArray()
result51[result54] = list55 result51[result54] = list55
packet.mmm = result51 packet.mmm = result51
var result56 = {} var result56 = {}
var size57 = buffer.readInt() var size57 = buffer.readInt()
if (size57 > 0): if (size57 > 0):
for index58 in range(size57): for index58 in range(size57):
var result59 = [] var result59 = []
var size61 = buffer.readInt() var size61 = buffer.readInt()
if (size61 > 0): if (size61 > 0):
for index60 in range(size61): for index60 in range(size61):
var list62 = buffer.readPacketArray(102) var list62 = buffer.readPacketArray(ObjectA)
result59.append(list62) result59.append(list62)
var result63 = [] var result63 = []
var size65 = buffer.readInt() var size65 = buffer.readInt()
if (size65 > 0): if (size65 > 0):
for index64 in range(size65): for index64 in range(size65):
var result66 = [] var result66 = []
var size68 = buffer.readInt() var size68 = buffer.readInt()
if (size68 > 0): if (size68 > 0):
for index67 in range(size68): for index67 in range(size68):
var list69 = buffer.readIntArray() var list69 = buffer.readIntArray()
result66.append(list69) result66.append(list69)
result63.append(result66) result63.append(result66)
result56[result59] = result63 result56[result59] = result63
packet.mmmm = result56 packet.mmmm = result56
var result70 = {} var result70 = {}
var size71 = buffer.readInt() var size71 = buffer.readInt()
if (size71 > 0): if (size71 > 0):
for index72 in range(size71): for index72 in range(size71):
var result73 = [] var result73 = []
var size75 = buffer.readInt() var size75 = buffer.readInt()
if (size75 > 0): if (size75 > 0):
for index74 in range(size75): for index74 in range(size75):
var map76 = buffer.readIntStringMap() var map76 = buffer.readIntStringMap()
result73.append(map76) result73.append(map76)
var result77 = [] var result77 = []
var size79 = buffer.readInt() var size79 = buffer.readInt()
if (size79 > 0): if (size79 > 0):
for index78 in range(size79): for index78 in range(size79):
var map80 = buffer.readIntStringMap() var map80 = buffer.readIntStringMap()
result77.append(map80) result77.append(map80)
result70[result73] = result77 result70[result73] = result77
packet.mmmmm = result70 packet.mmmmm = result70
var set81 = buffer.readIntArray() var set81 = buffer.readIntArray()
packet.s = set81 packet.s = set81
var result82 = [] var result82 = []
var size84 = buffer.readInt() var size84 = buffer.readInt()
if (size84 > 0): if (size84 > 0):
for index83 in range(size84): for index83 in range(size84):
var result85 = [] var result85 = []
var size87 = buffer.readInt() var size87 = buffer.readInt()
if (size87 > 0): if (size87 > 0):
for index86 in range(size87): for index86 in range(size87):
var list88 = buffer.readIntArray() var list88 = buffer.readIntArray()
result85.append(list88) result85.append(list88)
result82.append(result85) result82.append(result85)
packet.ss = result82 packet.ss = result82
var result89 = [] var result89 = []
var size91 = buffer.readInt() var size91 = buffer.readInt()
if (size91 > 0): if (size91 > 0):
for index90 in range(size91): for index90 in range(size91):
var set92 = buffer.readPacketArray(102) var set92 = buffer.readPacketArray(ObjectA)
result89.append(set92) result89.append(set92)
packet.sss = result89 packet.sss = result89
var set93 = buffer.readStringArray() var set93 = buffer.readStringArray()
packet.ssss = set93 packet.ssss = set93
var result94 = [] var result94 = []
var size96 = buffer.readInt() var size96 = buffer.readInt()
if (size96 > 0): if (size96 > 0):
for index95 in range(size96): for index95 in range(size96):
var map97 = buffer.readIntStringMap() var map97 = buffer.readIntStringMap()
result94.append(map97) result94.append(map97)
packet.sssss = result94 packet.sssss = result94
if buffer.compatibleRead(beforeReadIndex, length): if buffer.compatibleRead(beforeReadIndex, length):
var result98 = buffer.readInt() var result98 = buffer.readInt()
packet.myCompatible = result98 packet.myCompatible = result98
if buffer.compatibleRead(beforeReadIndex, length): if buffer.compatibleRead(beforeReadIndex, length):
var result99 = buffer.readPacket(102) var result99 = buffer.readPacket(ObjectA)
packet.myObject = result99 packet.myObject = result99
if (length > 0): if (length > 0):
buffer.setReadOffset(beforeReadIndex + length) buffer.setReadOffset(beforeReadIndex + length)
return packet return packet
@@ -1,7 +1,5 @@
class_name EmptyObject class_name EmptyObject
const ByteBuffer = preload("../ByteBuffer.gd")
@@ -13,21 +11,20 @@ func _to_string() -> String:
var params = [] var params = []
return jsonTemplate.format(params, "{}") return jsonTemplate.format(params, "{}")
class EmptyObjectRegistration: static func write(buffer: ByteBuffer, packet: EmptyObject):
func write(buffer: ByteBuffer, packet: EmptyObject): if (packet == null):
if (packet == null): buffer.writeInt(0)
buffer.writeInt(0) return
return buffer.writeInt(-1)
buffer.writeInt(-1) pass
pass
func read(buffer: ByteBuffer) -> EmptyObject: static func read(buffer: ByteBuffer) -> EmptyObject:
var length = buffer.readInt() var length = buffer.readInt()
if (length == 0): if (length == 0):
return null return null
var beforeReadIndex = buffer.getReadOffset() var beforeReadIndex = buffer.getReadOffset()
var packet: EmptyObject = buffer.newInstance(0) var packet: EmptyObject = EmptyObject.new()
if (length > 0): if (length > 0):
buffer.setReadOffset(beforeReadIndex + length) buffer.setReadOffset(beforeReadIndex + length)
return packet return packet
@@ -1,9 +1,5 @@
class_name NormalObject class_name NormalObject
const ByteBuffer = preload("../ByteBuffer.gd")
const ObjectA = preload("./ObjectA.gd")
const ObjectB = preload("./ObjectB.gd")
# 常规的对象,取所有语言语法的交集,基本上所有语言都支持下面的语法 # 常规的对象,取所有语言语法的交集,基本上所有语言都支持下面的语法
var a: int var a: int
var aaa: Array[int] var aaa: Array[int]
@@ -33,74 +29,73 @@ func _to_string() -> String:
var params = [self.a, JSON.stringify(self.aaa), self.b, self.c, self.d, self.e, self.f, self.g, self.jj, self.kk, JSON.stringify(self.l), JSON.stringify(self.ll), JSON.stringify(self.lll), JSON.stringify(self.llll), self.m, self.mm, JSON.stringify(self.s), JSON.stringify(self.ssss)] var params = [self.a, JSON.stringify(self.aaa), self.b, self.c, self.d, self.e, self.f, self.g, self.jj, self.kk, JSON.stringify(self.l), JSON.stringify(self.ll), JSON.stringify(self.lll), JSON.stringify(self.llll), self.m, self.mm, JSON.stringify(self.s), JSON.stringify(self.ssss)]
return jsonTemplate.format(params, "{}") return jsonTemplate.format(params, "{}")
class NormalObjectRegistration: static func write(buffer: ByteBuffer, packet: NormalObject):
func write(buffer: ByteBuffer, packet: NormalObject): if (packet == null):
if (packet == null): buffer.writeInt(0)
buffer.writeInt(0) return
return buffer.writeInt(-1)
buffer.writeInt(-1) buffer.writeByte(packet.a)
buffer.writeByte(packet.a) buffer.writeByteArray(packet.aaa)
buffer.writeByteArray(packet.aaa) buffer.writeShort(packet.b)
buffer.writeShort(packet.b) buffer.writeInt(packet.c)
buffer.writeInt(packet.c) buffer.writeLong(packet.d)
buffer.writeLong(packet.d) buffer.writeFloat(packet.e)
buffer.writeFloat(packet.e) buffer.writeDouble(packet.f)
buffer.writeDouble(packet.f) buffer.writeBool(packet.g)
buffer.writeBool(packet.g) buffer.writeString(packet.jj)
buffer.writeString(packet.jj) buffer.writePacket(packet.kk, ObjectA)
buffer.writePacket(packet.kk, 102) buffer.writeIntArray(packet.l)
buffer.writeIntArray(packet.l) buffer.writeLongArray(packet.ll)
buffer.writeLongArray(packet.ll) buffer.writePacketArray(packet.lll, ObjectA)
buffer.writePacketArray(packet.lll, 102) buffer.writeStringArray(packet.llll)
buffer.writeStringArray(packet.llll) buffer.writeIntStringMap(packet.m)
buffer.writeIntStringMap(packet.m) buffer.writeIntPacketMap(packet.mm, ObjectA)
buffer.writeIntPacketMap(packet.mm, 102) buffer.writeIntArray(packet.s)
buffer.writeIntArray(packet.s) buffer.writeStringArray(packet.ssss)
buffer.writeStringArray(packet.ssss) pass
pass
func read(buffer: ByteBuffer) -> NormalObject: static func read(buffer: ByteBuffer) -> NormalObject:
var length = buffer.readInt() var length = buffer.readInt()
if (length == 0): if (length == 0):
return null return null
var beforeReadIndex = buffer.getReadOffset() var beforeReadIndex = buffer.getReadOffset()
var packet: NormalObject = buffer.newInstance(101) var packet: NormalObject = NormalObject.new()
var result0 = buffer.readByte() var result0 = buffer.readByte()
packet.a = result0 packet.a = result0
var array1 = buffer.readByteArray() var array1 = buffer.readByteArray()
packet.aaa = array1 packet.aaa = array1
var result2 = buffer.readShort() var result2 = buffer.readShort()
packet.b = result2 packet.b = result2
var result3 = buffer.readInt() var result3 = buffer.readInt()
packet.c = result3 packet.c = result3
var result4 = buffer.readLong() var result4 = buffer.readLong()
packet.d = result4 packet.d = result4
var result5 = buffer.readFloat() var result5 = buffer.readFloat()
packet.e = result5 packet.e = result5
var result6 = buffer.readDouble() var result6 = buffer.readDouble()
packet.f = result6 packet.f = result6
var result7 = buffer.readBool() var result7 = buffer.readBool()
packet.g = result7 packet.g = result7
var result8 = buffer.readString() var result8 = buffer.readString()
packet.jj = result8 packet.jj = result8
var result9 = buffer.readPacket(102) var result9 = buffer.readPacket(ObjectA)
packet.kk = result9 packet.kk = result9
var list10 = buffer.readIntArray() var list10 = buffer.readIntArray()
packet.l = list10 packet.l = list10
var list11 = buffer.readLongArray() var list11 = buffer.readLongArray()
packet.ll = list11 packet.ll = list11
var list12 = buffer.readPacketArray(102) var list12 = buffer.readPacketArray(ObjectA)
packet.lll = list12 packet.lll = list12
var list13 = buffer.readStringArray() var list13 = buffer.readStringArray()
packet.llll = list13 packet.llll = list13
var map14 = buffer.readIntStringMap() var map14 = buffer.readIntStringMap()
packet.m = map14 packet.m = map14
var map15 = buffer.readIntPacketMap(102) var map15 = buffer.readIntPacketMap(ObjectA)
packet.mm = map15 packet.mm = map15
var set16 = buffer.readIntArray() var set16 = buffer.readIntArray()
packet.s = set16 packet.s = set16
var set17 = buffer.readStringArray() var set17 = buffer.readStringArray()
packet.ssss = set17 packet.ssss = set17
if (length > 0): if (length > 0):
buffer.setReadOffset(beforeReadIndex + length) buffer.setReadOffset(beforeReadIndex + length)
return packet return packet
@@ -1,8 +1,5 @@
class_name ObjectA class_name ObjectA
const ByteBuffer = preload("../ByteBuffer.gd")
const ObjectB = preload("./ObjectB.gd")
var a: int var a: int
var m: Dictionary[int, String] var m: Dictionary[int, String]
@@ -16,29 +13,28 @@ func _to_string() -> String:
var params = [self.a, self.m, self.objectB] var params = [self.a, self.m, self.objectB]
return jsonTemplate.format(params, "{}") return jsonTemplate.format(params, "{}")
class ObjectARegistration: static func write(buffer: ByteBuffer, packet: ObjectA):
func write(buffer: ByteBuffer, packet: ObjectA): if (packet == null):
if (packet == null): buffer.writeInt(0)
buffer.writeInt(0) return
return buffer.writeInt(-1)
buffer.writeInt(-1) buffer.writeInt(packet.a)
buffer.writeInt(packet.a) buffer.writeIntStringMap(packet.m)
buffer.writeIntStringMap(packet.m) buffer.writePacket(packet.objectB, ObjectB)
buffer.writePacket(packet.objectB, 103) pass
pass
func read(buffer: ByteBuffer) -> ObjectA: static func read(buffer: ByteBuffer) -> ObjectA:
var length = buffer.readInt() var length = buffer.readInt()
if (length == 0): if (length == 0):
return null return null
var beforeReadIndex = buffer.getReadOffset() var beforeReadIndex = buffer.getReadOffset()
var packet: ObjectA = buffer.newInstance(102) var packet: ObjectA = ObjectA.new()
var result0 = buffer.readInt() var result0 = buffer.readInt()
packet.a = result0 packet.a = result0
var map1 = buffer.readIntStringMap() var map1 = buffer.readIntStringMap()
packet.m = map1 packet.m = map1
var result2 = buffer.readPacket(103) var result2 = buffer.readPacket(ObjectB)
packet.objectB = result2 packet.objectB = result2
if (length > 0): if (length > 0):
buffer.setReadOffset(beforeReadIndex + length) buffer.setReadOffset(beforeReadIndex + length)
return packet return packet
@@ -1,7 +1,5 @@
class_name ObjectB class_name ObjectB
const ByteBuffer = preload("../ByteBuffer.gd")
var flag: bool var flag: bool
@@ -13,23 +11,22 @@ func _to_string() -> String:
var params = [self.flag] var params = [self.flag]
return jsonTemplate.format(params, "{}") return jsonTemplate.format(params, "{}")
class ObjectBRegistration: static func write(buffer: ByteBuffer, packet: ObjectB):
func write(buffer: ByteBuffer, packet: ObjectB): if (packet == null):
if (packet == null): buffer.writeInt(0)
buffer.writeInt(0) return
return buffer.writeInt(-1)
buffer.writeInt(-1) buffer.writeBool(packet.flag)
buffer.writeBool(packet.flag) pass
pass
func read(buffer: ByteBuffer) -> ObjectB: static func read(buffer: ByteBuffer) -> ObjectB:
var length = buffer.readInt() var length = buffer.readInt()
if (length == 0): if (length == 0):
return null return null
var beforeReadIndex = buffer.getReadOffset() var beforeReadIndex = buffer.getReadOffset()
var packet: ObjectB = buffer.newInstance(103) var packet: ObjectB = ObjectB.new()
var result0 = buffer.readBool() var result0 = buffer.readBool()
packet.flag = result0 packet.flag = result0
if (length > 0): if (length > 0):
buffer.setReadOffset(beforeReadIndex + length) buffer.setReadOffset(beforeReadIndex + length)
return packet return packet
@@ -1,7 +1,5 @@
class_name SimpleObject class_name SimpleObject
const ByteBuffer = preload("../ByteBuffer.gd")
var c: int var c: int
var g: bool var g: bool
@@ -14,26 +12,25 @@ func _to_string() -> String:
var params = [self.c, self.g] var params = [self.c, self.g]
return jsonTemplate.format(params, "{}") return jsonTemplate.format(params, "{}")
class SimpleObjectRegistration: static func write(buffer: ByteBuffer, packet: SimpleObject):
func write(buffer: ByteBuffer, packet: SimpleObject): if (packet == null):
if (packet == null): buffer.writeInt(0)
buffer.writeInt(0) return
return buffer.writeInt(-1)
buffer.writeInt(-1) buffer.writeInt(packet.c)
buffer.writeInt(packet.c) buffer.writeBool(packet.g)
buffer.writeBool(packet.g) pass
pass
func read(buffer: ByteBuffer) -> SimpleObject: static func read(buffer: ByteBuffer) -> SimpleObject:
var length = buffer.readInt() var length = buffer.readInt()
if (length == 0): if (length == 0):
return null return null
var beforeReadIndex = buffer.getReadOffset() var beforeReadIndex = buffer.getReadOffset()
var packet: SimpleObject = buffer.newInstance(104) var packet: SimpleObject = SimpleObject.new()
var result0 = buffer.readInt() var result0 = buffer.readInt()
packet.c = result0 packet.c = result0
var result1 = buffer.readBool() var result1 = buffer.readBool()
packet.g = result1 packet.g = result1
if (length > 0): if (length > 0):
buffer.setReadOffset(beforeReadIndex + length) buffer.setReadOffset(beforeReadIndex + length)
return packet return packet
File diff suppressed because it is too large. Load diff