class Server {
public:
Server();
+ ~Server();
// Start a new thread that handles clients.
void run();
CubemapStateProto serialize() const;
void add_client(int sock);
+ void add_client_from_serialized(const ClientProto &client);
+
void add_stream(const std::string &stream_id);
+ void add_stream_from_serialized(const StreamProto &stream);
+
void set_header(const std::string &stream_id, const std::string &header);
void add_data(const std::string &stream_id, const char *data, size_t bytes);
// Close a given client socket, and clean up after it.
void close_client(Client *client);
- // Parse the HTTP request, construct the header, and set the client into
- // the SENDING_HEADER state.
+ // Parse the HTTP request.
void parse_request(Client *client);
+ // Construct the HTTP header, and set the client into
+ // the SENDING_HEADER state.
+ void construct_header(Client *client);
+
// Put client to sleep, since there is no more data for it; we will on
// longer listen on POLLOUT until we get more data. Also, it will be put
// in the list of clients to wake up when we do.