1 #include "serverpool.h"
5 ServerPool::ServerPool(int size)
6 : servers(new Server[size]),
12 ServerPool::~ServerPool()
17 void ServerPool::add_client(int sock)
19 servers[clients_added++ % num_servers].add_client_deferred(sock);
22 void ServerPool::add_client_from_serialized(const ClientProto &client)
24 servers[clients_added++ % num_servers].add_client_from_serialized(client);
27 void ServerPool::add_stream(const std::string &stream_id)
29 for (int i = 0; i < num_servers; ++i) {
30 servers[i].add_stream(stream_id);
34 void ServerPool::add_stream_from_serialized(const StreamProto &stream)
36 for (int i = 0; i < num_servers; ++i) {
37 servers[i].add_stream_from_serialized(stream);
41 void ServerPool::set_header(const std::string &stream_id, const std::string &header)
43 for (int i = 0; i < num_servers; ++i) {
44 servers[i].set_header(stream_id, header);
48 void ServerPool::add_data(const std::string &stream_id, const char *data, size_t bytes)
50 for (int i = 0; i < num_servers; ++i) {
51 servers[i].add_data_deferred(stream_id, data, bytes);
55 void ServerPool::run()
57 for (int i = 0; i < num_servers; ++i) {
62 vector<ClientStats> ServerPool::get_client_stats() const
64 vector<ClientStats> ret;
65 for (int i = 0; i < num_servers; ++i) {
66 vector<ClientStats> stats = servers[i].get_client_stats();
67 ret.insert(ret.end(), stats.begin(), stats.end());
72 void ServerPool::set_mark_pool(const std::string &stream_id, MarkPool *mark_pool)
74 for (int i = 0; i < num_servers; ++i) {
75 servers[i].set_mark_pool(stream_id, mark_pool);