summaryrefslogtreecommitdiffstats
path: root/src/server/SocketListener.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/SocketListener.hpp')
-rw-r--r--src/server/SocketListener.hpp24
1 files changed, 4 insertions, 20 deletions
diff --git a/src/server/SocketListener.hpp b/src/server/SocketListener.hpp
index 71c60d01..e74629ad 100644
--- a/src/server/SocketListener.hpp
+++ b/src/server/SocketListener.hpp
@@ -19,35 +19,19 @@
#include "raul/Socket.hpp"
-#include "Engine.hpp"
-
namespace Ingen {
namespace Server {
+class Engine;
+
/** Listens on main sockets and spawns socket servers for new connections. */
class SocketListener
{
public:
- SocketListener(Engine& engine)
- : unix_sock(Raul::Socket::Type::UNIX)
- , net_sock(Raul::Socket::Type::TCP)
- , thread(new std::thread(ingen_listen, &engine, &unix_sock, &net_sock))
- {}
-
- ~SocketListener() {
- unix_sock.shutdown();
- net_sock.shutdown();
- thread->join();
- unlink(unix_sock.uri().substr(strlen(unix_scheme)).c_str());
- }
+ SocketListener(Engine& engine);
+ ~SocketListener();
private:
- static constexpr const char* unix_scheme = "unix://";
-
- static void ingen_listen(Engine* engine,
- Raul::Socket* unix_sock,
- Raul::Socket* net_sock);
-
Raul::Socket unix_sock;
Raul::Socket net_sock;
std::unique_ptr<std::thread> thread;