This commit is contained in:
milek7
2019-01-01 00:26:11 +01:00
parent 4db460d655
commit 63afece4a6
24 changed files with 563 additions and 297 deletions

View File

@@ -3,15 +3,23 @@
#include <memory>
#include <functional>
#include <optional>
#include <queue>
#include <chrono>
#include "network/message.h"
#include "command.h"
namespace network
{
class connection : public std::enable_shared_from_this<connection>
{
private:
void message_received(message &msg);
void send_message(message &msg);
void message_received(std::shared_ptr<message> &msg);
std::queue<
std::pair<std::chrono::high_resolution_clock::time_point,
std::shared_ptr<delta_message>>> delta_queue;
//std::chrono::high_resolution_clock::time_point last_time;
//double accum = -1.0;
protected:
virtual void disconnect() = 0;
@@ -20,16 +28,27 @@ namespace network
void data_received(std::string &buffer);
public:
void send_message(std::shared_ptr<message> msg);
virtual void connected();
std::tuple<double, command_queue::commanddatasequence_map> get_next_delta();
};
class server
{
protected:
std::vector<std::shared_ptr<connection>> clients;
public:
void push_delta(double dt, command_queue::commanddatasequence_map commands);
};
class client
{
protected:
std::shared_ptr<connection> conn;
public:
std::tuple<double, command_queue::commanddatasequence_map> get_next_delta();
};
}