X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=serverpool.cpp;fp=serverpool.cpp;h=c3fc69d04a3414fd00fee354966bc02a886c8d11;hp=9f4f3a42eb2e039d7ce7bd753653b4115f2097fa;hb=ed218ece51e5be77fd8bd8f014b5f05708e4be5b;hpb=49851eb86428de7a76b00ea4067cdf32c28e7397 diff --git a/serverpool.cpp b/serverpool.cpp index 9f4f3a4..c3fc69d 100644 --- a/serverpool.cpp +++ b/serverpool.cpp @@ -43,6 +43,9 @@ CubemapStateProto ServerPool::serialize() for (const ClientProto &client : local_state.clients()) { state.add_clients()->MergeFrom(client); } + for (const HLSZombieProto &hls_zombie : local_state.hls_zombies()) { + state.add_hls_zombies()->MergeFrom(hls_zombie); + } } for (size_t i = 0; i < short_response_pool.size(); ++i) { @@ -65,6 +68,12 @@ void ServerPool::add_client_from_serialized(const ClientProto &client, const std servers[clients_added++ % num_servers].add_client_from_serialized(client, short_responses); } +// It's fine to abuse clients_added here, since it's only ever used for round-robin purposes. +void ServerPool::add_hls_zombie_from_serialized(const HLSZombieProto &hls_zombie) +{ + servers[clients_added++ % num_servers].add_hls_zombie_from_serialized(hls_zombie); +} + int ServerPool::lookup_stream_by_url(const string &url) const { assert(servers != nullptr); @@ -206,7 +215,17 @@ vector ServerPool::get_client_stats() const } return ret; } - + +vector ServerPool::get_hls_zombies() const +{ + vector ret; + for (int i = 0; i < num_servers; ++i) { + vector stats = servers[i].get_hls_zombies(); + ret.insert(ret.end(), stats.begin(), stats.end()); + } + return ret; +} + void ServerPool::set_pacing_rate(int stream_index, uint32_t pacing_rate) { for (int i = 0; i < num_servers; ++i) {