aboutsummaryrefslogtreecommitdiff
path: root/pkg/messages/types/svcClassInfo.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-12 20:53:09 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-16 21:39:42 +0300
commit82871ba1bac1d62f69e1933b66659e62d2e5e063 (patch)
treea906310fba89b670bcfda9625a6d776553d482f6 /pkg/messages/types/svcClassInfo.go
parentnet/svc messages finally getting parsed correctly (diff)
downloadsdp.go-82871ba1bac1d62f69e1933b66659e62d2e5e063.tar.gz
sdp.go-82871ba1bac1d62f69e1933b66659e62d2e5e063.tar.bz2
sdp.go-82871ba1bac1d62f69e1933b66659e62d2e5e063.zip
another rewrite, v1.0.0
Diffstat (limited to 'pkg/messages/types/svcClassInfo.go')
-rw-r--r--pkg/messages/types/svcClassInfo.go40
1 files changed, 40 insertions, 0 deletions
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 @@
1package messages
2
3import (
4 "fmt"
5 "math"
6
7 "github.com/pektezol/bitreader"
8)
9
10type SvcClassInfo struct {
11 Length int16
12 CreateOnClient bool
13 ServerClasses []serverClass
14}
15
16type serverClass struct {
17 ClassId int16
18 ClassName string
19 DataTableName string
20}
21
22func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo {
23 svcClassInfo := SvcClassInfo{
24 Length: int16(reader.TryReadBits(16)),
25 CreateOnClient: reader.TryReadBool(),
26 }
27 classes := []serverClass{}
28 if !svcClassInfo.CreateOnClient {
29 for count := 0; count < int(svcClassInfo.Length); count++ {
30 fmt.Println(classes)
31 classes = append(classes, serverClass{
32 ClassId: int16(reader.TryReadBits(int(math.Log2(float64(svcClassInfo.Length)) + 1))),
33 ClassName: reader.TryReadString(),
34 DataTableName: reader.TryReadString(),
35 })
36 }
37 }
38 svcClassInfo.ServerClasses = classes
39 return svcClassInfo
40}