]> git.sesse.net Git - cubemap/blobdiff - serverpool.cpp
Move version identification into a common place.
[cubemap] / serverpool.cpp
index f8fece60a43c0a17d303c74dbd48e9e5a986d695..cf6933ccda181e23f4f7f7d85e353ec11b7d805a 100644 (file)
@@ -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<ClientStats> ServerPool::get_client_stats() const
+{
+       vector<ClientStats> ret;
+       for (int i = 0; i < num_servers; ++i) {
+               vector<ClientStats> 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);
+       }       
+}