]> git.sesse.net Git - cubemap/blobdiff - acceptor.h
Identify UDPInput error messages by the stream, too.
[cubemap] / acceptor.h
index f173e5b647e68d9c4d8cad2ac64e99b7c4523dd0..e0a1bd54811df6e4be0a28de9f5e415d48cc53b5 100644 (file)
@@ -1,10 +1,32 @@
 #ifndef _ACCEPTOR_H
 #define _ACCEPTOR_H
 
-int create_server_socket(int port);
+#include "thread.h"
+
+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.
-void *acceptor_thread_run(void *arg);
+class Acceptor : public Thread {
+public:
+       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, port;
+};
 
 #endif  // !defined(_ACCEPTOR_H)