Merge remote-tracking branch 'origin/main'

This commit is contained in:
godotg
2024-07-19 18:17:16 +08:00
50 changed files with 11583 additions and 11407 deletions
@@ -89,7 +89,7 @@ public enum CodeTemplatePlaceholder {
if (formatLine.contains(codeTemplatePlaceholder.placeholder)) {
var placeholder = placeholderMap.get(codeTemplatePlaceholder);
if (placeholder == null) {
throw new RunException("placeholder:[{}] not exist, and add [{}] to your placeholderMap", placeholder, placeholder);
throw new RunException("placeholder:[{}] not exist, and add [{}] to your placeholderMap", codeTemplatePlaceholder, codeTemplatePlaceholder);
}
formatLine = formatLine.replace(codeTemplatePlaceholder.placeholder, placeholder);
}
@@ -93,7 +93,9 @@ public class CodeGenerateGdScript implements ICodeGenerate {
for (var registration : registrations) {
var protocol_id = registration.protocolId();
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
protocol_manager_registrations.append(StringUtils.format("{}: Protocols.{},", protocol_id, protocol_name)).append(LS);
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = Protocols.{}Registration.new()", protocol_id, protocol_name)).append(LS);
protocol_manager_registrations.append(StringUtils.format("protocolClassMap[{}] = Protocols.{}", protocol_id, protocol_name)).append(LS);
}
var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
, CodeTemplatePlaceholder.protocol_manager_registrations, StringUtils.substringBeforeLast(protocol_manager_registrations.toString(), StringUtils.COMMA));
@@ -103,28 +105,19 @@ public class CodeGenerateGdScript implements ICodeGenerate {
logger.info("Generated GdScript protocol manager file:[{}] is in path:[{}]", protocolManagerFile.getName(), protocolManagerFile.getAbsolutePath());
var protocol_imports_protocols = new StringBuilder();
protocol_imports = new StringBuilder();
var protocol_class = new StringBuilder();
var protocol_registration = new StringBuilder();
protocol_imports.append(StringUtils.format("const ByteBuffer = preload(\"res://{}/ByteBuffer.gd\")", protocolOutputRootPath)).append(LS);
for (var registration : registrations) {
var protocol_id = registration.protocolId();
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
var protocolTemplate = ClassUtils.getFileFromClassPathToString("gdscript/ProtocolClassTemplate.gd");
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id)
, CodeTemplatePlaceholder.protocol_name, protocol_name
, CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.GdScript)
, CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration)
, CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration)
, CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration)
, CodeTemplatePlaceholder.protocol_json, protocol_json(registration)
, CodeTemplatePlaceholder.protocol_to_string, protocol_to_string(registration)
));
protocol_class.append(formatProtocolTemplate).append(LS);
protocol_class.append(protocol_class(registration)).append(LS);
protocol_registration.append(protocol_registration(registration)).append(LS);
}
var protocolTemplate = ClassUtils.getFileFromClassPathToString("gdscript/ProtocolsTemplate.gd");
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
CodeTemplatePlaceholder.protocol_imports, protocol_imports_protocols.toString()
CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
, CodeTemplatePlaceholder.protocol_class, protocol_class.toString()
, CodeTemplatePlaceholder.protocol_registration, protocol_registration.toString()
));
var outputPath = StringUtils.format("{}/Protocols.gd", protocolOutputPath);
var file = new File(outputPath);
@@ -145,7 +138,8 @@ public class CodeGenerateGdScript implements ICodeGenerate {
var protocol_id = registration.protocolId();
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
protocol_imports.append(StringUtils.format("const {} = preload(\"res://{}/{}/{}.gd\")", protocol_name, protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocol_id), protocol_name)).append(LS);
protocol_manager_registrations.append(StringUtils.format("{}: {},", protocol_id, protocol_name)).append(LS);
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = {}.{}Registration.new()", protocol_id, protocol_name, protocol_name)).append(LS);
protocol_manager_registrations.append(StringUtils.format("protocolClassMap[{}] = {}", protocol_id, protocol_name)).append(LS);
}
var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
, CodeTemplatePlaceholder.protocol_manager_registrations, StringUtils.substringBeforeLast(protocol_manager_registrations.toString(), StringUtils.COMMA));
@@ -162,13 +156,9 @@ public class CodeGenerateGdScript implements ICodeGenerate {
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id)
, CodeTemplatePlaceholder.protocol_name, protocol_name
, CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.GdScript)
, CodeTemplatePlaceholder.protocol_imports, protocol_imports_fold(registration)
, CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration)
, CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration)
, CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration)
, CodeTemplatePlaceholder.protocol_json, protocol_json(registration)
, CodeTemplatePlaceholder.protocol_to_string, protocol_to_string(registration)
, CodeTemplatePlaceholder.protocol_class, protocol_class_default(registration)
, CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration)
));
var outputPath = StringUtils.format("{}/{}/{}.gd", protocolOutputPath, GenerateProtocolPath.protocolPathSlash(protocol_id), protocol_name);
var file = new File(outputPath);
@@ -186,11 +176,13 @@ public class CodeGenerateGdScript implements ICodeGenerate {
var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("gdscript/ProtocolManagerTemplate.gd");
var protocol_imports = new StringBuilder();
var protocol_manager_registrations = new StringBuilder();
protocol_imports.append(StringUtils.format("const ByteBuffer = preload(\"res://{}/ByteBuffer.gd\")", protocolOutputRootPath)).append(LS);
for (var registration : registrations) {
var protocol_id = registration.protocolId();
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
protocol_imports.append(StringUtils.format("const {} = preload(\"res://{}/{}.gd\")", protocol_name, protocolOutputRootPath, protocol_name)).append(LS);
protocol_manager_registrations.append(StringUtils.format("{}: {},", protocol_id, protocol_name)).append(LS);
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = {}.{}Registration.new()", protocol_id, protocol_name, protocol_name)).append(LS);
protocol_manager_registrations.append(StringUtils.format("protocolClassMap[{}] = {}", protocol_id, protocol_name)).append(LS);
}
var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
, CodeTemplatePlaceholder.protocol_manager_registrations, StringUtils.substringBeforeLast(protocol_manager_registrations.toString(), StringUtils.COMMA));
@@ -207,13 +199,9 @@ public class CodeGenerateGdScript implements ICodeGenerate {
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id)
, CodeTemplatePlaceholder.protocol_name, protocol_name
, CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.GdScript)
, CodeTemplatePlaceholder.protocol_imports, protocol_imports_default(registration)
, CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration)
, CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration)
, CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration)
, CodeTemplatePlaceholder.protocol_json, protocol_json(registration)
, CodeTemplatePlaceholder.protocol_to_string, protocol_to_string(registration)
, CodeTemplatePlaceholder.protocol_class, protocol_class_default(registration)
, CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration)
));
var outputPath = StringUtils.format("{}/{}.gd", protocolOutputPath, protocol_name);
var file = new File(outputPath);
@@ -223,19 +211,62 @@ public class CodeGenerateGdScript implements ICodeGenerate {
}
private void createTemplateFile() throws IOException {
var byteBufferFile = new File(StringUtils.format("{}/{}", protocolOutputPath, "ByteBuffer.gd"));
var byteBufferTemplate = ClassUtils.getFileFromClassPathToString("gdscript/buffer/ByteBuffer.gd");
FileUtils.writeStringToFile(byteBufferFile, StringUtils.format(byteBufferTemplate, protocolOutputRootPath), false);
var createFile = new File(StringUtils.format("{}/{}", protocolOutputPath, "ByteBuffer.gd"));
var fileInputStream = ClassUtils.getFileFromClassPath("gdscript/ByteBuffer.gd");
FileUtils.writeInputStreamToFile(createFile, fileInputStream);
}
private String protocol_class(ProtocolRegistration registration) {
var protocol_id = registration.protocolId();
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
var protocolTemplate = ClassUtils.getFileFromClassPathToString("gdscript/ProtocolClassTemplate.gd");
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.GdScript)
, CodeTemplatePlaceholder.protocol_name, protocol_name
, CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id)
, CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration)
, CodeTemplatePlaceholder.protocol_json, protocol_json(registration)
, CodeTemplatePlaceholder.protocol_to_string, protocol_to_string(registration)
));
return formatProtocolTemplate;
}
private String protocol_class_default(ProtocolRegistration registration) {
var protocol_id = registration.protocolId();
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
var protocolTemplate = ClassUtils.getFileFromClassPathToString("gdscript/ProtocolClassDefaultTemplate.gd");
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.GdScript)
, CodeTemplatePlaceholder.protocol_name, protocol_name
, CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id)
, CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration)
, CodeTemplatePlaceholder.protocol_json, protocol_json(registration)
, CodeTemplatePlaceholder.protocol_to_string, protocol_to_string(registration)
));
return formatProtocolTemplate;
}
private String protocol_registration(ProtocolRegistration registration) {
var protocol_id = registration.protocolId();
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
var protocolTemplate = ClassUtils.getFileFromClassPathToString("gdscript/ProtocolRegistrationTemplate.gd");
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
CodeTemplatePlaceholder.protocol_name, protocol_name
, CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id)
, CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration)
, CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration)
));
return formatProtocolTemplate;
}
private String protocol_imports_fold(ProtocolRegistration registration) {
var protocolId = registration.getId();
var subProtocols = ProtocolAnalysis.getAllSubProtocolIds(protocolId);
var importBuilder = new StringBuilder();
importBuilder.append(StringUtils.format("const ByteBuffer = preload(\"res://{}/ByteBuffer.gd\")", protocolOutputRootPath)).append(LS);
for (var subProtocolId : subProtocols) {
var name = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(subProtocolId);
importBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}/{}.gd\")", name, protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocolId), name)).append(LS);
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(subProtocolId);
importBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}/{}.gd\")", protocolName, protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocolId), protocolName)).append(LS);
}
return importBuilder.toString();
}
@@ -244,6 +275,7 @@ public class CodeGenerateGdScript implements ICodeGenerate {
var protocolId = registration.getId();
var subProtocols = ProtocolAnalysis.getAllSubProtocolIds(protocolId);
var importBuilder = new StringBuilder();
importBuilder.append(StringUtils.format("const ByteBuffer = preload(\"res://{}/ByteBuffer.gd\")", protocolOutputRootPath)).append(LS);
for (var subProtocolId : subProtocols) {
var protocolName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(subProtocolId);
importBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}.gd\")", protocolName, protocolOutputRootPath, protocolName)).append(LS);
@@ -356,7 +388,7 @@ public class CodeGenerateGdScript implements ICodeGenerate {
if (field.isAnnotationPresent(Compatible.class)) {
gdBuilder.append("if buffer.compatibleRead(beforeReadIndex, length):").append(LS);
var compatibleReadObject = gdSerializer(fieldRegistration.serializer()).readObject(gdBuilder, 1, field, fieldRegistration);
gdBuilder.append(TAB_ASCII).append(StringUtils.format("packet.{} = {};", field.getName(), compatibleReadObject)).append(LS);
gdBuilder.append(TAB_ASCII).append(StringUtils.format("packet.{} = {}", field.getName(), compatibleReadObject)).append(LS);
continue;
}
var readObject = gdSerializer(fieldRegistration.serializer()).readObject(gdBuilder, 0, field, fieldRegistration);
@@ -216,7 +216,7 @@ public class CodeGenerateGolang implements ICodeGenerate {
var fieldRegistrations = registration.getFieldRegistrations();
var goBuilder = new StringBuilder();
if (registration.isCompatible()) {
goBuilder.append("var beforeWriteIndex = buffer.WriteOffset()").append(LS);
goBuilder.append("var beforeWriteIndex = buffer.GetWriteOffset()").append(LS);
goBuilder.append(StringUtils.format("buffer.WriteInt({})", registration.getPredictionLength())).append(LS);
} else {
goBuilder.append("buffer.WriteInt(-1)").append(LS);
@@ -35,7 +35,7 @@ public class LuaBoolSerializer implements ILuaSerializer {
@Override
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
builder.append(StringUtils.format("buffer:writeBoolean({})", objectStr)).append(LS);
builder.append(StringUtils.format("buffer:writeBool({})", objectStr)).append(LS);
}
@Override
@@ -43,7 +43,7 @@ public class LuaBoolSerializer implements ILuaSerializer {
String result = "result" + GenerateProtocolFile.localVariableId++;
GenerateProtocolFile.addTab(builder, deep);
builder.append(StringUtils.format("local {} = buffer:readBoolean()", result)).append(LS);
builder.append(StringUtils.format("local {} = buffer:readBool()", result)).append(LS);
return result;
}
}
@@ -1,4 +1,4 @@
const ProtocolManager = preload("res://{}/ProtocolManager.gd")
const ProtocolManager = preload("res://zfoogd/ProtocolManager.gd")
const EMPTY: String = ""
@@ -39,9 +39,12 @@ func compatibleRead(beforeReadIndex: int, length: int) -> bool:
return length != -1 && getReadOffset() < length + beforeReadIndex
# -------------------------------------------------get/set-------------------------------------------------
func getBuffer() -> StreamPeerBuffer:
return buffer
func setWriteOffset(writeIndex: int) -> void:
if (writeIndex > buffer.get_size()):
var template = "writeIndex[{}] out of bounds exception: readerIndex: {}, writerIndex: {} (expected: 0 <= readerIndex <= writerIndex <= capacity: {})"
var template = "writeIndex[{}] out of bounds exception: readOffset: {}, writeOffset: {} (expected: 0 <= readOffset <= writeOffset <= capacity: {})"
printerr(template.format([writeIndex, readOffset, writeOffset, buffer.get_size()], "{}"))
return
writeOffset = writeIndex
@@ -52,7 +55,7 @@ func getWriteOffset() -> int:
func setReadOffset(readIndex: int) -> void:
if (readIndex > writeOffset):
var template = "readIndex[{}] out of bounds exception: readerIndex: {}, writerIndex: {} (expected: 0 <= readerIndex <= writerIndex <= capacity: {})"
var template = "readIndex[{}] out of bounds exception: readOffset: {}, writeOffset: {} (expected: 0 <= readOffset <= writeOffset <= capacity: {})"
printerr(template.format([readIndex, readOffset, writeOffset, buffer.size()], "{}"))
return
readOffset = readIndex
@@ -64,15 +67,21 @@ func getReadOffset() -> int:
func isReadable() -> bool:
return writeOffset > readOffset
func toBytes() -> PackedByteArray:
return buffer.data_array.slice(0, writeOffset)
func newInstance(protocolId: int):
return ProtocolManager.newInstance(protocolId)
# -------------------------------------------------write/read-------------------------------------------------
func writePackedByteArray(value: PackedByteArray):
func writeBytes(value: PackedByteArray):
var length: int = value.size()
buffer.put_partial_data(value)
writeOffset += length
pass
func toPackedByteArray() -> PackedByteArray:
return buffer.data_array.slice(0, writeOffset)
func readBytes(length: int) -> PackedByteArray:
return buffer.data_array.slice(0, length)
func writeBool(value: bool) -> void:
var byte: int = 1 if value else 0
@@ -303,10 +312,7 @@ func readPacket(protocolId):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
return protocolRegistration.read(self)
func newInstance(protocolId: int):
return ProtocolManager.newInstance(protocolId)
func writeBooleanArray(array):
func writeBoolArray(array):
if (array == null):
writeInt(0)
else:
@@ -315,7 +321,7 @@ func writeBooleanArray(array):
writeBool(element)
pass
func readBooleanArray() -> Array[bool]:
func readBoolArray() -> Array[bool]:
var array: Array[bool] = []
var size = readInt()
if (size > 0):
@@ -454,7 +460,8 @@ func writePacketArray(array, protocolId):
func readPacketArray(protocolId):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
var array = Array([], typeof(protocolRegistration), StringName("RefCounted"), protocolRegistration)
var protocol = ProtocolManager.getProtocolClass(protocolId)
var array = Array([], typeof(protocol), StringName("RefCounted"), protocol)
var size = readInt()
if (size > 0):
for index in range(size):
@@ -0,0 +1,13 @@
${protocol_note}
${protocol_field_definition}
func protocolId() -> int:
return ${protocol_id}
func get_class_name() -> String:
return "${protocol_name}"
func _to_string() -> String:
const jsonTemplate = "${protocol_json}"
var params = [${protocol_to_string}]
return jsonTemplate.format(params, "{}")
@@ -2,28 +2,13 @@ ${protocol_note}
class ${protocol_name}:
${protocol_field_definition}
const PROTOCOL_ID = ${protocol_id}
const PROTOCOL_CLASS_NAME = "${protocol_name}"
func protocolId() -> int:
return ${protocol_id}
func get_class_name() -> String:
return "${protocol_name}"
func _to_string() -> String:
const jsonTemplate = "${protocol_json}"
var params = [${protocol_to_string}]
return jsonTemplate.format(params, "{}")
static func write(buffer, packet):
if (packet == null):
buffer.writeInt(0)
return
${protocol_write_serialization}
pass
static func read(buffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(PROTOCOL_ID)
${protocol_read_deserialization}
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
return jsonTemplate.format(params, "{}")
@@ -1,18 +1,24 @@
${protocol_imports}
const protocols: Dictionary = {
static var protocols: Dictionary = {}
static var protocolClassMap: Dictionary = {}
static func initProtocol():
${protocol_manager_registrations}
}
pass
static func getProtocol(protocolId: int):
return protocols[protocolId]
static func getProtocolClass(protocolId: int):
return protocolClassMap[protocolId]
static func newInstance(protocolId: int):
var protocol = protocols[protocolId]
var protocol = protocolClassMap[protocolId]
return protocol.new()
static func write(buffer, packet):
var protocolId: int = packet.PROTOCOL_ID
var protocolId: int = packet.protocolId()
buffer.writeShort(protocolId)
var protocol = protocols[protocolId]
protocol.write(buffer, packet)
@@ -0,0 +1,18 @@
class ${protocol_name}Registration:
func write(buffer: ByteBuffer, packet: Object):
if (packet == null):
buffer.writeInt(0)
return
${protocol_write_serialization}
pass
func read(buffer: ByteBuffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(${protocol_id})
${protocol_read_deserialization}
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
@@ -1,28 +1,5 @@
const PROTOCOL_ID = ${protocol_id}
const PROTOCOL_CLASS_NAME = "${protocol_name}"
${protocol_imports}
${protocol_note}
${protocol_field_definition}
func _to_string() -> String:
const jsonTemplate = "${protocol_json}"
var params = [${protocol_to_string}]
return jsonTemplate.format(params, "{}")
${protocol_class}
static func write(buffer, packet):
if (packet == null):
buffer.writeInt(0)
return
${protocol_write_serialization}
pass
static func read(buffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(PROTOCOL_ID)
${protocol_read_deserialization}
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
${protocol_registration}
@@ -1 +1,5 @@
${protocol_class}
${protocol_imports}
${protocol_class}
${protocol_registration}
@@ -13,14 +13,14 @@ const maxSize int = 655537
var initArray []byte = make([]byte, initSize, initSize)
type ByteBuffer struct {
buffer []byte
writeIndex int
readIndex int
buffer []byte
writeOffset int
readOffset int
}
func (byteBuffer *ByteBuffer) AdjustPadding(predictionLength int, beforeWriteIndex int) {
// 因为写入的是可变长的int,如果预留的位置过多,则清除多余的位置
var currentWriteIndex = byteBuffer.WriteOffset()
var currentWriteIndex = byteBuffer.GetWriteOffset()
var predictionCount = byteBuffer.WriteIntCount(int32(predictionLength))
var length = currentWriteIndex - beforeWriteIndex - predictionCount
var lengthCount = byteBuffer.WriteIntCount(int32(length))
@@ -38,44 +38,48 @@ func (byteBuffer *ByteBuffer) AdjustPadding(predictionLength int, beforeWriteInd
}
func (byteBuffer *ByteBuffer) CompatibleRead(beforeReadIndex int, length int) bool {
return length != -1 && byteBuffer.readIndex < length+beforeReadIndex
return length != -1 && byteBuffer.readOffset < length+beforeReadIndex
}
// -------------------------------------------------get/set-------------------------------------------------
func (byteBuffer *ByteBuffer) WriteOffset() int {
return byteBuffer.writeIndex
func (byteBuffer *ByteBuffer) GetBuffer() []byte {
return byteBuffer.buffer
}
func (byteBuffer *ByteBuffer) GetWriteOffset() int {
return byteBuffer.writeOffset
}
func (byteBuffer *ByteBuffer) SetWriteOffset(writeIndex int) {
if writeIndex > len(byteBuffer.buffer) {
var error = fmt.Sprintf("writeIndex:[{%d}] out of bounds exception: readerIndex:[{%d}] , writerIndex:[{%d}] (expected: 0 <= readerIndex <= writerIndex <= capacity:[{%d}])", writeIndex, byteBuffer.readIndex, byteBuffer.writeIndex, len(byteBuffer.buffer))
var error = fmt.Sprintf("writeIndex:[{%d}] out of bounds exception: readOffset:[{%d}] , writeOffset:[{%d}] (expected: 0 <= readOffset <= writeOffset <= capacity:[{%d}])", writeIndex, byteBuffer.readOffset, byteBuffer.writeOffset, len(byteBuffer.buffer))
panic(error)
}
byteBuffer.writeIndex = writeIndex
byteBuffer.writeOffset = writeIndex
}
func (byteBuffer *ByteBuffer) ReadOffset() int {
return byteBuffer.readIndex
func (byteBuffer *ByteBuffer) GetReadOffset() int {
return byteBuffer.readOffset
}
func (byteBuffer *ByteBuffer) SetReadOffset(readIndex int) {
if readIndex > byteBuffer.writeIndex {
var error = fmt.Sprintf("readIndex:[{%d}] out of bounds exception: readerIndex:[{%d}] , writerIndex:[{%d}] (expected: 0 <= readerIndex <= writerIndex <= capacity:[{%d}])", readIndex, byteBuffer.readIndex, byteBuffer.writeIndex, len(byteBuffer.buffer))
if readIndex > byteBuffer.writeOffset {
var error = fmt.Sprintf("readIndex:[{%d}] out of bounds exception: readOffset:[{%d}] , writeOffset:[{%d}] (expected: 0 <= readOffset <= writeOffset <= capacity:[{%d}])", readIndex, byteBuffer.readOffset, byteBuffer.writeOffset, len(byteBuffer.buffer))
panic(error)
}
byteBuffer.readIndex = readIndex
byteBuffer.readOffset = readIndex
}
func (byteBuffer *ByteBuffer) ToBytes() []byte {
return byteBuffer.buffer[0:byteBuffer.writeIndex]
return byteBuffer.buffer[0:byteBuffer.writeOffset]
}
func (byteBuffer *ByteBuffer) ToString() string {
return fmt.Sprintf("writeIndex:[{%d}], readIndex:[{%d}], len:[{%d}], cap:[{%d}]", byteBuffer.writeIndex, byteBuffer.readIndex, len(byteBuffer.buffer), cap(byteBuffer.buffer))
return fmt.Sprintf("writeOffset:[{%d}], readOffset:[{%d}], len:[{%d}], cap:[{%d}]", byteBuffer.writeOffset, byteBuffer.readOffset, len(byteBuffer.buffer), cap(byteBuffer.buffer))
}
func (byteBuffer *ByteBuffer) GetCapacity() int {
return len(byteBuffer.buffer) - byteBuffer.writeIndex
return len(byteBuffer.buffer) - byteBuffer.writeOffset
}
func (byteBuffer *ByteBuffer) EnsureCapacity(capacity int) {
@@ -93,12 +97,12 @@ func (byteBuffer *ByteBuffer) EnsureCapacity(capacity int) {
}
func (byteBuffer *ByteBuffer) Clear() {
byteBuffer.writeIndex = 0
byteBuffer.readIndex = 0
byteBuffer.writeOffset = 0
byteBuffer.readOffset = 0
}
func (byteBuffer *ByteBuffer) IsReadable() bool {
return byteBuffer.writeIndex > byteBuffer.readIndex
return byteBuffer.writeOffset > byteBuffer.readOffset
}
// -------------------------------------------------write/read-------------------------------------------------
@@ -122,55 +126,55 @@ func BytesToInt(b []byte) int {
func (byteBuffer *ByteBuffer) WriteBool(value bool) {
byteBuffer.EnsureCapacity(1)
if value {
byteBuffer.buffer[byteBuffer.writeIndex] = 1
byteBuffer.buffer[byteBuffer.writeOffset] = 1
} else {
byteBuffer.buffer[byteBuffer.writeIndex] = 0
byteBuffer.buffer[byteBuffer.writeOffset] = 0
}
byteBuffer.writeIndex++
byteBuffer.writeOffset++
}
func (byteBuffer *ByteBuffer) ReadBool() bool {
var byteValue = byteBuffer.buffer[byteBuffer.readIndex]
byteBuffer.readIndex++
var byteValue = byteBuffer.buffer[byteBuffer.readOffset]
byteBuffer.readOffset++
return byteValue == 1
}
func (byteBuffer *ByteBuffer) WriteByte(value int8) {
byteBuffer.EnsureCapacity(1)
byteBuffer.buffer[byteBuffer.writeIndex] = byte(value)
byteBuffer.writeIndex++
byteBuffer.buffer[byteBuffer.writeOffset] = byte(value)
byteBuffer.writeOffset++
}
func (byteBuffer *ByteBuffer) ReadByte() int8 {
var byteValue = byteBuffer.buffer[byteBuffer.readIndex]
byteBuffer.readIndex++
var byteValue = byteBuffer.buffer[byteBuffer.readOffset]
byteBuffer.readOffset++
return int8(byteValue)
}
func (byteBuffer *ByteBuffer) WriteUByte(value byte) {
byteBuffer.EnsureCapacity(1)
byteBuffer.buffer[byteBuffer.writeIndex] = value
byteBuffer.writeIndex++
byteBuffer.buffer[byteBuffer.writeOffset] = value
byteBuffer.writeOffset++
}
func (byteBuffer *ByteBuffer) ReadUByte() byte {
var byteValue = byteBuffer.buffer[byteBuffer.readIndex]
byteBuffer.readIndex++
var byteValue = byteBuffer.buffer[byteBuffer.readOffset]
byteBuffer.readOffset++
return byteValue
}
func (byteBuffer *ByteBuffer) WriteUBytes(bytes []byte) {
var length = len(bytes)
byteBuffer.EnsureCapacity(length)
copy(byteBuffer.buffer[byteBuffer.writeIndex:], bytes)
byteBuffer.writeIndex += length
copy(byteBuffer.buffer[byteBuffer.writeOffset:], bytes)
byteBuffer.writeOffset += length
}
func (byteBuffer *ByteBuffer) ReadUBytes(length int) []byte {
var readOffset = byteBuffer.readIndex
var endOffset = byteBuffer.readIndex + length
var readOffset = byteBuffer.readOffset
var endOffset = byteBuffer.readOffset + length
var bytes = byteBuffer.buffer[readOffset:endOffset]
byteBuffer.readIndex += length
byteBuffer.readOffset += length
return bytes
}
@@ -514,7 +518,7 @@ func Read(buffer *ByteBuffer) any {
}
// -------------------------------------------------CutDown-------------------------------------------------
func (byteBuffer *ByteBuffer) WriteBooleanArray(array []bool) {
func (byteBuffer *ByteBuffer) WriteBoolArray(array []bool) {
if array == nil {
byteBuffer.WriteInt(0)
} else {
@@ -525,7 +529,7 @@ func (byteBuffer *ByteBuffer) WriteBooleanArray(array []bool) {
}
}
func (byteBuffer *ByteBuffer) ReadBooleanArray() []bool {
func (byteBuffer *ByteBuffer) ReadBoolArray() []bool {
var size = byteBuffer.ReadInt()
var array = make([]bool, size)
if size > 0 {
@@ -17,7 +17,7 @@ func (protocol ${protocol_name}) read(buffer *ByteBuffer) any {
if length == 0 {
return packet
}
var beforeReadIndex = buffer.ReadOffset()
var beforeReadIndex = buffer.GetReadOffset()
${protocol_read_deserialization}
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
@@ -16,7 +16,7 @@ func (protocol ${protocol_name}) read(buffer *ByteBuffer) any {
if length == 0 {
return packet
}
var beforeReadIndex = buffer.ReadOffset()
var beforeReadIndex = buffer.GetReadOffset()
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
@@ -48,8 +48,8 @@ public class ByteBuffer {
public void setWriteOffset(int writeIndex) {
if (writeIndex > buffer.length) {
throw new RuntimeException("writeIndex[" + writeIndex + "] out of bounds exception: readerIndex: " + readOffset +
", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.length);
throw new RuntimeException("writeIndex[" + writeIndex + "] out of bounds exception: readOffset: " + readOffset +
", writeOffset: " + writeOffset + "(expected: 0 <= readOffset <= writeOffset <= capacity:" + buffer.length + ")");
}
writeOffset = writeIndex;
}
@@ -60,8 +60,8 @@ public class ByteBuffer {
public void setReadOffset(int readIndex) {
if (readIndex > writeOffset) {
throw new RuntimeException("readIndex[" + readIndex + "] out of bounds exception: readerIndex: " + readOffset +
", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.length);
throw new RuntimeException("readIndex[" + readIndex + "] out of bounds exception: readOffset: " + readOffset +
", writeOffset: " + writeOffset + "(expected: 0 <= readOffset <= writeOffset <= capacity:" + buffer.length + ")");
}
readOffset = readIndex;
}
@@ -40,8 +40,8 @@ class ByteBuffer {
fun setWriteOffset(writeIndex: Int) {
if (writeIndex > buffer.size) {
throw RuntimeException(
"writeIndex[" + writeIndex + "] out of bounds exception: readerIndex: " + readOffset +
", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.size
"writeIndex[" + writeIndex + "] out of bounds exception: readOffset: " + readOffset +
", writeOffset: " + writeOffset + "(expected: 0 <= readOffset <= writeOffset <= capacity:" + buffer.size + ")"
)
}
writeOffset = writeIndex
@@ -54,8 +54,8 @@ class ByteBuffer {
fun setReadOffset(readIndex: Int) {
if (readIndex > writeOffset) {
throw RuntimeException(
"readIndex[" + readIndex + "] out of bounds exception: readerIndex: " + readOffset +
", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.size
"readIndex[" + readIndex + "] out of bounds exception: readOffset: " + readOffset +
", writeOffset: " + writeOffset + "(expected: 0 <= readOffsetIndex <= writeOffset <= capacity:" + buffer.size + ")"
)
}
readOffset = readIndex
+23 -19
View File
@@ -14,8 +14,8 @@ local zeroByte = string.char(0)
local ByteBuffer = {}
local trueBooleanStrValue = string.char(1)
local falseBooleanStrValue = string.char(0)
local trueBoolStrValue = string.char(1)
local falseBoolStrValue = string.char(0)
function serializeTableToJson(tbl)
local res = {}
@@ -127,15 +127,19 @@ function ByteBuffer:compatibleRead(beforeReadIndex, length)
end
-------------------------------------get和set-------------------------------------
function ByteBuffer:getBuffer()
return self.buffer
end
function ByteBuffer:getWriteOffset()
return self.writeOffset
end
function ByteBuffer:setWriteOffset(writeOffset)
if writeOffset > #self.buffer + 1 then
error(string.format("writeOffset: %s index out of bounds exception: readerIndex: %s, writerIndex: %s, (expected: 0 <= readerIndex <= writerIndex <= capacity: %s)", writeOffset, self.readOffset, self.writeOffset, #self.buffer))
function ByteBuffer:setWriteOffset(writeIndex)
if writeIndex > #self.buffer + 1 then
error(string.format("writeIndex: %s index out of bounds exception: readOffset: %s, writerOffset: %s, (expected: 0 <= readOffset <= writeOffset <= capacity: %s)", writeIndex, self.readOffset, self.writeOffset, #self.buffer))
end
self.writeOffset = writeOffset
self.writeOffset = writeIndex
return self
end
@@ -143,11 +147,11 @@ function ByteBuffer:getReadOffset()
return self.readOffset
end
function ByteBuffer:setReadOffset(readOffset)
if readOffset > self.writeOffset then
error(string.format("readOffset: %s index out of bounds exception: readerIndex: %s, writerIndex: %s, (expected: 0 <= readerIndex <= writerIndex <= capacity: %s)", readOffset, self.readOffset, self.writeOffset, #self.buffer))
function ByteBuffer:setReadOffset(readIndex)
if readIndex > self.writeOffset then
error(string.format("readIndex: %s index out of bounds exception: readOffset: %s, writerIndex: %s, (expected: 0 <= readOffset <= writeOffset <= capacity: %s)", readIndex, self.readOffset, self.writeOffset, #self.buffer))
end
self.readOffset = readOffset
self.readOffset = readIndex
return self
end
@@ -166,19 +170,19 @@ end
-------------------------------------write和read-------------------------------------
--bool
function ByteBuffer:writeBoolean(boolValue)
function ByteBuffer:writeBool(boolValue)
if boolValue then
self:writeRawByteStr(trueBooleanStrValue)
self:writeRawByteStr(trueBoolStrValue)
else
self:writeRawByteStr(falseBooleanStrValue)
self:writeRawByteStr(falseBoolStrValue)
end
return self
end
function ByteBuffer:readBoolean()
function ByteBuffer:readBool()
-- When char > 256, the readUByte method will show an error.
-- So, we have to use readChar
return self:readRawByteStr() == trueBooleanStrValue
return self:readRawByteStr() == trueBoolStrValue
end
@@ -527,24 +531,24 @@ function ByteBuffer:readPacket(protocolId)
return protocolRegistration:read(self)
end
function ByteBuffer:writeBooleanArray(array)
function ByteBuffer:writeBoolArray(array)
if array == nil then
self:writeInt(0)
else
self:writeInt(#array)
for index, element in pairs(array) do
self:writeBoolean(element)
self:writeBool(element)
end
end
return self
end
function ByteBuffer:readBooleanArray()
function ByteBuffer:readBoolArray()
local array = {}
local size = self:readInt()
if size > 0 then
for index = 1, size do
table.insert(array, self:readBoolean())
table.insert(array, self:readBool())
end
end
return array
@@ -61,8 +61,8 @@ class ByteBuffer
public function setWriteOffset(int $writeIndex): void
{
if ($writeIndex > strlen($this->buffer)) {
throw new Exception("writeIndex[" . $writeIndex . "] out of bounds exception: readerIndex: " . $this->readOffset .
", writerIndex: " . $this->writeOffset . "(expected: 0 <= readerIndex <= writerIndex <= capacity:" . strlen($this->buffer));
throw new Exception("writeIndex[" . $writeIndex . "] out of bounds exception: readOffset: " . $this->readOffset .
", writeOffset: " . $this->writeOffset . "(expected: 0 <= readOffset <= writeOffset <= capacity:" . strlen($this->buffer) . ")");
}
$this->writeOffset = $writeIndex;
}
@@ -78,8 +78,8 @@ class ByteBuffer
public function setReadOffset(int $readIndex): void
{
if ($readIndex > $this->writeOffset) {
throw new Exception("readIndex[" . $readIndex . "] out of bounds exception: readerIndex: " . $this->readOffset .
", writerIndex: " . $this->writeOffset . "(expected: 0 <= readerIndex <= writerIndex <= capacity:" . strlen($this->buffer));
throw new Exception("readIndex[" . $readIndex . "] out of bounds exception: readOffset: " . $this->readOffset .
", writeOffset: " . $this->writeOffset . "(expected: 0 <= readOffset <= writeOffset <= capacity:" . strlen($this->buffer));
}
$this->readOffset = $readIndex;
}
@@ -34,26 +34,29 @@ class ByteBuffer():
def compatibleRead(self, beforeReadIndex, length):
return length != -1 and self.getReadOffset() < length + beforeReadIndex
def getBuffer(self):
return self.buffer
def getWriteOffset(self):
return self.writeOffset
def setWriteOffset(self, writeOffset):
if writeOffset > len(self.buffer):
raise ValueError("index out of bounds exception:readerIndex:" + str(self.readOffset) +
", writerIndex:" + str(self.writeOffset) +
"(expected:0 <= readerIndex <= writerIndex <= capacity:" + str(len(self.buffer)))
self.writeOffset = writeOffset
def setWriteOffset(self, writeIndex):
if writeIndex > len(self.buffer):
raise ValueError("writeIndex out of bounds exception:readOffset:" + str(self.readOffset) +
", writeOffset:" + str(self.writeOffset) +
"(expected:0 <= readOffset <= writeOffset <= capacity:" + str(len(self.buffer)))
self.writeOffset = writeIndex
pass
def getReadOffset(self):
return self.readOffset
def setReadOffset(self, readOffset):
if readOffset > self.writeOffset:
raise ValueError("index out of bounds exception:readerIndex:" + str(self.readOffset) +
", writerIndex:" + str(self.writeOffset) +
"(expected:0 <= readerIndex <= writerIndex <= capacity:" + str(len(self.buffer)))
self.readOffset = readOffset
def setReadOffset(self, readIndex):
if readIndex > self.writeOffset:
raise ValueError("readIndex out of bounds exception:readOffset:" + str(self.readOffset) +
", writeOffset:" + str(self.writeOffset) +
"(expected:0 <= readOffset <= writeOffset <= capacity:" + str(len(self.buffer)))
self.readOffset = readIndex
pass
def isReadable(self):
@@ -362,7 +365,7 @@ class ByteBuffer():
protocolRegistration = ProtocolManager.getProtocol(protocolId)
return protocolRegistration.read(self)
def writeBooleanArray(self, array):
def writeBoolArray(self, array):
if array is None:
self.writeInt(0)
else:
@@ -371,7 +374,7 @@ class ByteBuffer():
self.writeBool(element)
pass
def readBooleanArray(self):
def readBoolArray(self):
array = []
size = self.readInt()
if size > 0:
@@ -755,7 +758,7 @@ class ByteBuffer():
map[key] = value
return map
def writeBooleanSet(self, value):
def writeBoolSet(self, value):
if value is None:
self.writeInt(0)
else:
@@ -764,7 +767,7 @@ class ByteBuffer():
self.writeBool(element)
pass
def readBooleanSet(self):
def readBoolSet(self):
value = set()
size = self.readInt()
if size > 0:
@@ -43,14 +43,14 @@ class ByteBuffer {
def getWriteOffset: Int = writeOffset
def setWriteOffset(writeIndex: Int): Unit = {
if (writeIndex > buffer.length) throw new RuntimeException("writeIndex[" + writeIndex + "] out of bounds exception: readerIndex: " + readOffset + ", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.length)
if (writeIndex > buffer.length) throw new RuntimeException("writeIndex[" + writeIndex + "] out of bounds exception: readOffset: " + readOffset + ", writeOffset: " + writeOffset + "(expected: 0 <= readOffset <= writeOffset <= capacity:" + buffer.length + ")")
writeOffset = writeIndex
}
def getReadOffset: Int = readOffset
def setReadOffset(readIndex: Int): Unit = {
if (readIndex > writeOffset) throw new RuntimeException("readIndex[" + readIndex + "] out of bounds exception: readerIndex: " + readOffset + ", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.length)
if (readIndex > writeOffset) throw new RuntimeException("readIndex[" + readIndex + "] out of bounds exception: readOffset: " + readOffset + ", writeOffset: " + writeOffset + "(expected: 0 <= readOffset <= writeOffset <= capacity:" + buffer.length + ")")
readOffset = readIndex
}
+2 -1
View File
@@ -82,6 +82,7 @@ func _ready():
func test():
ProtocolManager.initProtocol()
var buffer = ByteBuffer.new()
var filePath = "res://compatible/normal-out-inner-inner-compatible.bytes"
@@ -92,7 +93,7 @@ func test():
var file = FileAccess.open(filePath, FileAccess.READ)
var poolByteArray = file.get_buffer(file.get_length())
buffer.writePackedByteArray(poolByteArray)
buffer.writeBytes(poolByteArray)
var packet = ProtocolManager.read(buffer)
print(packet)
+18 -11
View File
@@ -39,9 +39,12 @@ func compatibleRead(beforeReadIndex: int, length: int) -> bool:
return length != -1 && getReadOffset() < length + beforeReadIndex
# -------------------------------------------------get/set-------------------------------------------------
func getBuffer() -> StreamPeerBuffer:
return buffer
func setWriteOffset(writeIndex: int) -> void:
if (writeIndex > buffer.get_size()):
var template = "writeIndex[{}] out of bounds exception: readerIndex: {}, writerIndex: {} (expected: 0 <= readerIndex <= writerIndex <= capacity: {})"
var template = "writeIndex[{}] out of bounds exception: readOffset: {}, writeOffset: {} (expected: 0 <= readOffset <= writeOffset <= capacity: {})"
printerr(template.format([writeIndex, readOffset, writeOffset, buffer.get_size()], "{}"))
return
writeOffset = writeIndex
@@ -52,7 +55,7 @@ func getWriteOffset() -> int:
func setReadOffset(readIndex: int) -> void:
if (readIndex > writeOffset):
var template = "readIndex[{}] out of bounds exception: readerIndex: {}, writerIndex: {} (expected: 0 <= readerIndex <= writerIndex <= capacity: {})"
var template = "readIndex[{}] out of bounds exception: readOffset: {}, writeOffset: {} (expected: 0 <= readOffset <= writeOffset <= capacity: {})"
printerr(template.format([readIndex, readOffset, writeOffset, buffer.size()], "{}"))
return
readOffset = readIndex
@@ -64,15 +67,21 @@ func getReadOffset() -> int:
func isReadable() -> bool:
return writeOffset > readOffset
func toBytes() -> PackedByteArray:
return buffer.data_array.slice(0, writeOffset)
func newInstance(protocolId: int):
return ProtocolManager.newInstance(protocolId)
# -------------------------------------------------write/read-------------------------------------------------
func writePackedByteArray(value: PackedByteArray):
func writeBytes(value: PackedByteArray):
var length: int = value.size()
buffer.put_partial_data(value)
writeOffset += length
pass
func toPackedByteArray() -> PackedByteArray:
return buffer.data_array.slice(0, writeOffset)
func readBytes(length: int) -> PackedByteArray:
return buffer.data_array.slice(0, length)
func writeBool(value: bool) -> void:
var byte: int = 1 if value else 0
@@ -303,10 +312,7 @@ func readPacket(protocolId):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
return protocolRegistration.read(self)
func newInstance(protocolId: int):
return ProtocolManager.newInstance(protocolId)
func writeBooleanArray(array):
func writeBoolArray(array):
if (array == null):
writeInt(0)
else:
@@ -315,7 +321,7 @@ func writeBooleanArray(array):
writeBool(element)
pass
func readBooleanArray() -> Array[bool]:
func readBoolArray() -> Array[bool]:
var array: Array[bool] = []
var size = readInt()
if (size > 0):
@@ -454,7 +460,8 @@ func writePacketArray(array, protocolId):
func readPacketArray(protocolId):
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
var array = Array([], typeof(protocolRegistration), StringName("RefCounted"), protocolRegistration)
var protocol = ProtocolManager.getProtocolClass(protocolId)
var array = Array([], typeof(protocol), StringName("RefCounted"), protocol)
var size = readInt()
if (size > 0):
for index in range(size):
@@ -6,25 +6,38 @@ const ObjectA = preload("res://zfoogd/packet/ObjectA.gd")
const ObjectB = preload("res://zfoogd/packet/ObjectB.gd")
const SimpleObject = preload("res://zfoogd/packet/SimpleObject.gd")
const protocols: Dictionary = {
0: EmptyObject,
1: VeryBigObject,
100: ComplexObject,
101: NormalObject,
102: ObjectA,
103: ObjectB,
104: SimpleObject
}
static var protocols: Dictionary = {}
static var protocolClassMap: Dictionary = {}
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 = protocols[protocolId]
var protocol = protocolClassMap[protocolId]
return protocol.new()
static func write(buffer, packet):
var protocolId: int = packet.PROTOCOL_ID
var protocolId: int = packet.protocolId()
buffer.writeShort(protocolId)
var protocol = protocols[protocolId]
protocol.write(buffer, packet)
@@ -1,7 +1,7 @@
const PROTOCOL_ID = 100
const PROTOCOL_CLASS_NAME = "ComplexObject"
const ByteBuffer = preload("res://zfoogd/ByteBuffer.gd")
const ObjectA = preload("res://zfoogd/packet/ObjectA.gd")
const ObjectB = preload("res://zfoogd/packet/ObjectB.gd")
# 复杂的对象,包括了各种复杂的结构,数组,List,Set,Map
# byte类型,最简单的整形
var a: int
@@ -57,344 +57,351 @@ var sssss: Array # Set<Map<number, string>>
var myCompatible: int
var myObject: ObjectA
func protocolId() -> int:
return 100
func get_class_name() -> String:
return "ComplexObject"
func _to_string() -> String:
const jsonTemplate = "{a:{}, aa:{}, aaa:{}, aaaa:{}, b:{}, bb:{}, bbb:{}, bbbb:{}, c:{}, cc:{}, ccc:{}, cccc:{}, d:{}, dd:{}, ddd:{}, dddd:{}, e:{}, ee:{}, eee:{}, eeee:{}, f:{}, ff:{}, fff:{}, ffff:{}, g:{}, gg:{}, ggg:{}, gggg:{}, jj:'{}', jjj:{}, kk:{}, kkk:{}, l:{}, ll:{}, lll:{}, llll:{}, lllll:{}, m:{}, mm:{}, mmm:{}, mmmm:{}, mmmmm:{}, s:{}, ss:{}, sss:{}, ssss:{}, sssss:{}, myCompatible:{}, 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), JSON.stringify(self.m), JSON.stringify(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, "{}")
static func write(buffer, packet):
if (packet == null):
buffer.writeInt(0)
return
var beforeWriteIndex = buffer.getWriteOffset()
buffer.writeInt(36962)
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.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)
buffer.writeInt(packet.myCompatible)
buffer.writePacket(packet.myObject, 102)
buffer.adjustPadding(36962, beforeWriteIndex)
pass
class ComplexObjectRegistration:
func write(buffer: ByteBuffer, packet: Object):
if (packet == null):
buffer.writeInt(0)
return
var beforeWriteIndex = buffer.getWriteOffset()
buffer.writeInt(36962)
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.writeBoolArray(packet.ggg)
buffer.writeBoolArray(packet.gggg)
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)
buffer.writeInt(packet.myCompatible)
buffer.writePacket(packet.myObject, 102)
buffer.adjustPadding(36962, beforeWriteIndex)
pass
static func read(buffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(PROTOCOL_ID)
var result0 = buffer.readByte()
packet.a = result0
var result1 = buffer.readByte()
packet.aa = result1
var array2 = buffer.readByteArray()
packet.aaa = array2
var array3 = buffer.readByteArray()
packet.aaaa = array3
var result4 = buffer.readShort()
packet.b = result4
var result5 = buffer.readShort()
packet.bb = result5
var array6 = buffer.readShortArray()
packet.bbb = array6
var array7 = buffer.readShortArray()
packet.bbbb = array7
var result8 = buffer.readInt()
packet.c = result8
var result9 = buffer.readInt()
packet.cc = result9
var array10 = buffer.readIntArray()
packet.ccc = array10
var array11 = buffer.readIntArray()
packet.cccc = array11
var result12 = buffer.readLong()
packet.d = result12
var result13 = buffer.readLong()
packet.dd = result13
var array14 = buffer.readLongArray()
packet.ddd = array14
var array15 = buffer.readLongArray()
packet.dddd = array15
var result16 = buffer.readFloat()
packet.e = result16
var result17 = buffer.readFloat()
packet.ee = result17
var array18 = buffer.readFloatArray()
packet.eee = array18
var array19 = buffer.readFloatArray()
packet.eeee = array19
var result20 = buffer.readDouble()
packet.f = result20
var result21 = buffer.readDouble()
packet.ff = result21
var array22 = buffer.readDoubleArray()
packet.fff = array22
var array23 = buffer.readDoubleArray()
packet.ffff = array23
var result24 = buffer.readBool()
packet.g = result24
var result25 = buffer.readBool()
packet.gg = result25
var array26 = buffer.readBooleanArray()
packet.ggg = array26
var array27 = buffer.readBooleanArray()
packet.gggg = array27
var result28 = buffer.readString()
packet.jj = result28
var array29 = buffer.readStringArray()
packet.jjj = array29
var result30 = buffer.readPacket(102)
packet.kk = result30
var array31 = buffer.readPacketArray(102)
packet.kkk = array31
var list32 = buffer.readIntArray()
packet.l = list32
var result33 = []
var size35 = buffer.readInt()
if (size35 > 0):
for index34 in range(size35):
var result36 = []
var size38 = buffer.readInt()
if (size38 > 0):
for index37 in range(size38):
var list39 = buffer.readIntArray()
result36.append(list39)
result33.append(result36)
packet.ll = result33
var result40 = []
var size42 = buffer.readInt()
if (size42 > 0):
for index41 in range(size42):
var list43 = buffer.readPacketArray(102)
result40.append(list43)
packet.lll = result40
var list44 = buffer.readStringArray()
packet.llll = list44
var result45 = []
var size47 = buffer.readInt()
if (size47 > 0):
for index46 in range(size47):
var map48 = buffer.readIntStringMap()
result45.append(map48)
packet.lllll = result45
var map49 = buffer.readIntStringMap()
packet.m = map49
var map50 = buffer.readIntPacketMap(102)
packet.mm = map50
var result51 = {}
var size52 = buffer.readInt()
if (size52 > 0):
for index53 in range(size52):
var result54 = buffer.readPacket(102)
var list55 = buffer.readIntArray()
result51[result54] = list55
packet.mmm = result51
var result56 = {}
var size57 = buffer.readInt()
if (size57 > 0):
for index58 in range(size57):
var result59 = []
var size61 = buffer.readInt()
if (size61 > 0):
for index60 in range(size61):
var list62 = buffer.readPacketArray(102)
result59.append(list62)
var result63 = []
var size65 = buffer.readInt()
if (size65 > 0):
for index64 in range(size65):
var result66 = []
var size68 = buffer.readInt()
if (size68 > 0):
for index67 in range(size68):
var list69 = buffer.readIntArray()
result66.append(list69)
result63.append(result66)
result56[result59] = result63
packet.mmmm = result56
var result70 = {}
var size71 = buffer.readInt()
if (size71 > 0):
for index72 in range(size71):
var result73 = []
var size75 = buffer.readInt()
if (size75 > 0):
for index74 in range(size75):
var map76 = buffer.readIntStringMap()
result73.append(map76)
var result77 = []
var size79 = buffer.readInt()
if (size79 > 0):
for index78 in range(size79):
var map80 = buffer.readIntStringMap()
result77.append(map80)
result70[result73] = result77
packet.mmmmm = result70
var set81 = buffer.readIntArray()
packet.s = set81
var result82 = []
var size84 = buffer.readInt()
if (size84 > 0):
for index83 in range(size84):
var result85 = []
var size87 = buffer.readInt()
if (size87 > 0):
for index86 in range(size87):
var list88 = buffer.readIntArray()
result85.append(list88)
result82.append(result85)
packet.ss = result82
var result89 = []
var size91 = buffer.readInt()
if (size91 > 0):
for index90 in range(size91):
var set92 = buffer.readPacketArray(102)
result89.append(set92)
packet.sss = result89
var set93 = buffer.readStringArray()
packet.ssss = set93
var result94 = []
var size96 = buffer.readInt()
if (size96 > 0):
for index95 in range(size96):
var map97 = buffer.readIntStringMap()
result94.append(map97)
packet.sssss = result94
if buffer.compatibleRead(beforeReadIndex, length):
var result98 = buffer.readInt()
packet.myCompatible = result98;
if buffer.compatibleRead(beforeReadIndex, length):
var result99 = buffer.readPacket(102)
packet.myObject = result99;
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
func read(buffer: ByteBuffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(100)
var result0 = buffer.readByte()
packet.a = result0
var result1 = buffer.readByte()
packet.aa = result1
var array2 = buffer.readByteArray()
packet.aaa = array2
var array3 = buffer.readByteArray()
packet.aaaa = array3
var result4 = buffer.readShort()
packet.b = result4
var result5 = buffer.readShort()
packet.bb = result5
var array6 = buffer.readShortArray()
packet.bbb = array6
var array7 = buffer.readShortArray()
packet.bbbb = array7
var result8 = buffer.readInt()
packet.c = result8
var result9 = buffer.readInt()
packet.cc = result9
var array10 = buffer.readIntArray()
packet.ccc = array10
var array11 = buffer.readIntArray()
packet.cccc = array11
var result12 = buffer.readLong()
packet.d = result12
var result13 = buffer.readLong()
packet.dd = result13
var array14 = buffer.readLongArray()
packet.ddd = array14
var array15 = buffer.readLongArray()
packet.dddd = array15
var result16 = buffer.readFloat()
packet.e = result16
var result17 = buffer.readFloat()
packet.ee = result17
var array18 = buffer.readFloatArray()
packet.eee = array18
var array19 = buffer.readFloatArray()
packet.eeee = array19
var result20 = buffer.readDouble()
packet.f = result20
var result21 = buffer.readDouble()
packet.ff = result21
var array22 = buffer.readDoubleArray()
packet.fff = array22
var array23 = buffer.readDoubleArray()
packet.ffff = array23
var result24 = buffer.readBool()
packet.g = result24
var result25 = buffer.readBool()
packet.gg = result25
var array26 = buffer.readBoolArray()
packet.ggg = array26
var array27 = buffer.readBoolArray()
packet.gggg = array27
var result28 = buffer.readString()
packet.jj = result28
var array29 = buffer.readStringArray()
packet.jjj = array29
var result30 = buffer.readPacket(102)
packet.kk = result30
var array31 = buffer.readPacketArray(102)
packet.kkk = array31
var list32 = buffer.readIntArray()
packet.l = list32
var result33 = []
var size35 = buffer.readInt()
if (size35 > 0):
for index34 in range(size35):
var result36 = []
var size38 = buffer.readInt()
if (size38 > 0):
for index37 in range(size38):
var list39 = buffer.readIntArray()
result36.append(list39)
result33.append(result36)
packet.ll = result33
var result40 = []
var size42 = buffer.readInt()
if (size42 > 0):
for index41 in range(size42):
var list43 = buffer.readPacketArray(102)
result40.append(list43)
packet.lll = result40
var list44 = buffer.readStringArray()
packet.llll = list44
var result45 = []
var size47 = buffer.readInt()
if (size47 > 0):
for index46 in range(size47):
var map48 = buffer.readIntStringMap()
result45.append(map48)
packet.lllll = result45
var map49 = buffer.readIntStringMap()
packet.m = map49
var map50 = buffer.readIntPacketMap(102)
packet.mm = map50
var result51 = {}
var size52 = buffer.readInt()
if (size52 > 0):
for index53 in range(size52):
var result54 = buffer.readPacket(102)
var list55 = buffer.readIntArray()
result51[result54] = list55
packet.mmm = result51
var result56 = {}
var size57 = buffer.readInt()
if (size57 > 0):
for index58 in range(size57):
var result59 = []
var size61 = buffer.readInt()
if (size61 > 0):
for index60 in range(size61):
var list62 = buffer.readPacketArray(102)
result59.append(list62)
var result63 = []
var size65 = buffer.readInt()
if (size65 > 0):
for index64 in range(size65):
var result66 = []
var size68 = buffer.readInt()
if (size68 > 0):
for index67 in range(size68):
var list69 = buffer.readIntArray()
result66.append(list69)
result63.append(result66)
result56[result59] = result63
packet.mmmm = result56
var result70 = {}
var size71 = buffer.readInt()
if (size71 > 0):
for index72 in range(size71):
var result73 = []
var size75 = buffer.readInt()
if (size75 > 0):
for index74 in range(size75):
var map76 = buffer.readIntStringMap()
result73.append(map76)
var result77 = []
var size79 = buffer.readInt()
if (size79 > 0):
for index78 in range(size79):
var map80 = buffer.readIntStringMap()
result77.append(map80)
result70[result73] = result77
packet.mmmmm = result70
var set81 = buffer.readIntArray()
packet.s = set81
var result82 = []
var size84 = buffer.readInt()
if (size84 > 0):
for index83 in range(size84):
var result85 = []
var size87 = buffer.readInt()
if (size87 > 0):
for index86 in range(size87):
var list88 = buffer.readIntArray()
result85.append(list88)
result82.append(result85)
packet.ss = result82
var result89 = []
var size91 = buffer.readInt()
if (size91 > 0):
for index90 in range(size91):
var set92 = buffer.readPacketArray(102)
result89.append(set92)
packet.sss = result89
var set93 = buffer.readStringArray()
packet.ssss = set93
var result94 = []
var size96 = buffer.readInt()
if (size96 > 0):
for index95 in range(size96):
var map97 = buffer.readIntStringMap()
result94.append(map97)
packet.sssss = result94
if buffer.compatibleRead(beforeReadIndex, length):
var result98 = buffer.readInt()
packet.myCompatible = result98
if buffer.compatibleRead(beforeReadIndex, length):
var result99 = buffer.readPacket(102)
packet.myObject = result99
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
@@ -1,28 +1,34 @@
const PROTOCOL_ID = 0
const PROTOCOL_CLASS_NAME = "EmptyObject"
const ByteBuffer = preload("res://zfoogd/ByteBuffer.gd")
func protocolId() -> int:
return 0
func get_class_name() -> String:
return "EmptyObject"
func _to_string() -> String:
const jsonTemplate = "{}"
var params = []
return jsonTemplate.format(params, "{}")
static func write(buffer, packet):
if (packet == null):
buffer.writeInt(0)
return
buffer.writeInt(-1)
pass
class EmptyObjectRegistration:
func write(buffer: ByteBuffer, packet: Object):
if (packet == null):
buffer.writeInt(0)
return
buffer.writeInt(-1)
pass
static func read(buffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(PROTOCOL_ID)
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
func read(buffer: ByteBuffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(0)
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
@@ -1,11 +1,12 @@
const PROTOCOL_ID = 101
const PROTOCOL_CLASS_NAME = "NormalObject"
const ByteBuffer = preload("res://zfoogd/ByteBuffer.gd")
const ObjectA = preload("res://zfoogd/packet/ObjectA.gd")
const ObjectB = preload("res://zfoogd/packet/ObjectB.gd")
# 常规的对象,取所有语言语法的交集,基本上所有语言都支持下面的语法
var a: int
var aaa: Array[int]
var b: int
# 整数类型
var c: int
var d: int
var e: float
@@ -24,88 +25,95 @@ var ssss: Array[String]
var outCompatibleValue: int
var outCompatibleValue2: int
func protocolId() -> int:
return 101
func get_class_name() -> String:
return "NormalObject"
func _to_string() -> String:
const jsonTemplate = "{a:{}, aaa:{}, b:{}, c:{}, d:{}, e:{}, f:{}, g:{}, jj:'{}', kk:{}, l:{}, ll:{}, lll:{}, llll:{}, m:{}, mm:{}, s:{}, ssss:{}, outCompatibleValue:{}, outCompatibleValue2:{}}"
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), JSON.stringify(self.m), JSON.stringify(self.mm), JSON.stringify(self.s), JSON.stringify(self.ssss), self.outCompatibleValue, self.outCompatibleValue2]
return jsonTemplate.format(params, "{}")
static func write(buffer, packet):
if (packet == null):
buffer.writeInt(0)
return
var beforeWriteIndex = buffer.getWriteOffset()
buffer.writeInt(857)
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)
buffer.writeInt(packet.outCompatibleValue)
buffer.writeInt(packet.outCompatibleValue2)
buffer.adjustPadding(857, beforeWriteIndex)
pass
class NormalObjectRegistration:
func write(buffer: ByteBuffer, packet: Object):
if (packet == null):
buffer.writeInt(0)
return
var beforeWriteIndex = buffer.getWriteOffset()
buffer.writeInt(857)
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)
buffer.writeInt(packet.outCompatibleValue)
buffer.writeInt(packet.outCompatibleValue2)
buffer.adjustPadding(857, beforeWriteIndex)
pass
static func read(buffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(PROTOCOL_ID)
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
if buffer.compatibleRead(beforeReadIndex, length):
var result18 = buffer.readInt()
packet.outCompatibleValue = result18;
if buffer.compatibleRead(beforeReadIndex, length):
var result19 = buffer.readInt()
packet.outCompatibleValue2 = result19;
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
func read(buffer: ByteBuffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
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
if buffer.compatibleRead(beforeReadIndex, length):
var result18 = buffer.readInt()
packet.outCompatibleValue = result18
if buffer.compatibleRead(beforeReadIndex, length):
var result19 = buffer.readInt()
packet.outCompatibleValue2 = result19
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
@@ -1,45 +1,52 @@
const PROTOCOL_ID = 102
const PROTOCOL_CLASS_NAME = "ObjectA"
const ByteBuffer = preload("res://zfoogd/ByteBuffer.gd")
const ObjectB = preload("res://zfoogd/packet/ObjectB.gd")
var a: int
var m: Dictionary # Map<number, string>
var objectB: ObjectB
var innerCompatibleValue: int
func protocolId() -> int:
return 102
func get_class_name() -> String:
return "ObjectA"
func _to_string() -> String:
const jsonTemplate = "{a:{}, m:{}, objectB:{}, innerCompatibleValue:{}}"
var params = [self.a, JSON.stringify(self.m), self.objectB, self.innerCompatibleValue]
return jsonTemplate.format(params, "{}")
static func write(buffer, packet):
if (packet == null):
buffer.writeInt(0)
return
var beforeWriteIndex = buffer.getWriteOffset()
buffer.writeInt(201)
buffer.writeInt(packet.a)
buffer.writeIntStringMap(packet.m)
buffer.writePacket(packet.objectB, 103)
buffer.writeInt(packet.innerCompatibleValue)
buffer.adjustPadding(201, beforeWriteIndex)
pass
class ObjectARegistration:
func write(buffer: ByteBuffer, packet: Object):
if (packet == null):
buffer.writeInt(0)
return
var beforeWriteIndex = buffer.getWriteOffset()
buffer.writeInt(201)
buffer.writeInt(packet.a)
buffer.writeIntStringMap(packet.m)
buffer.writePacket(packet.objectB, 103)
buffer.writeInt(packet.innerCompatibleValue)
buffer.adjustPadding(201, beforeWriteIndex)
pass
static func read(buffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(PROTOCOL_ID)
var result0 = buffer.readInt()
packet.a = result0
var map1 = buffer.readIntStringMap()
packet.m = map1
var result2 = buffer.readPacket(103)
packet.objectB = result2
if buffer.compatibleRead(beforeReadIndex, length):
var result3 = buffer.readInt()
packet.innerCompatibleValue = result3;
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
func read(buffer: ByteBuffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
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
if buffer.compatibleRead(beforeReadIndex, length):
var result3 = buffer.readInt()
packet.innerCompatibleValue = result3
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
@@ -1,37 +1,43 @@
const PROTOCOL_ID = 103
const PROTOCOL_CLASS_NAME = "ObjectB"
const ByteBuffer = preload("res://zfoogd/ByteBuffer.gd")
var flag: bool
var innerCompatibleValue: int
func protocolId() -> int:
return 103
func get_class_name() -> String:
return "ObjectB"
func _to_string() -> String:
const jsonTemplate = "{flag:{}, innerCompatibleValue:{}}"
var params = [self.flag, self.innerCompatibleValue]
return jsonTemplate.format(params, "{}")
static func write(buffer, packet):
if (packet == null):
buffer.writeInt(0)
return
var beforeWriteIndex = buffer.getWriteOffset()
buffer.writeInt(4)
buffer.writeBool(packet.flag)
buffer.writeInt(packet.innerCompatibleValue)
buffer.adjustPadding(4, beforeWriteIndex)
pass
class ObjectBRegistration:
func write(buffer: ByteBuffer, packet: Object):
if (packet == null):
buffer.writeInt(0)
return
var beforeWriteIndex = buffer.getWriteOffset()
buffer.writeInt(4)
buffer.writeBool(packet.flag)
buffer.writeInt(packet.innerCompatibleValue)
buffer.adjustPadding(4, beforeWriteIndex)
pass
static func read(buffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(PROTOCOL_ID)
var result0 = buffer.readBool()
packet.flag = result0
if buffer.compatibleRead(beforeReadIndex, length):
var result1 = buffer.readInt()
packet.innerCompatibleValue = result1;
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
func read(buffer: ByteBuffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(103)
var result0 = buffer.readBool()
packet.flag = result0
if buffer.compatibleRead(beforeReadIndex, length):
var result1 = buffer.readInt()
packet.innerCompatibleValue = result1
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
@@ -1,34 +1,40 @@
const PROTOCOL_ID = 104
const PROTOCOL_CLASS_NAME = "SimpleObject"
const ByteBuffer = preload("res://zfoogd/ByteBuffer.gd")
var c: int
var g: bool
func protocolId() -> int:
return 104
func get_class_name() -> String:
return "SimpleObject"
func _to_string() -> String:
const jsonTemplate = "{c:{}, g:{}}"
var params = [self.c, self.g]
return jsonTemplate.format(params, "{}")
static func write(buffer, packet):
if (packet == null):
buffer.writeInt(0)
return
buffer.writeInt(-1)
buffer.writeInt(packet.c)
buffer.writeBool(packet.g)
pass
class SimpleObjectRegistration:
func write(buffer: ByteBuffer, packet: Object):
if (packet == null):
buffer.writeInt(0)
return
buffer.writeInt(-1)
buffer.writeInt(packet.c)
buffer.writeBool(packet.g)
pass
static func read(buffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(PROTOCOL_ID)
var result0 = buffer.readInt()
packet.c = result0
var result1 = buffer.readBool()
packet.g = result1
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
func read(buffer: ByteBuffer):
var length = buffer.readInt()
if (length == 0):
return null
var beforeReadIndex = buffer.getReadOffset()
var packet = buffer.newInstance(104)
var result0 = buffer.readInt()
packet.c = result0
var result1 = buffer.readBool()
packet.g = result1
if (length > 0):
buffer.setReadOffset(beforeReadIndex + length)
return packet
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -133,11 +133,11 @@ func packetTest() {
buffer.WriteUBytes(bytes)
var packet = zfoogo.Read(buffer)
fmt.Println(packet)
fmt.Println("source size ", buffer.WriteOffset())
fmt.Println("source size ", buffer.GetWriteOffset())
buffer.Clear()
zfoogo.Write(buffer, packet)
var newPacket = zfoogo.Read(buffer)
fmt.Println("target size ", buffer.WriteOffset())
fmt.Println("target size ", buffer.GetWriteOffset())
fmt.Println(newPacket)
}
+44 -40
View File
@@ -13,14 +13,14 @@ const maxSize int = 655537
var initArray []byte = make([]byte, initSize, initSize)
type ByteBuffer struct {
buffer []byte
writeIndex int
readIndex int
buffer []byte
writeOffset int
readOffset int
}
func (byteBuffer *ByteBuffer) AdjustPadding(predictionLength int, beforeWriteIndex int) {
// 因为写入的是可变长的int,如果预留的位置过多,则清除多余的位置
var currentWriteIndex = byteBuffer.WriteOffset()
var currentWriteIndex = byteBuffer.GetWriteOffset()
var predictionCount = byteBuffer.WriteIntCount(int32(predictionLength))
var length = currentWriteIndex - beforeWriteIndex - predictionCount
var lengthCount = byteBuffer.WriteIntCount(int32(length))
@@ -38,44 +38,48 @@ func (byteBuffer *ByteBuffer) AdjustPadding(predictionLength int, beforeWriteInd
}
func (byteBuffer *ByteBuffer) CompatibleRead(beforeReadIndex int, length int) bool {
return length != -1 && byteBuffer.readIndex < length+beforeReadIndex
return length != -1 && byteBuffer.readOffset < length+beforeReadIndex
}
// -------------------------------------------------get/set-------------------------------------------------
func (byteBuffer *ByteBuffer) WriteOffset() int {
return byteBuffer.writeIndex
func (byteBuffer *ByteBuffer) GetBuffer() []byte {
return byteBuffer.buffer
}
func (byteBuffer *ByteBuffer) GetWriteOffset() int {
return byteBuffer.writeOffset
}
func (byteBuffer *ByteBuffer) SetWriteOffset(writeIndex int) {
if writeIndex > len(byteBuffer.buffer) {
var error = fmt.Sprintf("writeIndex:[{%d}] out of bounds exception: readerIndex:[{%d}] , writerIndex:[{%d}] (expected: 0 <= readerIndex <= writerIndex <= capacity:[{%d}])", writeIndex, byteBuffer.readIndex, byteBuffer.writeIndex, len(byteBuffer.buffer))
var error = fmt.Sprintf("writeIndex:[{%d}] out of bounds exception: readOffset:[{%d}] , writeOffset:[{%d}] (expected: 0 <= readOffset <= writeOffset <= capacity:[{%d}])", writeIndex, byteBuffer.readOffset, byteBuffer.writeOffset, len(byteBuffer.buffer))
panic(error)
}
byteBuffer.writeIndex = writeIndex
byteBuffer.writeOffset = writeIndex
}
func (byteBuffer *ByteBuffer) ReadOffset() int {
return byteBuffer.readIndex
func (byteBuffer *ByteBuffer) GetReadOffset() int {
return byteBuffer.readOffset
}
func (byteBuffer *ByteBuffer) SetReadOffset(readIndex int) {
if readIndex > byteBuffer.writeIndex {
var error = fmt.Sprintf("readIndex:[{%d}] out of bounds exception: readerIndex:[{%d}] , writerIndex:[{%d}] (expected: 0 <= readerIndex <= writerIndex <= capacity:[{%d}])", readIndex, byteBuffer.readIndex, byteBuffer.writeIndex, len(byteBuffer.buffer))
if readIndex > byteBuffer.writeOffset {
var error = fmt.Sprintf("readIndex:[{%d}] out of bounds exception: readOffset:[{%d}] , writeOffset:[{%d}] (expected: 0 <= readOffset <= writeOffset <= capacity:[{%d}])", readIndex, byteBuffer.readOffset, byteBuffer.writeOffset, len(byteBuffer.buffer))
panic(error)
}
byteBuffer.readIndex = readIndex
byteBuffer.readOffset = readIndex
}
func (byteBuffer *ByteBuffer) ToBytes() []byte {
return byteBuffer.buffer[0:byteBuffer.writeIndex]
return byteBuffer.buffer[0:byteBuffer.writeOffset]
}
func (byteBuffer *ByteBuffer) ToString() string {
return fmt.Sprintf("writeIndex:[{%d}], readIndex:[{%d}], len:[{%d}], cap:[{%d}]", byteBuffer.writeIndex, byteBuffer.readIndex, len(byteBuffer.buffer), cap(byteBuffer.buffer))
return fmt.Sprintf("writeOffset:[{%d}], readOffset:[{%d}], len:[{%d}], cap:[{%d}]", byteBuffer.writeOffset, byteBuffer.readOffset, len(byteBuffer.buffer), cap(byteBuffer.buffer))
}
func (byteBuffer *ByteBuffer) GetCapacity() int {
return len(byteBuffer.buffer) - byteBuffer.writeIndex
return len(byteBuffer.buffer) - byteBuffer.writeOffset
}
func (byteBuffer *ByteBuffer) EnsureCapacity(capacity int) {
@@ -93,12 +97,12 @@ func (byteBuffer *ByteBuffer) EnsureCapacity(capacity int) {
}
func (byteBuffer *ByteBuffer) Clear() {
byteBuffer.writeIndex = 0
byteBuffer.readIndex = 0
byteBuffer.writeOffset = 0
byteBuffer.readOffset = 0
}
func (byteBuffer *ByteBuffer) IsReadable() bool {
return byteBuffer.writeIndex > byteBuffer.readIndex
return byteBuffer.writeOffset > byteBuffer.readOffset
}
// -------------------------------------------------write/read-------------------------------------------------
@@ -122,55 +126,55 @@ func BytesToInt(b []byte) int {
func (byteBuffer *ByteBuffer) WriteBool(value bool) {
byteBuffer.EnsureCapacity(1)
if value {
byteBuffer.buffer[byteBuffer.writeIndex] = 1
byteBuffer.buffer[byteBuffer.writeOffset] = 1
} else {
byteBuffer.buffer[byteBuffer.writeIndex] = 0
byteBuffer.buffer[byteBuffer.writeOffset] = 0
}
byteBuffer.writeIndex++
byteBuffer.writeOffset++
}
func (byteBuffer *ByteBuffer) ReadBool() bool {
var byteValue = byteBuffer.buffer[byteBuffer.readIndex]
byteBuffer.readIndex++
var byteValue = byteBuffer.buffer[byteBuffer.readOffset]
byteBuffer.readOffset++
return byteValue == 1
}
func (byteBuffer *ByteBuffer) WriteByte(value int8) {
byteBuffer.EnsureCapacity(1)
byteBuffer.buffer[byteBuffer.writeIndex] = byte(value)
byteBuffer.writeIndex++
byteBuffer.buffer[byteBuffer.writeOffset] = byte(value)
byteBuffer.writeOffset++
}
func (byteBuffer *ByteBuffer) ReadByte() int8 {
var byteValue = byteBuffer.buffer[byteBuffer.readIndex]
byteBuffer.readIndex++
var byteValue = byteBuffer.buffer[byteBuffer.readOffset]
byteBuffer.readOffset++
return int8(byteValue)
}
func (byteBuffer *ByteBuffer) WriteUByte(value byte) {
byteBuffer.EnsureCapacity(1)
byteBuffer.buffer[byteBuffer.writeIndex] = value
byteBuffer.writeIndex++
byteBuffer.buffer[byteBuffer.writeOffset] = value
byteBuffer.writeOffset++
}
func (byteBuffer *ByteBuffer) ReadUByte() byte {
var byteValue = byteBuffer.buffer[byteBuffer.readIndex]
byteBuffer.readIndex++
var byteValue = byteBuffer.buffer[byteBuffer.readOffset]
byteBuffer.readOffset++
return byteValue
}
func (byteBuffer *ByteBuffer) WriteUBytes(bytes []byte) {
var length = len(bytes)
byteBuffer.EnsureCapacity(length)
copy(byteBuffer.buffer[byteBuffer.writeIndex:], bytes)
byteBuffer.writeIndex += length
copy(byteBuffer.buffer[byteBuffer.writeOffset:], bytes)
byteBuffer.writeOffset += length
}
func (byteBuffer *ByteBuffer) ReadUBytes(length int) []byte {
var readOffset = byteBuffer.readIndex
var endOffset = byteBuffer.readIndex + length
var readOffset = byteBuffer.readOffset
var endOffset = byteBuffer.readOffset + length
var bytes = byteBuffer.buffer[readOffset:endOffset]
byteBuffer.readIndex += length
byteBuffer.readOffset += length
return bytes
}
@@ -514,7 +518,7 @@ func Read(buffer *ByteBuffer) any {
}
// -------------------------------------------------CutDown-------------------------------------------------
func (byteBuffer *ByteBuffer) WriteBooleanArray(array []bool) {
func (byteBuffer *ByteBuffer) WriteBoolArray(array []bool) {
if array == nil {
byteBuffer.WriteInt(0)
} else {
@@ -525,7 +529,7 @@ func (byteBuffer *ByteBuffer) WriteBooleanArray(array []bool) {
}
}
func (byteBuffer *ByteBuffer) ReadBooleanArray() []bool {
func (byteBuffer *ByteBuffer) ReadBoolArray() []bool {
var size = byteBuffer.ReadInt()
var array = make([]bool, size)
if size > 0 {
@@ -0,0 +1,31 @@
package zfoogo
type EmptyObject struct {
}
func (protocol EmptyObject) ProtocolId() int16 {
return 0
}
func (protocol EmptyObject) write(buffer *ByteBuffer, packet any) {
if packet == nil {
buffer.WriteInt(0)
return
}
buffer.WriteInt(-1)
}
func (protocol EmptyObject) read(buffer *ByteBuffer) any {
var packet = new(EmptyObject)
var length = buffer.ReadInt()
if length == 0 {
return packet
}
var beforeReadIndex = buffer.GetReadOffset()
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
@@ -1,14 +1,11 @@
package zfoogo
type EmptyObject struct {
}
// 常规的对象,取所有语言语法的交集,基本上所有语言都支持下面的语法
type NormalObject struct {
A int8
Aaa []int8
B int16
// 整数类型
C int
D int64
E float32
@@ -28,47 +25,6 @@ type NormalObject struct {
OutCompatibleValue2 int
}
type ObjectA struct {
A int
M map[int]string
ObjectB ObjectB
InnerCompatibleValue int
}
type ObjectB struct {
Flag bool
InnerCompatibleValue int
}
type SimpleObject struct {
C int
G bool
}
func (protocol EmptyObject) ProtocolId() int16 {
return 0
}
func (protocol EmptyObject) write(buffer *ByteBuffer, packet any) {
if packet == nil {
buffer.WriteInt(0)
return
}
buffer.WriteInt(-1)
}
func (protocol EmptyObject) read(buffer *ByteBuffer) any {
var packet = new(EmptyObject)
var length = buffer.ReadInt()
if length == 0 {
return packet
}
var beforeReadIndex = buffer.ReadOffset()
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
func (protocol NormalObject) ProtocolId() int16 {
return 101
}
@@ -79,7 +35,7 @@ func (protocol NormalObject) write(buffer *ByteBuffer, packet any) {
return
}
var message = packet.(*NormalObject)
var beforeWriteIndex = buffer.WriteOffset()
var beforeWriteIndex = buffer.GetWriteOffset()
buffer.WriteInt(857)
buffer.WriteByte(message.A)
buffer.WriteByteArray(message.Aaa)
@@ -127,7 +83,7 @@ func (protocol NormalObject) read(buffer *ByteBuffer) any {
if length == 0 {
return packet
}
var beforeReadIndex = buffer.ReadOffset()
var beforeReadIndex = buffer.GetReadOffset()
var result0 = buffer.ReadByte()
packet.A = result0
var array1 = buffer.ReadByteArray()
@@ -191,111 +147,4 @@ func (protocol NormalObject) read(buffer *ByteBuffer) any {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
func (protocol ObjectA) ProtocolId() int16 {
return 102
}
func (protocol ObjectA) write(buffer *ByteBuffer, packet any) {
if packet == nil {
buffer.WriteInt(0)
return
}
var message = packet.(*ObjectA)
var 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)
}
func (protocol ObjectA) read(buffer *ByteBuffer) any {
var packet = new(ObjectA)
var length = buffer.ReadInt()
if length == 0 {
return packet
}
var beforeReadIndex = buffer.ReadOffset()
var result0 = buffer.ReadInt()
packet.A = result0
var map1 = buffer.ReadIntStringMap()
packet.M = map1
var result2 = *buffer.ReadPacket(103).(*ObjectB)
packet.ObjectB = result2
if buffer.CompatibleRead(beforeReadIndex, length) {
var result3 = buffer.ReadInt()
packet.InnerCompatibleValue = result3
}
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
func (protocol ObjectB) ProtocolId() int16 {
return 103
}
func (protocol ObjectB) write(buffer *ByteBuffer, packet any) {
if packet == nil {
buffer.WriteInt(0)
return
}
var message = packet.(*ObjectB)
var beforeWriteIndex = buffer.WriteOffset()
buffer.WriteInt(4)
buffer.WriteBool(message.Flag)
buffer.WriteInt(message.InnerCompatibleValue)
buffer.AdjustPadding(4, beforeWriteIndex)
}
func (protocol ObjectB) read(buffer *ByteBuffer) any {
var packet = new(ObjectB)
var length = buffer.ReadInt()
if length == 0 {
return packet
}
var beforeReadIndex = buffer.ReadOffset()
var result0 = buffer.ReadBool()
packet.Flag = result0
if buffer.CompatibleRead(beforeReadIndex, length) {
var result1 = buffer.ReadInt()
packet.InnerCompatibleValue = result1
}
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
func (protocol SimpleObject) ProtocolId() int16 {
return 104
}
func (protocol SimpleObject) write(buffer *ByteBuffer, packet any) {
if packet == nil {
buffer.WriteInt(0)
return
}
var message = packet.(*SimpleObject)
buffer.WriteInt(-1)
buffer.WriteInt(message.C)
buffer.WriteBool(message.G)
}
func (protocol SimpleObject) read(buffer *ByteBuffer) any {
var packet = new(SimpleObject)
var length = buffer.ReadInt()
if length == 0 {
return packet
}
var beforeReadIndex = buffer.ReadOffset()
var result0 = buffer.ReadInt()
packet.C = result0
var result1 = buffer.ReadBool()
packet.G = result1
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
@@ -0,0 +1,51 @@
package zfoogo
type ObjectA struct {
A int
M map[int]string
ObjectB ObjectB
InnerCompatibleValue int
}
func (protocol ObjectA) ProtocolId() int16 {
return 102
}
func (protocol ObjectA) write(buffer *ByteBuffer, packet any) {
if packet == nil {
buffer.WriteInt(0)
return
}
var message = packet.(*ObjectA)
var beforeWriteIndex = buffer.GetWriteOffset()
buffer.WriteInt(201)
buffer.WriteInt(message.A)
buffer.WriteIntStringMap(message.M)
buffer.WritePacket(&message.ObjectB, 103)
buffer.WriteInt(message.InnerCompatibleValue)
buffer.AdjustPadding(201, beforeWriteIndex)
}
func (protocol ObjectA) read(buffer *ByteBuffer) any {
var packet = new(ObjectA)
var length = buffer.ReadInt()
if length == 0 {
return packet
}
var beforeReadIndex = buffer.GetReadOffset()
var result0 = buffer.ReadInt()
packet.A = result0
var map1 = buffer.ReadIntStringMap()
packet.M = map1
var result2 = *buffer.ReadPacket(103).(*ObjectB)
packet.ObjectB = result2
if buffer.CompatibleRead(beforeReadIndex, length) {
var result3 = buffer.ReadInt()
packet.InnerCompatibleValue = result3
}
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
@@ -0,0 +1,43 @@
package zfoogo
type ObjectB struct {
Flag bool
InnerCompatibleValue int
}
func (protocol ObjectB) ProtocolId() int16 {
return 103
}
func (protocol ObjectB) write(buffer *ByteBuffer, packet any) {
if packet == nil {
buffer.WriteInt(0)
return
}
var message = packet.(*ObjectB)
var beforeWriteIndex = buffer.GetWriteOffset()
buffer.WriteInt(4)
buffer.WriteBool(message.Flag)
buffer.WriteInt(message.InnerCompatibleValue)
buffer.AdjustPadding(4, beforeWriteIndex)
}
func (protocol ObjectB) read(buffer *ByteBuffer) any {
var packet = new(ObjectB)
var length = buffer.ReadInt()
if length == 0 {
return packet
}
var beforeReadIndex = buffer.GetReadOffset()
var result0 = buffer.ReadBool()
packet.Flag = result0
if buffer.CompatibleRead(beforeReadIndex, length) {
var result1 = buffer.ReadInt()
packet.InnerCompatibleValue = result1
}
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
@@ -0,0 +1,39 @@
package zfoogo
type SimpleObject struct {
C int
G bool
}
func (protocol SimpleObject) ProtocolId() int16 {
return 104
}
func (protocol SimpleObject) write(buffer *ByteBuffer, packet any) {
if packet == nil {
buffer.WriteInt(0)
return
}
var message = packet.(*SimpleObject)
buffer.WriteInt(-1)
buffer.WriteInt(message.C)
buffer.WriteBool(message.G)
}
func (protocol SimpleObject) read(buffer *ByteBuffer) any {
var packet = new(SimpleObject)
var length = buffer.ReadInt()
if length == 0 {
return packet
}
var beforeReadIndex = buffer.GetReadOffset()
var result0 = buffer.ReadInt()
packet.C = result0
var result1 = buffer.ReadBool()
packet.G = result1
if length > 0 {
buffer.SetReadOffset(beforeReadIndex + length)
}
return packet
}
@@ -40,8 +40,8 @@ class ByteBuffer {
fun setWriteOffset(writeIndex: Int) {
if (writeIndex > buffer.size) {
throw RuntimeException(
"writeIndex[" + writeIndex + "] out of bounds exception: readerIndex: " + readOffset +
", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.size
"writeIndex[" + writeIndex + "] out of bounds exception: readOffset: " + readOffset +
", writeOffset: " + writeOffset + "(expected: 0 <= readOffset <= writeOffset <= capacity:" + buffer.size + ")"
)
}
writeOffset = writeIndex
@@ -54,8 +54,8 @@ class ByteBuffer {
fun setReadOffset(readIndex: Int) {
if (readIndex > writeOffset) {
throw RuntimeException(
"readIndex[" + readIndex + "] out of bounds exception: readerIndex: " + readOffset +
", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.size
"readIndex[" + readIndex + "] out of bounds exception: readOffset: " + readOffset +
", writeOffset: " + writeOffset + "(expected: 0 <= readOffsetIndex <= writeOffset <= capacity:" + buffer.size + ")"
)
}
readOffset = readIndex
+4 -4
View File
@@ -52,10 +52,10 @@ end
function byteBufferTest()
local byteBuffer = ByteBuffer:new()
byteBuffer:writeBoolean(true)
byteBuffer:writeBoolean(false)
assert(byteBuffer:readBoolean() == true)
assert(byteBuffer:readBoolean() == false)
byteBuffer:writeBool(true)
byteBuffer:writeBool(false)
assert(byteBuffer:readBool() == true)
assert(byteBuffer:readBool() == false)
byteBuffer:setWriteOffset(1)
byteBuffer:setReadOffset(1)
+23 -19
View File
@@ -14,8 +14,8 @@ local zeroByte = string.char(0)
local ByteBuffer = {}
local trueBooleanStrValue = string.char(1)
local falseBooleanStrValue = string.char(0)
local trueBoolStrValue = string.char(1)
local falseBoolStrValue = string.char(0)
function serializeTableToJson(tbl)
local res = {}
@@ -127,15 +127,19 @@ function ByteBuffer:compatibleRead(beforeReadIndex, length)
end
-------------------------------------get和set-------------------------------------
function ByteBuffer:getBuffer()
return self.buffer
end
function ByteBuffer:getWriteOffset()
return self.writeOffset
end
function ByteBuffer:setWriteOffset(writeOffset)
if writeOffset > #self.buffer + 1 then
error(string.format("writeOffset: %s index out of bounds exception: readerIndex: %s, writerIndex: %s, (expected: 0 <= readerIndex <= writerIndex <= capacity: %s)", writeOffset, self.readOffset, self.writeOffset, #self.buffer))
function ByteBuffer:setWriteOffset(writeIndex)
if writeIndex > #self.buffer + 1 then
error(string.format("writeIndex: %s index out of bounds exception: readOffset: %s, writerOffset: %s, (expected: 0 <= readOffset <= writeOffset <= capacity: %s)", writeIndex, self.readOffset, self.writeOffset, #self.buffer))
end
self.writeOffset = writeOffset
self.writeOffset = writeIndex
return self
end
@@ -143,11 +147,11 @@ function ByteBuffer:getReadOffset()
return self.readOffset
end
function ByteBuffer:setReadOffset(readOffset)
if readOffset > self.writeOffset then
error(string.format("readOffset: %s index out of bounds exception: readerIndex: %s, writerIndex: %s, (expected: 0 <= readerIndex <= writerIndex <= capacity: %s)", readOffset, self.readOffset, self.writeOffset, #self.buffer))
function ByteBuffer:setReadOffset(readIndex)
if readIndex > self.writeOffset then
error(string.format("readIndex: %s index out of bounds exception: readOffset: %s, writerIndex: %s, (expected: 0 <= readOffset <= writeOffset <= capacity: %s)", readIndex, self.readOffset, self.writeOffset, #self.buffer))
end
self.readOffset = readOffset
self.readOffset = readIndex
return self
end
@@ -166,19 +170,19 @@ end
-------------------------------------write和read-------------------------------------
--bool
function ByteBuffer:writeBoolean(boolValue)
function ByteBuffer:writeBool(boolValue)
if boolValue then
self:writeRawByteStr(trueBooleanStrValue)
self:writeRawByteStr(trueBoolStrValue)
else
self:writeRawByteStr(falseBooleanStrValue)
self:writeRawByteStr(falseBoolStrValue)
end
return self
end
function ByteBuffer:readBoolean()
function ByteBuffer:readBool()
-- When char > 256, the readUByte method will show an error.
-- So, we have to use readChar
return self:readRawByteStr() == trueBooleanStrValue
return self:readRawByteStr() == trueBoolStrValue
end
@@ -527,24 +531,24 @@ function ByteBuffer:readPacket(protocolId)
return protocolRegistration:read(self)
end
function ByteBuffer:writeBooleanArray(array)
function ByteBuffer:writeBoolArray(array)
if array == nil then
self:writeInt(0)
else
self:writeInt(#array)
for index, element in pairs(array) do
self:writeBoolean(element)
self:writeBool(element)
end
end
return self
end
function ByteBuffer:readBooleanArray()
function ByteBuffer:readBoolArray()
local array = {}
local size = self:readInt()
if size > 0 then
for index = 1, size do
table.insert(array, self:readBoolean())
table.insert(array, self:readBool())
end
end
return array
@@ -105,10 +105,10 @@ function ComplexObject:write(buffer, packet)
buffer:writeDouble(packet.ff)
buffer:writeDoubleArray(packet.fff)
buffer:writeDoubleArray(packet.ffff)
buffer:writeBoolean(packet.g)
buffer:writeBoolean(packet.gg)
buffer:writeBooleanArray(packet.ggg)
buffer:writeBooleanArray(packet.gggg)
buffer:writeBool(packet.g)
buffer:writeBool(packet.gg)
buffer:writeBoolArray(packet.ggg)
buffer:writeBoolArray(packet.gggg)
buffer:writeString(packet.jj)
buffer:writeStringArray(packet.jjj)
buffer:writePacket(packet.kk, 102)
@@ -303,13 +303,13 @@ function ComplexObject:read(buffer)
packet.fff = array22
local array23 = buffer:readDoubleArray()
packet.ffff = array23
local result24 = buffer:readBoolean()
local result24 = buffer:readBool()
packet.g = result24
local result25 = buffer:readBoolean()
local result25 = buffer:readBool()
packet.gg = result25
local array26 = buffer:readBooleanArray()
local array26 = buffer:readBoolArray()
packet.ggg = array26
local array27 = buffer:readBooleanArray()
local array27 = buffer:readBoolArray()
packet.gggg = array27
local result28 = buffer:readString()
packet.jj = result28
@@ -1,4 +1,4 @@
-- 常规的对象,取所有语言语法的交集,基本上所有语言都支持下面的语法
local NormalObject = {}
function NormalObject:new()
@@ -6,6 +6,7 @@ function NormalObject:new()
a = 0, -- byte
aaa = {}, -- byte[]
b = 0, -- short
-- 整数类型
c = 0, -- int
d = 0, -- long
e = 0, -- float
@@ -20,7 +21,9 @@ function NormalObject:new()
m = {}, -- Dictionary<int, string>
mm = {}, -- Dictionary<int, ObjectA>
s = {}, -- HashSet<int>
ssss = {} -- HashSet<string>
ssss = {}, -- HashSet<string>
outCompatibleValue = 0, -- int
outCompatibleValue2 = 0 -- int
}
setmetatable(obj, self)
self.__index = self
@@ -44,7 +47,8 @@ function NormalObject:write(buffer, packet)
buffer:writeInt(0)
return
end
buffer:writeInt(-1)
local beforeWriteIndex = buffer:getWriteOffset()
buffer:writeInt(857)
buffer:writeByte(packet.a)
buffer:writeByteArray(packet.aaa)
buffer:writeShort(packet.b)
@@ -52,7 +56,7 @@ function NormalObject:write(buffer, packet)
buffer:writeLong(packet.d)
buffer:writeFloat(packet.e)
buffer:writeDouble(packet.f)
buffer:writeBoolean(packet.g)
buffer:writeBool(packet.g)
buffer:writeString(packet.jj)
buffer:writePacket(packet.kk, 102)
buffer:writeIntArray(packet.l)
@@ -63,6 +67,9 @@ function NormalObject:write(buffer, packet)
buffer:writeIntPacketMap(packet.mm, 102)
buffer:writeIntArray(packet.s)
buffer:writeStringArray(packet.ssss)
buffer:writeInt(packet.outCompatibleValue)
buffer:writeInt(packet.outCompatibleValue2)
buffer:adjustPadding(857, beforeWriteIndex)
end
function NormalObject:read(buffer)
@@ -86,7 +93,7 @@ function NormalObject:read(buffer)
packet.e = result5
local result6 = buffer:readDouble()
packet.f = result6
local result7 = buffer:readBoolean()
local result7 = buffer:readBool()
packet.g = result7
local result8 = buffer:readString()
packet.jj = result8
@@ -108,6 +115,14 @@ function NormalObject:read(buffer)
packet.s = set16
local set17 = buffer:readStringArray()
packet.ssss = set17
if buffer:compatibleRead(beforeReadIndex, length) then
local result18 = buffer:readInt()
packet.outCompatibleValue = result18
end
if buffer:compatibleRead(beforeReadIndex, length) then
local result19 = buffer:readInt()
packet.outCompatibleValue2 = result19
end
if length > 0 then
buffer:setReadOffset(beforeReadIndex + length)
end
@@ -5,7 +5,8 @@ function ObjectA:new()
local obj = {
a = 0, -- int
m = {}, -- Dictionary<int, string>
objectB = nil -- ObjectB
objectB = nil, -- ObjectB
innerCompatibleValue = 0 -- int
}
setmetatable(obj, self)
self.__index = self
@@ -29,10 +30,13 @@ function ObjectA:write(buffer, packet)
buffer:writeInt(0)
return
end
buffer:writeInt(-1)
local beforeWriteIndex = buffer:getWriteOffset()
buffer:writeInt(201)
buffer:writeInt(packet.a)
buffer:writeIntStringMap(packet.m)
buffer:writePacket(packet.objectB, 103)
buffer:writeInt(packet.innerCompatibleValue)
buffer:adjustPadding(201, beforeWriteIndex)
end
function ObjectA:read(buffer)
@@ -48,6 +52,10 @@ function ObjectA:read(buffer)
packet.m = map1
local result2 = buffer:readPacket(103)
packet.objectB = result2
if buffer:compatibleRead(beforeReadIndex, length) then
local result3 = buffer:readInt()
packet.innerCompatibleValue = result3
end
if length > 0 then
buffer:setReadOffset(beforeReadIndex + length)
end
@@ -3,7 +3,8 @@ local ObjectB = {}
function ObjectB:new()
local obj = {
flag = false -- bool
flag = false, -- bool
innerCompatibleValue = 0 -- int
}
setmetatable(obj, self)
self.__index = self
@@ -27,8 +28,11 @@ function ObjectB:write(buffer, packet)
buffer:writeInt(0)
return
end
buffer:writeInt(-1)
buffer:writeBoolean(packet.flag)
local beforeWriteIndex = buffer:getWriteOffset()
buffer:writeInt(4)
buffer:writeBool(packet.flag)
buffer:writeInt(packet.innerCompatibleValue)
buffer:adjustPadding(4, beforeWriteIndex)
end
function ObjectB:read(buffer)
@@ -38,8 +42,12 @@ function ObjectB:read(buffer)
end
local beforeReadIndex = buffer:getReadOffset()
local packet = ObjectB:new()
local result0 = buffer:readBoolean()
local result0 = buffer:readBool()
packet.flag = result0
if buffer:compatibleRead(beforeReadIndex, length) then
local result1 = buffer:readInt()
packet.innerCompatibleValue = result1
end
if length > 0 then
buffer:setReadOffset(beforeReadIndex + length)
end
@@ -30,7 +30,7 @@ function SimpleObject:write(buffer, packet)
end
buffer:writeInt(-1)
buffer:writeInt(packet.c)
buffer:writeBoolean(packet.g)
buffer:writeBool(packet.g)
end
function SimpleObject:read(buffer)
@@ -42,7 +42,7 @@ function SimpleObject:read(buffer)
local packet = SimpleObject:new()
local result0 = buffer:readInt()
packet.c = result0
local result1 = buffer:readBoolean()
local result1 = buffer:readBool()
packet.g = result1
if length > 0 then
buffer:setReadOffset(beforeReadIndex + length)
+4 -4
View File
@@ -61,8 +61,8 @@ class ByteBuffer
public function setWriteOffset(int $writeIndex): void
{
if ($writeIndex > strlen($this->buffer)) {
throw new Exception("writeIndex[" . $writeIndex . "] out of bounds exception: readerIndex: " . $this->readOffset .
", writerIndex: " . $this->writeOffset . "(expected: 0 <= readerIndex <= writerIndex <= capacity:" . strlen($this->buffer));
throw new Exception("writeIndex[" . $writeIndex . "] out of bounds exception: readOffset: " . $this->readOffset .
", writeOffset: " . $this->writeOffset . "(expected: 0 <= readOffset <= writeOffset <= capacity:" . strlen($this->buffer) . ")");
}
$this->writeOffset = $writeIndex;
}
@@ -78,8 +78,8 @@ class ByteBuffer
public function setReadOffset(int $readIndex): void
{
if ($readIndex > $this->writeOffset) {
throw new Exception("readIndex[" . $readIndex . "] out of bounds exception: readerIndex: " . $this->readOffset .
", writerIndex: " . $this->writeOffset . "(expected: 0 <= readerIndex <= writerIndex <= capacity:" . strlen($this->buffer));
throw new Exception("readIndex[" . $readIndex . "] out of bounds exception: readOffset: " . $this->readOffset .
", writeOffset: " . $this->writeOffset . "(expected: 0 <= readOffset <= writeOffset <= capacity:" . strlen($this->buffer));
}
$this->readOffset = $readIndex;
}
+19 -16
View File
@@ -34,26 +34,29 @@ class ByteBuffer():
def compatibleRead(self, beforeReadIndex, length):
return length != -1 and self.getReadOffset() < length + beforeReadIndex
def getBuffer(self):
return self.buffer
def getWriteOffset(self):
return self.writeOffset
def setWriteOffset(self, writeOffset):
if writeOffset > len(self.buffer):
raise ValueError("index out of bounds exception:readerIndex:" + str(self.readOffset) +
", writerIndex:" + str(self.writeOffset) +
"(expected:0 <= readerIndex <= writerIndex <= capacity:" + str(len(self.buffer)))
self.writeOffset = writeOffset
def setWriteOffset(self, writeIndex):
if writeIndex > len(self.buffer):
raise ValueError("writeIndex out of bounds exception:readOffset:" + str(self.readOffset) +
", writeOffset:" + str(self.writeOffset) +
"(expected:0 <= readOffset <= writeOffset <= capacity:" + str(len(self.buffer)))
self.writeOffset = writeIndex
pass
def getReadOffset(self):
return self.readOffset
def setReadOffset(self, readOffset):
if readOffset > self.writeOffset:
raise ValueError("index out of bounds exception:readerIndex:" + str(self.readOffset) +
", writerIndex:" + str(self.writeOffset) +
"(expected:0 <= readerIndex <= writerIndex <= capacity:" + str(len(self.buffer)))
self.readOffset = readOffset
def setReadOffset(self, readIndex):
if readIndex > self.writeOffset:
raise ValueError("readIndex out of bounds exception:readOffset:" + str(self.readOffset) +
", writeOffset:" + str(self.writeOffset) +
"(expected:0 <= readOffset <= writeOffset <= capacity:" + str(len(self.buffer)))
self.readOffset = readIndex
pass
def isReadable(self):
@@ -362,7 +365,7 @@ class ByteBuffer():
protocolRegistration = ProtocolManager.getProtocol(protocolId)
return protocolRegistration.read(self)
def writeBooleanArray(self, array):
def writeBoolArray(self, array):
if array is None:
self.writeInt(0)
else:
@@ -371,7 +374,7 @@ class ByteBuffer():
self.writeBool(element)
pass
def readBooleanArray(self):
def readBoolArray(self):
array = []
size = self.readInt()
if size > 0:
@@ -755,7 +758,7 @@ class ByteBuffer():
map[key] = value
return map
def writeBooleanSet(self, value):
def writeBoolSet(self, value):
if value is None:
self.writeInt(0)
else:
@@ -764,7 +767,7 @@ class ByteBuffer():
self.writeBool(element)
pass
def readBooleanSet(self):
def readBoolSet(self):
value = set()
size = self.readInt()
if size > 0:
@@ -93,8 +93,8 @@ class ComplexObjectRegistration:
buffer.writeDoubleArray(packet.ffff)
buffer.writeBool(packet.g)
buffer.writeBool(packet.gg)
buffer.writeBooleanArray(packet.ggg)
buffer.writeBooleanArray(packet.gggg)
buffer.writeBoolArray(packet.ggg)
buffer.writeBoolArray(packet.gggg)
buffer.writeString(packet.jj)
buffer.writeStringArray(packet.jjj)
buffer.writePacket(packet.kk, 102)
@@ -264,9 +264,9 @@ class ComplexObjectRegistration:
packet.g = result24
result25 = buffer.readBool()
packet.gg = result25
array26 = buffer.readBooleanArray()
array26 = buffer.readBoolArray()
packet.ggg = array26
array27 = buffer.readBooleanArray()
array27 = buffer.readBoolArray()
packet.gggg = array27
result28 = buffer.readString()
packet.jj = result28
@@ -5645,182 +5645,182 @@ class VeryBigObjectRegistration:
buffer.writeBool(packet.gg87)
buffer.writeBool(packet.gg88)
buffer.writeBool(packet.gg9)
buffer.writeBooleanArray(packet.ggg1)
buffer.writeBooleanArray(packet.ggg10)
buffer.writeBooleanArray(packet.ggg11)
buffer.writeBooleanArray(packet.ggg12)
buffer.writeBooleanArray(packet.ggg13)
buffer.writeBooleanArray(packet.ggg14)
buffer.writeBooleanArray(packet.ggg15)
buffer.writeBooleanArray(packet.ggg16)
buffer.writeBooleanArray(packet.ggg17)
buffer.writeBooleanArray(packet.ggg18)
buffer.writeBooleanArray(packet.ggg19)
buffer.writeBooleanArray(packet.ggg2)
buffer.writeBooleanArray(packet.ggg20)
buffer.writeBooleanArray(packet.ggg21)
buffer.writeBooleanArray(packet.ggg22)
buffer.writeBooleanArray(packet.ggg23)
buffer.writeBooleanArray(packet.ggg24)
buffer.writeBooleanArray(packet.ggg25)
buffer.writeBooleanArray(packet.ggg26)
buffer.writeBooleanArray(packet.ggg27)
buffer.writeBooleanArray(packet.ggg28)
buffer.writeBooleanArray(packet.ggg29)
buffer.writeBooleanArray(packet.ggg3)
buffer.writeBooleanArray(packet.ggg30)
buffer.writeBooleanArray(packet.ggg31)
buffer.writeBooleanArray(packet.ggg32)
buffer.writeBooleanArray(packet.ggg33)
buffer.writeBooleanArray(packet.ggg34)
buffer.writeBooleanArray(packet.ggg35)
buffer.writeBooleanArray(packet.ggg36)
buffer.writeBooleanArray(packet.ggg37)
buffer.writeBooleanArray(packet.ggg38)
buffer.writeBooleanArray(packet.ggg39)
buffer.writeBooleanArray(packet.ggg4)
buffer.writeBooleanArray(packet.ggg40)
buffer.writeBooleanArray(packet.ggg41)
buffer.writeBooleanArray(packet.ggg42)
buffer.writeBooleanArray(packet.ggg43)
buffer.writeBooleanArray(packet.ggg44)
buffer.writeBooleanArray(packet.ggg45)
buffer.writeBooleanArray(packet.ggg46)
buffer.writeBooleanArray(packet.ggg47)
buffer.writeBooleanArray(packet.ggg48)
buffer.writeBooleanArray(packet.ggg49)
buffer.writeBooleanArray(packet.ggg5)
buffer.writeBooleanArray(packet.ggg50)
buffer.writeBooleanArray(packet.ggg51)
buffer.writeBooleanArray(packet.ggg52)
buffer.writeBooleanArray(packet.ggg53)
buffer.writeBooleanArray(packet.ggg54)
buffer.writeBooleanArray(packet.ggg55)
buffer.writeBooleanArray(packet.ggg56)
buffer.writeBooleanArray(packet.ggg57)
buffer.writeBooleanArray(packet.ggg58)
buffer.writeBooleanArray(packet.ggg59)
buffer.writeBooleanArray(packet.ggg6)
buffer.writeBooleanArray(packet.ggg60)
buffer.writeBooleanArray(packet.ggg61)
buffer.writeBooleanArray(packet.ggg62)
buffer.writeBooleanArray(packet.ggg63)
buffer.writeBooleanArray(packet.ggg64)
buffer.writeBooleanArray(packet.ggg65)
buffer.writeBooleanArray(packet.ggg66)
buffer.writeBooleanArray(packet.ggg67)
buffer.writeBooleanArray(packet.ggg68)
buffer.writeBooleanArray(packet.ggg69)
buffer.writeBooleanArray(packet.ggg7)
buffer.writeBooleanArray(packet.ggg70)
buffer.writeBooleanArray(packet.ggg71)
buffer.writeBooleanArray(packet.ggg72)
buffer.writeBooleanArray(packet.ggg73)
buffer.writeBooleanArray(packet.ggg74)
buffer.writeBooleanArray(packet.ggg75)
buffer.writeBooleanArray(packet.ggg76)
buffer.writeBooleanArray(packet.ggg77)
buffer.writeBooleanArray(packet.ggg78)
buffer.writeBooleanArray(packet.ggg79)
buffer.writeBooleanArray(packet.ggg8)
buffer.writeBooleanArray(packet.ggg80)
buffer.writeBooleanArray(packet.ggg81)
buffer.writeBooleanArray(packet.ggg82)
buffer.writeBooleanArray(packet.ggg83)
buffer.writeBooleanArray(packet.ggg84)
buffer.writeBooleanArray(packet.ggg85)
buffer.writeBooleanArray(packet.ggg86)
buffer.writeBooleanArray(packet.ggg87)
buffer.writeBooleanArray(packet.ggg88)
buffer.writeBooleanArray(packet.ggg9)
buffer.writeBooleanArray(packet.gggg1)
buffer.writeBooleanArray(packet.gggg10)
buffer.writeBooleanArray(packet.gggg11)
buffer.writeBooleanArray(packet.gggg12)
buffer.writeBooleanArray(packet.gggg13)
buffer.writeBooleanArray(packet.gggg14)
buffer.writeBooleanArray(packet.gggg15)
buffer.writeBooleanArray(packet.gggg16)
buffer.writeBooleanArray(packet.gggg17)
buffer.writeBooleanArray(packet.gggg18)
buffer.writeBooleanArray(packet.gggg19)
buffer.writeBooleanArray(packet.gggg2)
buffer.writeBooleanArray(packet.gggg20)
buffer.writeBooleanArray(packet.gggg21)
buffer.writeBooleanArray(packet.gggg22)
buffer.writeBooleanArray(packet.gggg23)
buffer.writeBooleanArray(packet.gggg24)
buffer.writeBooleanArray(packet.gggg25)
buffer.writeBooleanArray(packet.gggg26)
buffer.writeBooleanArray(packet.gggg27)
buffer.writeBooleanArray(packet.gggg28)
buffer.writeBooleanArray(packet.gggg29)
buffer.writeBooleanArray(packet.gggg3)
buffer.writeBooleanArray(packet.gggg30)
buffer.writeBooleanArray(packet.gggg31)
buffer.writeBooleanArray(packet.gggg32)
buffer.writeBooleanArray(packet.gggg33)
buffer.writeBooleanArray(packet.gggg34)
buffer.writeBooleanArray(packet.gggg35)
buffer.writeBooleanArray(packet.gggg36)
buffer.writeBooleanArray(packet.gggg37)
buffer.writeBooleanArray(packet.gggg38)
buffer.writeBooleanArray(packet.gggg39)
buffer.writeBooleanArray(packet.gggg4)
buffer.writeBooleanArray(packet.gggg40)
buffer.writeBooleanArray(packet.gggg41)
buffer.writeBooleanArray(packet.gggg42)
buffer.writeBooleanArray(packet.gggg43)
buffer.writeBooleanArray(packet.gggg44)
buffer.writeBooleanArray(packet.gggg45)
buffer.writeBooleanArray(packet.gggg46)
buffer.writeBooleanArray(packet.gggg47)
buffer.writeBooleanArray(packet.gggg48)
buffer.writeBooleanArray(packet.gggg49)
buffer.writeBooleanArray(packet.gggg5)
buffer.writeBooleanArray(packet.gggg50)
buffer.writeBooleanArray(packet.gggg51)
buffer.writeBooleanArray(packet.gggg52)
buffer.writeBooleanArray(packet.gggg53)
buffer.writeBooleanArray(packet.gggg54)
buffer.writeBooleanArray(packet.gggg55)
buffer.writeBooleanArray(packet.gggg56)
buffer.writeBooleanArray(packet.gggg57)
buffer.writeBooleanArray(packet.gggg58)
buffer.writeBooleanArray(packet.gggg59)
buffer.writeBooleanArray(packet.gggg6)
buffer.writeBooleanArray(packet.gggg60)
buffer.writeBooleanArray(packet.gggg61)
buffer.writeBooleanArray(packet.gggg62)
buffer.writeBooleanArray(packet.gggg63)
buffer.writeBooleanArray(packet.gggg64)
buffer.writeBooleanArray(packet.gggg65)
buffer.writeBooleanArray(packet.gggg66)
buffer.writeBooleanArray(packet.gggg67)
buffer.writeBooleanArray(packet.gggg68)
buffer.writeBooleanArray(packet.gggg69)
buffer.writeBooleanArray(packet.gggg7)
buffer.writeBooleanArray(packet.gggg70)
buffer.writeBooleanArray(packet.gggg71)
buffer.writeBooleanArray(packet.gggg72)
buffer.writeBooleanArray(packet.gggg73)
buffer.writeBooleanArray(packet.gggg74)
buffer.writeBooleanArray(packet.gggg75)
buffer.writeBooleanArray(packet.gggg76)
buffer.writeBooleanArray(packet.gggg77)
buffer.writeBooleanArray(packet.gggg78)
buffer.writeBooleanArray(packet.gggg79)
buffer.writeBooleanArray(packet.gggg8)
buffer.writeBooleanArray(packet.gggg80)
buffer.writeBooleanArray(packet.gggg81)
buffer.writeBooleanArray(packet.gggg82)
buffer.writeBooleanArray(packet.gggg83)
buffer.writeBooleanArray(packet.gggg84)
buffer.writeBooleanArray(packet.gggg85)
buffer.writeBooleanArray(packet.gggg86)
buffer.writeBooleanArray(packet.gggg87)
buffer.writeBooleanArray(packet.gggg88)
buffer.writeBooleanArray(packet.gggg9)
buffer.writeBoolArray(packet.ggg1)
buffer.writeBoolArray(packet.ggg10)
buffer.writeBoolArray(packet.ggg11)
buffer.writeBoolArray(packet.ggg12)
buffer.writeBoolArray(packet.ggg13)
buffer.writeBoolArray(packet.ggg14)
buffer.writeBoolArray(packet.ggg15)
buffer.writeBoolArray(packet.ggg16)
buffer.writeBoolArray(packet.ggg17)
buffer.writeBoolArray(packet.ggg18)
buffer.writeBoolArray(packet.ggg19)
buffer.writeBoolArray(packet.ggg2)
buffer.writeBoolArray(packet.ggg20)
buffer.writeBoolArray(packet.ggg21)
buffer.writeBoolArray(packet.ggg22)
buffer.writeBoolArray(packet.ggg23)
buffer.writeBoolArray(packet.ggg24)
buffer.writeBoolArray(packet.ggg25)
buffer.writeBoolArray(packet.ggg26)
buffer.writeBoolArray(packet.ggg27)
buffer.writeBoolArray(packet.ggg28)
buffer.writeBoolArray(packet.ggg29)
buffer.writeBoolArray(packet.ggg3)
buffer.writeBoolArray(packet.ggg30)
buffer.writeBoolArray(packet.ggg31)
buffer.writeBoolArray(packet.ggg32)
buffer.writeBoolArray(packet.ggg33)
buffer.writeBoolArray(packet.ggg34)
buffer.writeBoolArray(packet.ggg35)
buffer.writeBoolArray(packet.ggg36)
buffer.writeBoolArray(packet.ggg37)
buffer.writeBoolArray(packet.ggg38)
buffer.writeBoolArray(packet.ggg39)
buffer.writeBoolArray(packet.ggg4)
buffer.writeBoolArray(packet.ggg40)
buffer.writeBoolArray(packet.ggg41)
buffer.writeBoolArray(packet.ggg42)
buffer.writeBoolArray(packet.ggg43)
buffer.writeBoolArray(packet.ggg44)
buffer.writeBoolArray(packet.ggg45)
buffer.writeBoolArray(packet.ggg46)
buffer.writeBoolArray(packet.ggg47)
buffer.writeBoolArray(packet.ggg48)
buffer.writeBoolArray(packet.ggg49)
buffer.writeBoolArray(packet.ggg5)
buffer.writeBoolArray(packet.ggg50)
buffer.writeBoolArray(packet.ggg51)
buffer.writeBoolArray(packet.ggg52)
buffer.writeBoolArray(packet.ggg53)
buffer.writeBoolArray(packet.ggg54)
buffer.writeBoolArray(packet.ggg55)
buffer.writeBoolArray(packet.ggg56)
buffer.writeBoolArray(packet.ggg57)
buffer.writeBoolArray(packet.ggg58)
buffer.writeBoolArray(packet.ggg59)
buffer.writeBoolArray(packet.ggg6)
buffer.writeBoolArray(packet.ggg60)
buffer.writeBoolArray(packet.ggg61)
buffer.writeBoolArray(packet.ggg62)
buffer.writeBoolArray(packet.ggg63)
buffer.writeBoolArray(packet.ggg64)
buffer.writeBoolArray(packet.ggg65)
buffer.writeBoolArray(packet.ggg66)
buffer.writeBoolArray(packet.ggg67)
buffer.writeBoolArray(packet.ggg68)
buffer.writeBoolArray(packet.ggg69)
buffer.writeBoolArray(packet.ggg7)
buffer.writeBoolArray(packet.ggg70)
buffer.writeBoolArray(packet.ggg71)
buffer.writeBoolArray(packet.ggg72)
buffer.writeBoolArray(packet.ggg73)
buffer.writeBoolArray(packet.ggg74)
buffer.writeBoolArray(packet.ggg75)
buffer.writeBoolArray(packet.ggg76)
buffer.writeBoolArray(packet.ggg77)
buffer.writeBoolArray(packet.ggg78)
buffer.writeBoolArray(packet.ggg79)
buffer.writeBoolArray(packet.ggg8)
buffer.writeBoolArray(packet.ggg80)
buffer.writeBoolArray(packet.ggg81)
buffer.writeBoolArray(packet.ggg82)
buffer.writeBoolArray(packet.ggg83)
buffer.writeBoolArray(packet.ggg84)
buffer.writeBoolArray(packet.ggg85)
buffer.writeBoolArray(packet.ggg86)
buffer.writeBoolArray(packet.ggg87)
buffer.writeBoolArray(packet.ggg88)
buffer.writeBoolArray(packet.ggg9)
buffer.writeBoolArray(packet.gggg1)
buffer.writeBoolArray(packet.gggg10)
buffer.writeBoolArray(packet.gggg11)
buffer.writeBoolArray(packet.gggg12)
buffer.writeBoolArray(packet.gggg13)
buffer.writeBoolArray(packet.gggg14)
buffer.writeBoolArray(packet.gggg15)
buffer.writeBoolArray(packet.gggg16)
buffer.writeBoolArray(packet.gggg17)
buffer.writeBoolArray(packet.gggg18)
buffer.writeBoolArray(packet.gggg19)
buffer.writeBoolArray(packet.gggg2)
buffer.writeBoolArray(packet.gggg20)
buffer.writeBoolArray(packet.gggg21)
buffer.writeBoolArray(packet.gggg22)
buffer.writeBoolArray(packet.gggg23)
buffer.writeBoolArray(packet.gggg24)
buffer.writeBoolArray(packet.gggg25)
buffer.writeBoolArray(packet.gggg26)
buffer.writeBoolArray(packet.gggg27)
buffer.writeBoolArray(packet.gggg28)
buffer.writeBoolArray(packet.gggg29)
buffer.writeBoolArray(packet.gggg3)
buffer.writeBoolArray(packet.gggg30)
buffer.writeBoolArray(packet.gggg31)
buffer.writeBoolArray(packet.gggg32)
buffer.writeBoolArray(packet.gggg33)
buffer.writeBoolArray(packet.gggg34)
buffer.writeBoolArray(packet.gggg35)
buffer.writeBoolArray(packet.gggg36)
buffer.writeBoolArray(packet.gggg37)
buffer.writeBoolArray(packet.gggg38)
buffer.writeBoolArray(packet.gggg39)
buffer.writeBoolArray(packet.gggg4)
buffer.writeBoolArray(packet.gggg40)
buffer.writeBoolArray(packet.gggg41)
buffer.writeBoolArray(packet.gggg42)
buffer.writeBoolArray(packet.gggg43)
buffer.writeBoolArray(packet.gggg44)
buffer.writeBoolArray(packet.gggg45)
buffer.writeBoolArray(packet.gggg46)
buffer.writeBoolArray(packet.gggg47)
buffer.writeBoolArray(packet.gggg48)
buffer.writeBoolArray(packet.gggg49)
buffer.writeBoolArray(packet.gggg5)
buffer.writeBoolArray(packet.gggg50)
buffer.writeBoolArray(packet.gggg51)
buffer.writeBoolArray(packet.gggg52)
buffer.writeBoolArray(packet.gggg53)
buffer.writeBoolArray(packet.gggg54)
buffer.writeBoolArray(packet.gggg55)
buffer.writeBoolArray(packet.gggg56)
buffer.writeBoolArray(packet.gggg57)
buffer.writeBoolArray(packet.gggg58)
buffer.writeBoolArray(packet.gggg59)
buffer.writeBoolArray(packet.gggg6)
buffer.writeBoolArray(packet.gggg60)
buffer.writeBoolArray(packet.gggg61)
buffer.writeBoolArray(packet.gggg62)
buffer.writeBoolArray(packet.gggg63)
buffer.writeBoolArray(packet.gggg64)
buffer.writeBoolArray(packet.gggg65)
buffer.writeBoolArray(packet.gggg66)
buffer.writeBoolArray(packet.gggg67)
buffer.writeBoolArray(packet.gggg68)
buffer.writeBoolArray(packet.gggg69)
buffer.writeBoolArray(packet.gggg7)
buffer.writeBoolArray(packet.gggg70)
buffer.writeBoolArray(packet.gggg71)
buffer.writeBoolArray(packet.gggg72)
buffer.writeBoolArray(packet.gggg73)
buffer.writeBoolArray(packet.gggg74)
buffer.writeBoolArray(packet.gggg75)
buffer.writeBoolArray(packet.gggg76)
buffer.writeBoolArray(packet.gggg77)
buffer.writeBoolArray(packet.gggg78)
buffer.writeBoolArray(packet.gggg79)
buffer.writeBoolArray(packet.gggg8)
buffer.writeBoolArray(packet.gggg80)
buffer.writeBoolArray(packet.gggg81)
buffer.writeBoolArray(packet.gggg82)
buffer.writeBoolArray(packet.gggg83)
buffer.writeBoolArray(packet.gggg84)
buffer.writeBoolArray(packet.gggg85)
buffer.writeBoolArray(packet.gggg86)
buffer.writeBoolArray(packet.gggg87)
buffer.writeBoolArray(packet.gggg88)
buffer.writeBoolArray(packet.gggg9)
buffer.writeString(packet.jj1)
buffer.writeString(packet.jj10)
buffer.writeString(packet.jj11)
@@ -11286,357 +11286,357 @@ class VeryBigObjectRegistration:
packet.gg88 = result2286
result2287 = buffer.readBool()
packet.gg9 = result2287
array2288 = buffer.readBooleanArray()
array2288 = buffer.readBoolArray()
packet.ggg1 = array2288
array2289 = buffer.readBooleanArray()
array2289 = buffer.readBoolArray()
packet.ggg10 = array2289
array2290 = buffer.readBooleanArray()
array2290 = buffer.readBoolArray()
packet.ggg11 = array2290
array2291 = buffer.readBooleanArray()
array2291 = buffer.readBoolArray()
packet.ggg12 = array2291
array2292 = buffer.readBooleanArray()
array2292 = buffer.readBoolArray()
packet.ggg13 = array2292
array2293 = buffer.readBooleanArray()
array2293 = buffer.readBoolArray()
packet.ggg14 = array2293
array2294 = buffer.readBooleanArray()
array2294 = buffer.readBoolArray()
packet.ggg15 = array2294
array2295 = buffer.readBooleanArray()
array2295 = buffer.readBoolArray()
packet.ggg16 = array2295
array2296 = buffer.readBooleanArray()
array2296 = buffer.readBoolArray()
packet.ggg17 = array2296
array2297 = buffer.readBooleanArray()
array2297 = buffer.readBoolArray()
packet.ggg18 = array2297
array2298 = buffer.readBooleanArray()
array2298 = buffer.readBoolArray()
packet.ggg19 = array2298
array2299 = buffer.readBooleanArray()
array2299 = buffer.readBoolArray()
packet.ggg2 = array2299
array2300 = buffer.readBooleanArray()
array2300 = buffer.readBoolArray()
packet.ggg20 = array2300
array2301 = buffer.readBooleanArray()
array2301 = buffer.readBoolArray()
packet.ggg21 = array2301
array2302 = buffer.readBooleanArray()
array2302 = buffer.readBoolArray()
packet.ggg22 = array2302
array2303 = buffer.readBooleanArray()
array2303 = buffer.readBoolArray()
packet.ggg23 = array2303
array2304 = buffer.readBooleanArray()
array2304 = buffer.readBoolArray()
packet.ggg24 = array2304
array2305 = buffer.readBooleanArray()
array2305 = buffer.readBoolArray()
packet.ggg25 = array2305
array2306 = buffer.readBooleanArray()
array2306 = buffer.readBoolArray()
packet.ggg26 = array2306
array2307 = buffer.readBooleanArray()
array2307 = buffer.readBoolArray()
packet.ggg27 = array2307
array2308 = buffer.readBooleanArray()
array2308 = buffer.readBoolArray()
packet.ggg28 = array2308
array2309 = buffer.readBooleanArray()
array2309 = buffer.readBoolArray()
packet.ggg29 = array2309
array2310 = buffer.readBooleanArray()
array2310 = buffer.readBoolArray()
packet.ggg3 = array2310
array2311 = buffer.readBooleanArray()
array2311 = buffer.readBoolArray()
packet.ggg30 = array2311
array2312 = buffer.readBooleanArray()
array2312 = buffer.readBoolArray()
packet.ggg31 = array2312
array2313 = buffer.readBooleanArray()
array2313 = buffer.readBoolArray()
packet.ggg32 = array2313
array2314 = buffer.readBooleanArray()
array2314 = buffer.readBoolArray()
packet.ggg33 = array2314
array2315 = buffer.readBooleanArray()
array2315 = buffer.readBoolArray()
packet.ggg34 = array2315
array2316 = buffer.readBooleanArray()
array2316 = buffer.readBoolArray()
packet.ggg35 = array2316
array2317 = buffer.readBooleanArray()
array2317 = buffer.readBoolArray()
packet.ggg36 = array2317
array2318 = buffer.readBooleanArray()
array2318 = buffer.readBoolArray()
packet.ggg37 = array2318
array2319 = buffer.readBooleanArray()
array2319 = buffer.readBoolArray()
packet.ggg38 = array2319
array2320 = buffer.readBooleanArray()
array2320 = buffer.readBoolArray()
packet.ggg39 = array2320
array2321 = buffer.readBooleanArray()
array2321 = buffer.readBoolArray()
packet.ggg4 = array2321
array2322 = buffer.readBooleanArray()
array2322 = buffer.readBoolArray()
packet.ggg40 = array2322
array2323 = buffer.readBooleanArray()
array2323 = buffer.readBoolArray()
packet.ggg41 = array2323
array2324 = buffer.readBooleanArray()
array2324 = buffer.readBoolArray()
packet.ggg42 = array2324
array2325 = buffer.readBooleanArray()
array2325 = buffer.readBoolArray()
packet.ggg43 = array2325
array2326 = buffer.readBooleanArray()
array2326 = buffer.readBoolArray()
packet.ggg44 = array2326
array2327 = buffer.readBooleanArray()
array2327 = buffer.readBoolArray()
packet.ggg45 = array2327
array2328 = buffer.readBooleanArray()
array2328 = buffer.readBoolArray()
packet.ggg46 = array2328
array2329 = buffer.readBooleanArray()
array2329 = buffer.readBoolArray()
packet.ggg47 = array2329
array2330 = buffer.readBooleanArray()
array2330 = buffer.readBoolArray()
packet.ggg48 = array2330
array2331 = buffer.readBooleanArray()
array2331 = buffer.readBoolArray()
packet.ggg49 = array2331
array2332 = buffer.readBooleanArray()
array2332 = buffer.readBoolArray()
packet.ggg5 = array2332
array2333 = buffer.readBooleanArray()
array2333 = buffer.readBoolArray()
packet.ggg50 = array2333
array2334 = buffer.readBooleanArray()
array2334 = buffer.readBoolArray()
packet.ggg51 = array2334
array2335 = buffer.readBooleanArray()
array2335 = buffer.readBoolArray()
packet.ggg52 = array2335
array2336 = buffer.readBooleanArray()
array2336 = buffer.readBoolArray()
packet.ggg53 = array2336
array2337 = buffer.readBooleanArray()
array2337 = buffer.readBoolArray()
packet.ggg54 = array2337
array2338 = buffer.readBooleanArray()
array2338 = buffer.readBoolArray()
packet.ggg55 = array2338
array2339 = buffer.readBooleanArray()
array2339 = buffer.readBoolArray()
packet.ggg56 = array2339
array2340 = buffer.readBooleanArray()
array2340 = buffer.readBoolArray()
packet.ggg57 = array2340
array2341 = buffer.readBooleanArray()
array2341 = buffer.readBoolArray()
packet.ggg58 = array2341
array2342 = buffer.readBooleanArray()
array2342 = buffer.readBoolArray()
packet.ggg59 = array2342
array2343 = buffer.readBooleanArray()
array2343 = buffer.readBoolArray()
packet.ggg6 = array2343
array2344 = buffer.readBooleanArray()
array2344 = buffer.readBoolArray()
packet.ggg60 = array2344
array2345 = buffer.readBooleanArray()
array2345 = buffer.readBoolArray()
packet.ggg61 = array2345
array2346 = buffer.readBooleanArray()
array2346 = buffer.readBoolArray()
packet.ggg62 = array2346
array2347 = buffer.readBooleanArray()
array2347 = buffer.readBoolArray()
packet.ggg63 = array2347
array2348 = buffer.readBooleanArray()
array2348 = buffer.readBoolArray()
packet.ggg64 = array2348
array2349 = buffer.readBooleanArray()
array2349 = buffer.readBoolArray()
packet.ggg65 = array2349
array2350 = buffer.readBooleanArray()
array2350 = buffer.readBoolArray()
packet.ggg66 = array2350
array2351 = buffer.readBooleanArray()
array2351 = buffer.readBoolArray()
packet.ggg67 = array2351
array2352 = buffer.readBooleanArray()
array2352 = buffer.readBoolArray()
packet.ggg68 = array2352
array2353 = buffer.readBooleanArray()
array2353 = buffer.readBoolArray()
packet.ggg69 = array2353
array2354 = buffer.readBooleanArray()
array2354 = buffer.readBoolArray()
packet.ggg7 = array2354
array2355 = buffer.readBooleanArray()
array2355 = buffer.readBoolArray()
packet.ggg70 = array2355
array2356 = buffer.readBooleanArray()
array2356 = buffer.readBoolArray()
packet.ggg71 = array2356
array2357 = buffer.readBooleanArray()
array2357 = buffer.readBoolArray()
packet.ggg72 = array2357
array2358 = buffer.readBooleanArray()
array2358 = buffer.readBoolArray()
packet.ggg73 = array2358
array2359 = buffer.readBooleanArray()
array2359 = buffer.readBoolArray()
packet.ggg74 = array2359
array2360 = buffer.readBooleanArray()
array2360 = buffer.readBoolArray()
packet.ggg75 = array2360
array2361 = buffer.readBooleanArray()
array2361 = buffer.readBoolArray()
packet.ggg76 = array2361
array2362 = buffer.readBooleanArray()
array2362 = buffer.readBoolArray()
packet.ggg77 = array2362
array2363 = buffer.readBooleanArray()
array2363 = buffer.readBoolArray()
packet.ggg78 = array2363
array2364 = buffer.readBooleanArray()
array2364 = buffer.readBoolArray()
packet.ggg79 = array2364
array2365 = buffer.readBooleanArray()
array2365 = buffer.readBoolArray()
packet.ggg8 = array2365
array2366 = buffer.readBooleanArray()
array2366 = buffer.readBoolArray()
packet.ggg80 = array2366
array2367 = buffer.readBooleanArray()
array2367 = buffer.readBoolArray()
packet.ggg81 = array2367
array2368 = buffer.readBooleanArray()
array2368 = buffer.readBoolArray()
packet.ggg82 = array2368
array2369 = buffer.readBooleanArray()
array2369 = buffer.readBoolArray()
packet.ggg83 = array2369
array2370 = buffer.readBooleanArray()
array2370 = buffer.readBoolArray()
packet.ggg84 = array2370
array2371 = buffer.readBooleanArray()
array2371 = buffer.readBoolArray()
packet.ggg85 = array2371
array2372 = buffer.readBooleanArray()
array2372 = buffer.readBoolArray()
packet.ggg86 = array2372
array2373 = buffer.readBooleanArray()
array2373 = buffer.readBoolArray()
packet.ggg87 = array2373
array2374 = buffer.readBooleanArray()
array2374 = buffer.readBoolArray()
packet.ggg88 = array2374
array2375 = buffer.readBooleanArray()
array2375 = buffer.readBoolArray()
packet.ggg9 = array2375
array2376 = buffer.readBooleanArray()
array2376 = buffer.readBoolArray()
packet.gggg1 = array2376
array2377 = buffer.readBooleanArray()
array2377 = buffer.readBoolArray()
packet.gggg10 = array2377
array2378 = buffer.readBooleanArray()
array2378 = buffer.readBoolArray()
packet.gggg11 = array2378
array2379 = buffer.readBooleanArray()
array2379 = buffer.readBoolArray()
packet.gggg12 = array2379
array2380 = buffer.readBooleanArray()
array2380 = buffer.readBoolArray()
packet.gggg13 = array2380
array2381 = buffer.readBooleanArray()
array2381 = buffer.readBoolArray()
packet.gggg14 = array2381
array2382 = buffer.readBooleanArray()
array2382 = buffer.readBoolArray()
packet.gggg15 = array2382
array2383 = buffer.readBooleanArray()
array2383 = buffer.readBoolArray()
packet.gggg16 = array2383
array2384 = buffer.readBooleanArray()
array2384 = buffer.readBoolArray()
packet.gggg17 = array2384
array2385 = buffer.readBooleanArray()
array2385 = buffer.readBoolArray()
packet.gggg18 = array2385
array2386 = buffer.readBooleanArray()
array2386 = buffer.readBoolArray()
packet.gggg19 = array2386
array2387 = buffer.readBooleanArray()
array2387 = buffer.readBoolArray()
packet.gggg2 = array2387
array2388 = buffer.readBooleanArray()
array2388 = buffer.readBoolArray()
packet.gggg20 = array2388
array2389 = buffer.readBooleanArray()
array2389 = buffer.readBoolArray()
packet.gggg21 = array2389
array2390 = buffer.readBooleanArray()
array2390 = buffer.readBoolArray()
packet.gggg22 = array2390
array2391 = buffer.readBooleanArray()
array2391 = buffer.readBoolArray()
packet.gggg23 = array2391
array2392 = buffer.readBooleanArray()
array2392 = buffer.readBoolArray()
packet.gggg24 = array2392
array2393 = buffer.readBooleanArray()
array2393 = buffer.readBoolArray()
packet.gggg25 = array2393
array2394 = buffer.readBooleanArray()
array2394 = buffer.readBoolArray()
packet.gggg26 = array2394
array2395 = buffer.readBooleanArray()
array2395 = buffer.readBoolArray()
packet.gggg27 = array2395
array2396 = buffer.readBooleanArray()
array2396 = buffer.readBoolArray()
packet.gggg28 = array2396
array2397 = buffer.readBooleanArray()
array2397 = buffer.readBoolArray()
packet.gggg29 = array2397
array2398 = buffer.readBooleanArray()
array2398 = buffer.readBoolArray()
packet.gggg3 = array2398
array2399 = buffer.readBooleanArray()
array2399 = buffer.readBoolArray()
packet.gggg30 = array2399
array2400 = buffer.readBooleanArray()
array2400 = buffer.readBoolArray()
packet.gggg31 = array2400
array2401 = buffer.readBooleanArray()
array2401 = buffer.readBoolArray()
packet.gggg32 = array2401
array2402 = buffer.readBooleanArray()
array2402 = buffer.readBoolArray()
packet.gggg33 = array2402
array2403 = buffer.readBooleanArray()
array2403 = buffer.readBoolArray()
packet.gggg34 = array2403
array2404 = buffer.readBooleanArray()
array2404 = buffer.readBoolArray()
packet.gggg35 = array2404
array2405 = buffer.readBooleanArray()
array2405 = buffer.readBoolArray()
packet.gggg36 = array2405
array2406 = buffer.readBooleanArray()
array2406 = buffer.readBoolArray()
packet.gggg37 = array2406
array2407 = buffer.readBooleanArray()
array2407 = buffer.readBoolArray()
packet.gggg38 = array2407
array2408 = buffer.readBooleanArray()
array2408 = buffer.readBoolArray()
packet.gggg39 = array2408
array2409 = buffer.readBooleanArray()
array2409 = buffer.readBoolArray()
packet.gggg4 = array2409
array2410 = buffer.readBooleanArray()
array2410 = buffer.readBoolArray()
packet.gggg40 = array2410
array2411 = buffer.readBooleanArray()
array2411 = buffer.readBoolArray()
packet.gggg41 = array2411
array2412 = buffer.readBooleanArray()
array2412 = buffer.readBoolArray()
packet.gggg42 = array2412
array2413 = buffer.readBooleanArray()
array2413 = buffer.readBoolArray()
packet.gggg43 = array2413
array2414 = buffer.readBooleanArray()
array2414 = buffer.readBoolArray()
packet.gggg44 = array2414
array2415 = buffer.readBooleanArray()
array2415 = buffer.readBoolArray()
packet.gggg45 = array2415
array2416 = buffer.readBooleanArray()
array2416 = buffer.readBoolArray()
packet.gggg46 = array2416
array2417 = buffer.readBooleanArray()
array2417 = buffer.readBoolArray()
packet.gggg47 = array2417
array2418 = buffer.readBooleanArray()
array2418 = buffer.readBoolArray()
packet.gggg48 = array2418
array2419 = buffer.readBooleanArray()
array2419 = buffer.readBoolArray()
packet.gggg49 = array2419
array2420 = buffer.readBooleanArray()
array2420 = buffer.readBoolArray()
packet.gggg5 = array2420
array2421 = buffer.readBooleanArray()
array2421 = buffer.readBoolArray()
packet.gggg50 = array2421
array2422 = buffer.readBooleanArray()
array2422 = buffer.readBoolArray()
packet.gggg51 = array2422
array2423 = buffer.readBooleanArray()
array2423 = buffer.readBoolArray()
packet.gggg52 = array2423
array2424 = buffer.readBooleanArray()
array2424 = buffer.readBoolArray()
packet.gggg53 = array2424
array2425 = buffer.readBooleanArray()
array2425 = buffer.readBoolArray()
packet.gggg54 = array2425
array2426 = buffer.readBooleanArray()
array2426 = buffer.readBoolArray()
packet.gggg55 = array2426
array2427 = buffer.readBooleanArray()
array2427 = buffer.readBoolArray()
packet.gggg56 = array2427
array2428 = buffer.readBooleanArray()
array2428 = buffer.readBoolArray()
packet.gggg57 = array2428
array2429 = buffer.readBooleanArray()
array2429 = buffer.readBoolArray()
packet.gggg58 = array2429
array2430 = buffer.readBooleanArray()
array2430 = buffer.readBoolArray()
packet.gggg59 = array2430
array2431 = buffer.readBooleanArray()
array2431 = buffer.readBoolArray()
packet.gggg6 = array2431
array2432 = buffer.readBooleanArray()
array2432 = buffer.readBoolArray()
packet.gggg60 = array2432
array2433 = buffer.readBooleanArray()
array2433 = buffer.readBoolArray()
packet.gggg61 = array2433
array2434 = buffer.readBooleanArray()
array2434 = buffer.readBoolArray()
packet.gggg62 = array2434
array2435 = buffer.readBooleanArray()
array2435 = buffer.readBoolArray()
packet.gggg63 = array2435
array2436 = buffer.readBooleanArray()
array2436 = buffer.readBoolArray()
packet.gggg64 = array2436
array2437 = buffer.readBooleanArray()
array2437 = buffer.readBoolArray()
packet.gggg65 = array2437
array2438 = buffer.readBooleanArray()
array2438 = buffer.readBoolArray()
packet.gggg66 = array2438
array2439 = buffer.readBooleanArray()
array2439 = buffer.readBoolArray()
packet.gggg67 = array2439
array2440 = buffer.readBooleanArray()
array2440 = buffer.readBoolArray()
packet.gggg68 = array2440
array2441 = buffer.readBooleanArray()
array2441 = buffer.readBoolArray()
packet.gggg69 = array2441
array2442 = buffer.readBooleanArray()
array2442 = buffer.readBoolArray()
packet.gggg7 = array2442
array2443 = buffer.readBooleanArray()
array2443 = buffer.readBoolArray()
packet.gggg70 = array2443
array2444 = buffer.readBooleanArray()
array2444 = buffer.readBoolArray()
packet.gggg71 = array2444
array2445 = buffer.readBooleanArray()
array2445 = buffer.readBoolArray()
packet.gggg72 = array2445
array2446 = buffer.readBooleanArray()
array2446 = buffer.readBoolArray()
packet.gggg73 = array2446
array2447 = buffer.readBooleanArray()
array2447 = buffer.readBoolArray()
packet.gggg74 = array2447
array2448 = buffer.readBooleanArray()
array2448 = buffer.readBoolArray()
packet.gggg75 = array2448
array2449 = buffer.readBooleanArray()
array2449 = buffer.readBoolArray()
packet.gggg76 = array2449
array2450 = buffer.readBooleanArray()
array2450 = buffer.readBoolArray()
packet.gggg77 = array2450
array2451 = buffer.readBooleanArray()
array2451 = buffer.readBoolArray()
packet.gggg78 = array2451
array2452 = buffer.readBooleanArray()
array2452 = buffer.readBoolArray()
packet.gggg79 = array2452
array2453 = buffer.readBooleanArray()
array2453 = buffer.readBoolArray()
packet.gggg8 = array2453
array2454 = buffer.readBooleanArray()
array2454 = buffer.readBoolArray()
packet.gggg80 = array2454
array2455 = buffer.readBooleanArray()
array2455 = buffer.readBoolArray()
packet.gggg81 = array2455
array2456 = buffer.readBooleanArray()
array2456 = buffer.readBoolArray()
packet.gggg82 = array2456
array2457 = buffer.readBooleanArray()
array2457 = buffer.readBoolArray()
packet.gggg83 = array2457
array2458 = buffer.readBooleanArray()
array2458 = buffer.readBoolArray()
packet.gggg84 = array2458
array2459 = buffer.readBooleanArray()
array2459 = buffer.readBoolArray()
packet.gggg85 = array2459
array2460 = buffer.readBooleanArray()
array2460 = buffer.readBoolArray()
packet.gggg86 = array2460
array2461 = buffer.readBooleanArray()
array2461 = buffer.readBoolArray()
packet.gggg87 = array2461
array2462 = buffer.readBooleanArray()
array2462 = buffer.readBoolArray()
packet.gggg88 = array2462
array2463 = buffer.readBooleanArray()
array2463 = buffer.readBoolArray()
packet.gggg9 = array2463
result2464 = buffer.readString()
packet.jj1 = result2464
@@ -43,14 +43,14 @@ class ByteBuffer {
def getWriteOffset: Int = writeOffset
def setWriteOffset(writeIndex: Int): Unit = {
if (writeIndex > buffer.length) throw new RuntimeException("writeIndex[" + writeIndex + "] out of bounds exception: readerIndex: " + readOffset + ", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.length)
if (writeIndex > buffer.length) throw new RuntimeException("writeIndex[" + writeIndex + "] out of bounds exception: readOffset: " + readOffset + ", writeOffset: " + writeOffset + "(expected: 0 <= readOffset <= writeOffset <= capacity:" + buffer.length + ")")
writeOffset = writeIndex
}
def getReadOffset: Int = readOffset
def setReadOffset(readIndex: Int): Unit = {
if (readIndex > writeOffset) throw new RuntimeException("readIndex[" + readIndex + "] out of bounds exception: readerIndex: " + readOffset + ", writerIndex: " + writeOffset + "(expected: 0 <= readerIndex <= writerIndex <= capacity:" + buffer.length)
if (readIndex > writeOffset) throw new RuntimeException("readIndex[" + readIndex + "] out of bounds exception: readOffset: " + readOffset + ", writeOffset: " + writeOffset + "(expected: 0 <= readOffset <= writeOffset <= capacity:" + buffer.length + ")")
readOffset = readIndex
}