#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)