R-Type 0.1
Loading...
Searching...
No Matches
Connection.hpp
1#pragma once
2
8#include <asio.hpp>
9#include <asio/ip/udp.hpp>
10#include <cstdint>
11
12#include "../protocol/PacketHeader.hpp"
13#include "../tracking/PacketTracker.hpp"
14
19public:
25 Connection(std::uint32_t id, const asio::ip::udp::endpoint &endpoint);
26
31 std::uint32_t getId() const;
32
37 const asio::ip::udp::endpoint &getEndpoint() const;
38
44
51
52private:
53 std::uint32_t _id;
54 asio::ip::udp::endpoint _endpoint;
55 PacketTracker _tracker;
56};
57
State the server keeps for one connected client.
Definition Connection.hpp:18
std::uint32_t getId() const
Returns the connection id.
Definition Connection.cpp:7
Connection(std::uint32_t id, const asio::ip::udp::endpoint &endpoint)
Creates a connection bound to a client address.
Definition Connection.cpp:3
PacketHeader makeHeader()
Builds the header of the next outgoing packet.
Definition Connection.cpp:13
const asio::ip::udp::endpoint & getEndpoint() const
Returns the client address.
Definition Connection.cpp:9
PacketReceiveRes onPacketReceived(const PacketHeader &header)
Records an incoming packet in the acknowledgement state.
Definition Connection.cpp:24
Generates outgoing sequence numbers and tracks received ones.
Definition PacketTracker.hpp:23
PacketReceiveRes
Classification of a received packet sequence number.
Definition PacketTracker.hpp:13
Header that starts every packet sent on an open connection.
Definition PacketHeader.hpp:23