X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=acceptor.h;h=e0a1bd54811df6e4be0a28de9f5e415d48cc53b5;hp=97672338a133b0006b9203a8e33903057dd0aa33;hb=74cd48ffef90d7d0752e37a4515e4ecfb68f7c9d;hpb=e1722a5c0341fd541ce57f1eed4dc76cbd3efe07 diff --git a/acceptor.h b/acceptor.h index 9767233..e0a1bd5 100644 --- a/acceptor.h +++ b/acceptor.h @@ -3,18 +3,30 @@ #include "thread.h" -int create_server_socket(int port); +enum SocketType { + TCP_SOCKET, + UDP_SOCKET, +}; +int create_server_socket(int port, SocketType socket_type); + +class AcceptorProto; // A thread that accepts new connections on a given socket, // and hands them off to the server pool. -class AcceptorThread : public Thread { +class Acceptor : public Thread { public: - AcceptorThread(int server_sock); + Acceptor(int server_sock, int port); + + // Serialization/deserialization. + Acceptor(const AcceptorProto &serialized); + AcceptorProto serialize() const; + + void close_socket(); private: virtual void do_work(); - int server_sock; + int server_sock, port; }; #endif // !defined(_ACCEPTOR_H)