aboutsummaryrefslogtreecommitdiff
path: root/packets/classes/datatable.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/classes/datatable.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/classes/datatable.go')
-rw-r--r--packets/classes/datatable.go66
1 files changed, 0 insertions, 66 deletions
diff --git a/packets/classes/datatable.go b/packets/classes/datatable.go
deleted file mode 100644
index 405dae6..0000000
--- a/packets/classes/datatable.go
+++ /dev/null
@@ -1,66 +0,0 @@
1package classes
2
3import (
4 "bytes"
5 "fmt"
6
7 "github.com/pektezol/bitreader"
8)
9
10type DataTable struct {
11 SendTable []SendTable
12 ServerClassInfo []ServerClassInfo
13}
14
15type SendTable struct {
16 NeedsDecoder bool
17 NetTableName string
18 NumOfProps uint16
19 SendPropType int8
20 SendPropName string
21 SendPropFlags int16
22}
23
24type ServerClassInfo struct {
25 ClassId int16
26 ClassName string
27 DataTableName string
28}
29
30func ParseDataTable(data []byte) DataTable {
31 reader := bitreader.Reader(bytes.NewReader(data), true)
32 sendtable := parseSendTable(reader)
33 serverclassinfo := parseServerClassInfo(reader)
34 return DataTable{
35 SendTable: sendtable,
36 ServerClassInfo: serverclassinfo,
37 }
38}
39
40func parseSendTable(reader *bitreader.ReaderType) []SendTable {
41 var sendtables []SendTable
42 for reader.TryReadBool() {
43 sendtables = append(sendtables, SendTable{
44 NeedsDecoder: reader.TryReadBool(),
45 NetTableName: reader.TryReadString(),
46 NumOfProps: uint16(reader.TryReadBits(10)),
47 SendPropType: int8(reader.TryReadBits(5)),
48 SendPropName: reader.TryReadString(),
49 SendPropFlags: int16(reader.TryReadInt16()),
50 })
51 }
52 return sendtables
53}
54func parseServerClassInfo(reader *bitreader.ReaderType) []ServerClassInfo {
55 var serverclassinfo []ServerClassInfo
56 numofclasses := reader.TryReadInt16()
57 fmt.Println(numofclasses)
58 for i := 0; i < int(numofclasses); i++ {
59 serverclassinfo = append(serverclassinfo, ServerClassInfo{
60 ClassId: int16(reader.TryReadInt16()),
61 ClassName: reader.TryReadString(),
62 DataTableName: reader.TryReadString(),
63 })
64 }
65 return serverclassinfo
66}