X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.h;h=6311c68095c6ef9558bbb7518fb5e8d9a2caae02;hp=dea24d894e4cf9e5c9ea5ab7d3e96fa77f861a08;hb=771355dc2b3ac9d076482148a03591debb97f62e;hpb=5f72b6466cca4da0b8de29f4526a6cde23c5368e diff --git a/server.h b/server.h index dea24d8..6311c68 100644 --- a/server.h +++ b/server.h @@ -13,6 +13,9 @@ #define MAX_CLIENT_REQUEST 16384 struct Client { + Client() {} + Client(int sock); + // The file descriptor associated with this socket. int sock; @@ -57,14 +60,24 @@ public: // Start a new thread that handles clients. void run(); + + // Stop the thread. + void stop(); + void add_client(int sock); void add_stream(const std::string &stream_id); 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); private: + pthread_t worker_thread; + + // All variables below this line are protected by the mutex. pthread_mutex_t mutex; + // If the thread should stop or not. + bool should_stop; + // Map from stream ID to stream. std::map streams;