#pragma once #include #include #include #include #include #include #include "network/message.h" #include "command.h" namespace network { class connection : public std::enable_shared_from_this { private: void message_received(std::shared_ptr &msg); std::queue< std::pair>> delta_queue; //std::chrono::high_resolution_clock::time_point last_time; //double accum = -1.0; protected: virtual void disconnect() = 0; virtual void send_data(std::shared_ptr buffer) = 0; void data_received(std::string &buffer); public: void send_message(std::shared_ptr msg); virtual void connected(); std::tuple get_next_delta(); }; class server { protected: std::vector> clients; public: void push_delta(double dt, command_queue::commanddatasequence_map commands); }; class client { protected: std::shared_ptr conn; public: std::tuple get_next_delta(); }; }