X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=serverpool.cpp;h=cf6933ccda181e23f4f7f7d85e353ec11b7d805a;hp=f8fece60a43c0a17d303c74dbd48e9e5a986d695;hb=742f56c25bdd54dc438b21cb5e422de520bc7231;hpb=b59fa7ce2d47f135ea027548cc89f937a5fa875b diff --git a/serverpool.cpp b/serverpool.cpp index f8fece6..cf6933c 100644 --- a/serverpool.cpp +++ b/serverpool.cpp @@ -16,7 +16,7 @@ ServerPool::~ServerPool() void ServerPool::add_client(int sock) { - servers[clients_added++ % num_servers].add_client(sock); + servers[clients_added++ % num_servers].add_client_deferred(sock); } void ServerPool::add_client_from_serialized(const ClientProto &client) @@ -48,7 +48,7 @@ void ServerPool::set_header(const std::string &stream_id, const std::string &hea void ServerPool::add_data(const std::string &stream_id, const char *data, size_t bytes) { for (int i = 0; i < num_servers; ++i) { - servers[i].add_data(stream_id, data, bytes); + servers[i].add_data_deferred(stream_id, data, bytes); } } @@ -58,3 +58,27 @@ void ServerPool::run() servers[i].run(); } } + +void ServerPool::stop() +{ + for (int i = 0; i < num_servers; ++i) { + servers[i].stop(); + } +} + +vector ServerPool::get_client_stats() const +{ + vector ret; + for (int i = 0; i < num_servers; ++i) { + vector stats = servers[i].get_client_stats(); + ret.insert(ret.end(), stats.begin(), stats.end()); + } + return ret; +} + +void ServerPool::set_mark_pool(const std::string &stream_id, MarkPool *mark_pool) +{ + for (int i = 0; i < num_servers; ++i) { + servers[i].set_mark_pool(stream_id, mark_pool); + } +}