#ifndef _SERVERPOOL_H
#define _SERVERPOOL_H 1
-#include "server.h"
-
+#include <stddef.h>
+#include <string>
#include <vector>
+#include "server.h"
+#include "state.pb.h"
+
class MarkPool;
+class Server;
+struct ClientStats;
// Provides services such as load-balancing between a number of Server instances.
class ServerPool {
void add_client_from_serialized(const ClientProto &client);
// Adds the given stream to all the servers.
- void add_stream(const std::string &stream_id, size_t backlog_size);
+ void add_stream(const std::string &stream_id, size_t backlog_size, Stream::Encoding encoding);
void add_stream_from_serialized(const StreamProto &stream);
// Adds the given data to all the servers.
- void set_header(const std::string &stream_id, const std::string &header);
+ void set_header(const std::string &stream_id,
+ const std::string &http_header,
+ const std::string &stream_header);
void add_data(const std::string &stream_id, const char *data, size_t bytes);
// Connects the given stream to the given mark pool for all the servers.
void set_mark_pool(const std::string &stream_id, MarkPool *mark_pool);
+ // Changes the given stream's backlog size on all the servers.
+ void set_backlog_size(const std::string &stream_id, size_t new_size);
+
+ // Changes the given stream's encoding type on all the servers.
+ void set_encoding(const std::string &stream_id, Stream::Encoding encoding);
+
// Starts all the servers.
void run();