diff options
author | David Robillard <d@drobilla.net> | 2008-11-16 02:49:22 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-11-16 02:49:22 +0000 |
commit | 24d998447070dbfef3eaf7762dce7e97c3903801 (patch) | |
tree | 0feffd6ca3c4459e0a7ff6fad9cf48b7816f2cd7 /src/shared/HTTPSender.hpp | |
parent | fb6471ac9d5daefd3655bc19532a6028b5f0ead4 (diff) | |
download | ingen-24d998447070dbfef3eaf7762dce7e97c3903801.tar.gz ingen-24d998447070dbfef3eaf7762dce7e97c3903801.tar.bz2 ingen-24d998447070dbfef3eaf7762dce7e97c3903801.zip |
TCP notification stream support (not fully implemented yet, but transport stuff is working).
Support multiple event sources in the engine.
Clean up HTTP/TCP stuff.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1721 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/shared/HTTPSender.hpp')
-rw-r--r-- | src/shared/HTTPSender.hpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/shared/HTTPSender.hpp b/src/shared/HTTPSender.hpp index 1025c071..1077b76d 100644 --- a/src/shared/HTTPSender.hpp +++ b/src/shared/HTTPSender.hpp @@ -20,14 +20,15 @@ #include <stdint.h> #include <string> -#include <libsoup/soup.h> +#include <glibmm/thread.h> +#include "raul/Thread.hpp" namespace Ingen { namespace Shared { -class HTTPSender { +class HTTPSender : public Raul::Thread { public: - HTTPSender(SoupServer* server, SoupMessage* msg); + HTTPSender(); virtual ~HTTPSender(); // Message bundling @@ -38,13 +39,21 @@ public: void transfer_begin() { bundle_begin(); } void transfer_end() { bundle_end(); } + int listen_port() const { return _listen_port; } + protected: - void send_chunk(const std::string& buf); + void _run(); + void send_chunk(const std::string& buf); + enum SendState { Immediate, SendingBundle }; - SoupServer* _server; - SoupMessage* _msg; + Glib::Mutex _mutex; + Glib::Cond _signal; + + int _listen_port; + int _listen_sock; + int _client_sock; SendState _send_state; std::string _transfer; }; |