forked from organization/VRakLib
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvraklib.v
More file actions
87 lines (69 loc) · 1.85 KB
/
Copy pathvraklib.v
File metadata and controls
87 lines (69 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
module vraklib
import net
pub struct VRakLib {
pub mut:
channel_sessions chan OpenSessionData
channel_encapsulated chan HandleEncapsulatedData
channel_packetdata chan PutPacketData
address string
session_manager SessionManager
shutdown bool
}
pub fn new_vraklib(address string) VRakLib {
socket := create_socket(address) or { panic(err) }
sm := new_session_manager(socket)
vr := VRakLib{
address: address
session_manager: sm
}
return vr
}
pub fn (mut r VRakLib) start(ch1 chan OpenSessionData, ch2 chan HandleEncapsulatedData, ch3 chan PutPacketData) {
println('RakNet thread starting')
println('Address: ' + r.address)
// shared session_manager := new_session_manager(socket)
r.channel_sessions = ch1
r.channel_encapsulated = ch2
r.channel_packetdata = ch3
// r.session_manager = session_manager
// spawn r.session_manager.run()
socket := create_socket(r.address) or { panic(err) }
shared sm := new_session_manager(socket)
spawn sm.run()
}
// pub fn (mut r VRakLib) stop() {
// println('RakNet thread stopping')
// r.shutdown = true
// }
fn (r VRakLib) close_session() {
}
fn (mut r VRakLib) open_session(identifier string, address net.Addr, client_id u64) {
data := OpenSessionData{identifier, address, client_id}
r.channel_sessions <- data
}
fn (r VRakLib) handle_encapsulated(identifier string, packet EncapsulatedPacket, flags int) {
// p := BatchPacket {}
// player.handle_data_packet(p)
}
fn (r VRakLib) put_packet(identifier string, packet Packet, need_ack bool, immediate bool) {
}
fn (r VRakLib) update_ping() {
}
struct OpenSessionData {
mut:
identifier string
address net.Addr
client_id u64
}
struct HandleEncapsulatedData {
mut:
identifier string
packet EncapsulatedPacket
flags int
}
struct PutPacketData {
mut:
identifier string
packet EncapsulatedPacket
flags int
}