X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.h;h=d87e7dfab0d8dd9a08423b7b2c47b998e2b277a2;hp=fd309f41e34e1b97434f5af0071f9a47e4ad6690;hb=4fcea4a90506f45311daf49a58b02a3723e6a5ff;hpb=a0ad2d9d955fcb5f0aa3cf4f89999c34e8408124 diff --git a/server.h b/server.h index fd309f4..d87e7df 100644 --- a/server.h +++ b/server.h @@ -73,6 +73,23 @@ struct Stream { // How many bytes contains. Can very well be larger than BACKLOG_SIZE, // since the buffer wraps. size_t data_size; + + // Clients that are in SENDING_DATA, but that we don't listen on, + // because we currently don't have any data for them. + // See put_client_to_sleep() and wake_up_all_clients(). + std::vector sleeping_clients; + + // Clients that we recently got data for (when they were in + // ). + std::vector to_process; + + // 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. + void put_client_to_sleep(Client *client); + + // We have more data, so mark all clients that are sleeping as ready to go. + void wake_up_all_clients(); private: Stream(const Stream& other); @@ -119,11 +136,6 @@ private: int epoll_fd; epoll_event events[EPOLL_MAX_EVENTS]; - // Clients that are in SENDING_DATA, but that we don't listen on, - // because we currently don't have any data for them. - // See put_client_to_sleep() and wake_up_all_clients(). - std::vector sleeping_clients; - // Recover the this pointer, and call do_work(). static void *do_work_thunk(void *arg); @@ -159,14 +171,6 @@ private: // the SENDING_ERROR state. void construct_error(Client *client, int error_code); - // 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. - void put_client_to_sleep(Client *client); - - // We have more data, so mark all clients that are sleeping as ready to go. - void wake_up_all_clients(); - // TODO: This function should probably die. Stream *find_stream(const std::string &stream_id); };