From 82871ba1bac1d62f69e1933b66659e62d2e5e063 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Tue, 12 Sep 2023 20:53:09 +0300 Subject: another rewrite, v1.0.0 --- pkg/messages/types/svcClassInfo.go | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pkg/messages/types/svcClassInfo.go (limited to 'pkg/messages/types/svcClassInfo.go') diff --git a/pkg/messages/types/svcClassInfo.go b/pkg/messages/types/svcClassInfo.go new file mode 100644 index 0000000..9f367d3 --- /dev/null +++ b/pkg/messages/types/svcClassInfo.go @@ -0,0 +1,40 @@ +package messages + +import ( + "fmt" + "math" + + "github.com/pektezol/bitreader" +) + +type SvcClassInfo struct { + Length int16 + CreateOnClient bool + ServerClasses []serverClass +} + +type serverClass struct { + ClassId int16 + ClassName string + DataTableName string +} + +func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { + svcClassInfo := SvcClassInfo{ + Length: int16(reader.TryReadBits(16)), + CreateOnClient: reader.TryReadBool(), + } + classes := []serverClass{} + if !svcClassInfo.CreateOnClient { + for count := 0; count < int(svcClassInfo.Length); count++ { + fmt.Println(classes) + classes = append(classes, serverClass{ + ClassId: int16(reader.TryReadBits(int(math.Log2(float64(svcClassInfo.Length)) + 1))), + ClassName: reader.TryReadString(), + DataTableName: reader.TryReadString(), + }) + } + } + svcClassInfo.ServerClasses = classes + return svcClassInfo +} -- cgit v1.2.3