refactoring
Some checks failed
BlockStorage/repertory_osx_builds/pipeline/head This commit looks good
BlockStorage/repertory_linux_builds/pipeline/head There was a failure building this commit

This commit is contained in:
2023-12-15 17:58:49 -06:00
parent 34c4a9c508
commit 71686405e0
41 changed files with 1436 additions and 709 deletions

View File

@@ -30,8 +30,7 @@ namespace repertory {
class packet_client final {
private:
struct client final {
explicit client(boost::asio::io_context &ctx) : nonce(""), socket(ctx) {}
explicit client(boost::asio::io_context &ctx) : socket(ctx) {}
std::string nonce;
tcp::socket socket;
};
@@ -43,34 +42,40 @@ public:
~packet_client();
packet_client(const packet_client &) = delete;
packet_client(packet_client &&) = delete;
auto operator=(const packet_client &) -> packet_client & = delete;
auto operator=(packet_client &&) -> packet_client & = delete;
private:
boost::asio::io_context io_context_;
const std::string host_name_or_ip_;
const std::uint8_t max_connections_;
const std::uint16_t port_;
const std::uint16_t receive_timeout_;
const std::uint16_t send_timeout_;
const std::string encryption_token_;
std::string host_name_or_ip_;
std::uint8_t max_connections_;
std::uint16_t port_;
std::uint16_t receive_timeout_;
std::uint16_t send_timeout_;
std::string encryption_token_;
std::string unique_id_;
bool allow_connections_ = true;
private:
bool allow_connections_{true};
boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::results_type
resolve_results_;
std::mutex clients_mutex_;
std::vector<std::shared_ptr<client>> clients_;
private:
void close(client &c) const;
static void close(client &cli);
void close_all();
void connect(client &c);
void connect(client &cli);
[[nodiscard]] auto get_client() -> std::shared_ptr<client>;
void put_client(std::shared_ptr<client> &c);
void put_client(std::shared_ptr<client> &cli);
[[nodiscard]] auto read_packet(client &c, packet &response)
[[nodiscard]] auto read_packet(client &cli, packet &response)
-> packet::error_type;
void resolve();

View File

@@ -45,6 +45,12 @@ public:
~packet_server();
public:
packet_server(const packet_server &) = delete;
packet_server(packet_server &&) = delete;
auto operator=(const packet_server &) -> packet_server & = delete;
auto operator=(packet_server &&) -> packet_server & = delete;
private:
struct connection {
connection(boost::asio::io_service &io_service, tcp::acceptor &acceptor_)
@@ -56,11 +62,11 @@ private:
std::string client_id;
std::string nonce;
void generate_nonce() { nonce = utils::generate_random_string(256u); }
void generate_nonce() { nonce = utils::generate_random_string(256U); }
};
private:
const std::string encryption_token_;
std::string encryption_token_;
closed_callback closed_;
message_handler_callback message_handler_;
boost::asio::io_context io_context_;
@@ -70,21 +76,22 @@ private:
std::unordered_map<std::string, std::uint32_t> connection_lookup_;
private:
void add_client(connection &c, const std::string &client_id);
void add_client(connection &conn, const std::string &client_id);
void initialize(const uint16_t &port, uint8_t pool_size);
void listen_for_connection(tcp::acceptor &acceptor);
void on_accept(std::shared_ptr<connection> c, boost::system::error_code ec);
void on_accept(std::shared_ptr<connection> conn,
boost::system::error_code err);
void read_header(std::shared_ptr<connection> c);
void read_header(std::shared_ptr<connection> conn);
void read_packet(std::shared_ptr<connection> c, std::uint32_t data_size);
void read_packet(std::shared_ptr<connection> conn, std::uint32_t data_size);
void remove_client(connection &c);
void remove_client(connection &conn);
void send_response(std::shared_ptr<connection> c,
void send_response(std::shared_ptr<connection> conn,
const packet::error_type &result, packet &response);
};
} // namespace repertory