#include "NetworkNode.hh"
NetworkNode::NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP &udp, const NetworkAddress &address) :
session(session), tcp(tcp), udp(udp), address(address) {
// connect signals
}
NetworkNode::~NetworkNode (void) {
delete tcp;
}
void NetworkNode::send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true) {
assert(channel_id > 0);
// add our header
NetworkPacket pkt2;
pkt2.write_uint16(channel_id);
pkt2.write_packet(pkt);
// either tcp or udp
if (reliable) {
assert(tcp);
tcp->write_packet(pkt2);
} else {
udp.sendto(pkt2, address);
}
}
const NetworkAddress& NetworkNode::getRemoteAddress (void) {
return address;
}