summaryrefslogtreecommitdiffstats
path: root/src/socket/SocketInterface.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-05-09 01:14:30 +0000
committerDavid Robillard <d@drobilla.net>2012-05-09 01:14:30 +0000
commitbaeb3c1872a989b69eb89fae04f93c59b06f258e (patch)
tree83720f9c7bad7ab26c910180d8caea2fd4cb7e70 /src/socket/SocketInterface.hpp
parent4d46a232b30be99bc34e581cbc636345f77c6bc4 (diff)
downloadingen-baeb3c1872a989b69eb89fae04f93c59b06f258e.tar.gz
ingen-baeb3c1872a989b69eb89fae04f93c59b06f258e.tar.bz2
ingen-baeb3c1872a989b69eb89fae04f93c59b06f258e.zip
Simply event interface design and make only one pre-process thread.
This makes event pre-processing actually safe for multiple interfaces since multiple events will never be pre-processed simultaneously and the pre-process order is definitely the same as the execute order. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4323 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/socket/SocketInterface.hpp')
-rw-r--r--src/socket/SocketInterface.hpp31
1 files changed, 7 insertions, 24 deletions
diff --git a/src/socket/SocketInterface.hpp b/src/socket/SocketInterface.hpp
index b8d339f8..5e4daaf2 100644
--- a/src/socket/SocketInterface.hpp
+++ b/src/socket/SocketInterface.hpp
@@ -14,17 +14,10 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <string>
-
#include "ingen/Interface.hpp"
-#include "raul/SharedPtr.hpp"
#include "raul/Thread.hpp"
#include "sord/sord.h"
-#include "../server/EventSink.hpp"
-#include "../server/EventSource.hpp"
-#include "../server/EventWriter.hpp"
-
namespace Ingen {
namespace Shared { class World; }
@@ -32,18 +25,9 @@ namespace Shared { class World; }
namespace Socket {
class SocketInterface : public Raul::Thread
- , public Server::EventSink
- , public Server::EventSource
{
public:
- SocketInterface(Shared::World& world, int conn);
-
- void event(Server::Event* ev);
-
- bool process(Server::PostProcessor& dest,
- Server::ProcessContext& context,
- bool limit = true);
-
+ SocketInterface(Shared::World& world, Interface& iface, int conn);
~SocketInterface();
SordInserter* inserter() { return _inserter; }
@@ -67,13 +51,12 @@ private:
const SerdNode* object_datatype,
const SerdNode* object_lang);
- Shared::World& _world;
- Server::EventWriter _iface;
- SerdEnv* _env;
- SordInserter* _inserter;
- SordNode* _msg_node;
- Server::Event* _event;
- int _conn;
+ Shared::World& _world;
+ Interface& _iface;
+ SerdEnv* _env;
+ SordInserter* _inserter;
+ SordNode* _msg_node;
+ int _conn;
};
} // namespace Ingen