summaryrefslogtreecommitdiffstats
path: root/src/client/HTTPClientReceiver.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/HTTPClientReceiver.hpp')
-rw-r--r--src/client/HTTPClientReceiver.hpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/client/HTTPClientReceiver.hpp b/src/client/HTTPClientReceiver.hpp
index bab55578..379ffe2d 100644
--- a/src/client/HTTPClientReceiver.hpp
+++ b/src/client/HTTPClientReceiver.hpp
@@ -21,10 +21,11 @@
#include <cstdlib>
#include <boost/utility.hpp>
#include <libsoup/soup.h>
-#include "interface/ClientInterface.hpp"
-#include "serialisation/Parser.hpp"
#include "redlandmm/World.hpp"
#include "raul/Deletable.hpp"
+#include "raul/Thread.hpp"
+#include "interface/ClientInterface.hpp"
+#include "serialisation/Parser.hpp"
namespace Ingen {
namespace Client {
@@ -46,7 +47,19 @@ public:
private:
static void message_callback(SoupSession* session, SoupMessage* msg, void* ptr);
+
+ class Listener : public Raul::Thread {
+ public:
+ Listener(SoupSession* session, SoupMessage* msg) : _session(session), _msg(msg) {}
+ void _run();
+ private:
+ SoupSession* _session;
+ SoupMessage* _msg;
+ };
+ friend class Listener;
+ SharedPtr<Listener> _listener;
+
SharedPtr<Shared::ClientInterface> _target;
Shared::World* _world;