Support multiple listening sockets. Actually mostly because it makes the code somewha...
[cubemap] / acceptor.h
index 9767233..caa4647 100644 (file)
@@ -5,16 +5,24 @@
 
 int create_server_socket(int port);
 
+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)