aboutsummaryrefslogtreecommitdiff
path: root/packets/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 /packets/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 'packets/messages/types/SvcClassInfo.go')
-rw-r--r--packets/messages/types/SvcClassInfo.go47
1 files changed, 0 insertions, 47 deletions
diff --git a/packets/messages/types/SvcClassInfo.go b/packets/messages/types/SvcClassInfo.go
deleted file mode 100644
index df17bfc..0000000
--- a/packets/messages/types/SvcClassInfo.go
+++ /dev/null
@@ -1,47 +0,0 @@
1package types
2
3import (
4 "github.com/pektezol/bitreader"
5)
6
7type SvcClassInfo struct {
8 CreateOnClient bool
9 ServerClasses []ServerClass
10}
11
12type ServerClass struct {
13 ClassId int32
14 ClassName string
15 DataTableName string
16}
17
18func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo {
19 length := reader.TryReadInt16()
20 createonclient := reader.TryReadBool()
21 var serverclasses []ServerClass
22 if !createonclient {
23 serverclasses := make([]ServerClass, length)
24 for i := 0; i < int(length); i++ {
25 id, err := reader.ReadBits(HighestBitIndex(uint(length)) + 1)
26 if err != nil {
27 panic(err)
28 }
29 serverclasses[i] = ServerClass{
30 ClassId: int32(id),
31 ClassName: reader.TryReadString(),
32 DataTableName: reader.TryReadString(),
33 }
34 }
35 }
36 return SvcClassInfo{
37 CreateOnClient: createonclient,
38 ServerClasses: serverclasses,
39 }
40}
41
42func HighestBitIndex(i uint) int {
43 var j int
44 for j = 31; j >= 0 && (i&(1<<j)) == 0; j-- {
45 }
46 return j
47}