#pragma once #include "base_server.hpp" #include namespace demonware { class tcp_server : public base_server { public: using base_server::base_server; void handle_input(const char* buf, size_t size); size_t handle_output(char* buf, size_t size); bool pending_data(); void frame() override; protected: virtual void handle(const std::string& data) = 0; void send(const std::string& data); private: utilities::concurrency::container in_queue_; utilities::concurrency::container out_queue_; }; }