X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.h;h=d87e7dfab0d8dd9a08423b7b2c47b998e2b277a2;hp=6e0dd9dac2fd98f48d2a7fc24def92b5eee064cd;hb=4fcea4a90506f45311daf49a58b02a3723e6a5ff;hpb=bb89ed5253c5199147d1109b7189ce3681242eae diff --git a/server.h b/server.h index 6e0dd9d..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,15 +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; - - // Clients that we recently got data for (when they were in - // ). - std::vector to_process; - // Recover the this pointer, and call do_work(). static void *do_work_thunk(void *arg); @@ -163,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); };