equal
deleted
inserted
replaced
|
1 |
|
2 #include <cassert> |
1 |
3 |
2 #include "NetworkNode.hh" |
4 #include "NetworkNode.hh" |
3 |
5 |
4 NetworkNode::NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP &udp, const NetworkAddress &address) : |
6 NetworkNode::NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &address) : |
5 session(session), tcp(tcp), udp(udp), address(address) { |
7 session(session), tcp(tcp), udp(udp), address(address) { |
6 |
8 |
7 // connect signals |
9 // connect signals |
8 slots.connect(tcp->sig_disconnect(), this, &NetworkNode::on_disconnect); |
10 slots.connect(tcp->sig_disconnect(), this, &NetworkNode::on_disconnect); |
9 |
11 |
11 |
13 |
12 NetworkNode::~NetworkNode (void) { |
14 NetworkNode::~NetworkNode (void) { |
13 delete tcp; |
15 delete tcp; |
14 } |
16 } |
15 |
17 |
16 void on_disconnect (void) { |
18 void NetworkNode::on_disconnect (void) { |
17 // tell session |
19 // tell session |
18 session.handle_disconnect(this); |
20 session.handle_disconnect(this); |
19 |
21 |
20 // fire signal |
22 // fire signal |
21 _sig_disconnected(); |
23 _sig_disconnected(); |
22 |
24 |
23 // delete |
25 // delete |
24 delete this; |
26 delete this; |
25 } |
27 } |
26 |
28 |
27 void NetworkNode::send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true) { |
29 void NetworkNode::send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable) { |
28 assert(channel_id > 0); |
30 assert(channel_id > 0); |
29 |
31 |
30 // add our header |
32 // add our header |
31 NetworkPacket pkt2; |
33 NetworkPacket pkt2; |
32 pkt2.write_uint16(channel_id); |
34 pkt2.write_uint16(channel_id); |
37 assert(tcp); |
39 assert(tcp); |
38 |
40 |
39 tcp->write_packet(pkt2); |
41 tcp->write_packet(pkt2); |
40 |
42 |
41 } else { |
43 } else { |
42 udp.sendto(pkt2, address); |
44 udp->sendto(pkt2, address); |
43 } |
45 } |
44 } |
46 } |
45 |
47 |
46 const NetworkAddress& NetworkNode::getRemoteAddress (void) { |
48 const NetworkAddress& NetworkNode::getRemoteAddress (void) { |
47 return address; |
49 return address; |