diff options
author | David Robillard <d@drobilla.net> | 2012-08-14 21:37:20 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-08-14 21:37:20 +0000 |
commit | 76b602f1f834cb2c255848c5ba887b3d7c47171a (patch) | |
tree | cbe6588c70f2df4384231d9cbdfd06fb0aa7e45f /src/server/Engine.cpp | |
parent | a8312be2d849b73ff0acc80a226095bcfee3556c (diff) | |
download | ingen-76b602f1f834cb2c255848c5ba887b3d7c47171a.tar.gz ingen-76b602f1f834cb2c255848c5ba887b3d7c47171a.tar.bz2 ingen-76b602f1f834cb2c255848c5ba887b3d7c47171a.zip |
Replace use of old Raul Table stuff with std::map.
Move most Store functionality into Ingen::Store and eliminate EngineStore.
Much cleaner delete and move implementations.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4696 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/Engine.cpp')
-rw-r--r-- | src/server/Engine.cpp | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp index 372090ef..c3c1221f 100644 --- a/src/server/Engine.cpp +++ b/src/server/Engine.cpp @@ -30,7 +30,6 @@ #include "ControlBindings.hpp" #include "Driver.hpp" #include "Engine.hpp" -#include "EngineStore.hpp" #include "Event.hpp" #include "EventWriter.hpp" #include "NodeFactory.hpp" @@ -49,12 +48,13 @@ namespace Server { Raul::ThreadVar<unsigned> ThreadManager::flags(0); bool ThreadManager::single_threaded(true); -Engine::Engine(Ingen::World* a_world) - : _world(a_world) +Engine::Engine(Ingen::World* world) + : _world(world) , _broadcaster(new Broadcaster()) + , _buffer_factory(new BufferFactory(*this, world->uris())) , _control_bindings(NULL) , _maid(new Raul::Maid(event_queue_size())) - , _node_factory(new NodeFactory(a_world)) + , _node_factory(new NodeFactory(world)) , _pre_processor(new PreProcessor()) , _post_processor(new PostProcessor(*this)) , _event_writer(new EventWriter(*this)) @@ -64,14 +64,8 @@ Engine::Engine(Ingen::World* a_world) , _quit_flag(false) , _direct_driver(true) { - if (a_world->store()) { - SharedPtr<EngineStore> estore = PtrCast<EngineStore>(a_world->store()); - _buffer_factory = estore->buffer_factory().get(); - } else { - _buffer_factory = new BufferFactory(*this, a_world->uris()); - a_world->set_store( - SharedPtr<Ingen::Store>( - new EngineStore(SharedPtr<BufferFactory>(_buffer_factory)))); + if (!world->store()) { + world->set_store(SharedPtr<Ingen::Store>(new Store())); } _control_bindings = new ControlBindings(*this); @@ -83,11 +77,16 @@ Engine::~Engine() { deactivate(); - SharedPtr<EngineStore> store = engine_store(); - if (store) - for (EngineStore::iterator i = store->begin(); i != store->end(); ++i) - if (!PtrCast<GraphObjectImpl>(i->second)->parent()) + const SharedPtr<Store> s = this->store(); + if (s) { + for (Store::iterator i = s->begin(); i != s->end(); ++i) { + if (!PtrCast<GraphObjectImpl>(i->second)->parent()) { i->second.reset(); + } + } + } + + _world->set_store(SharedPtr<Ingen::Store>()); delete _maid; delete _pre_processor; @@ -100,10 +99,10 @@ Engine::~Engine() munlockall(); } -SharedPtr<EngineStore> -Engine::engine_store() const +SharedPtr<Store> +Engine::store() const { - return PtrCast<EngineStore>(_world->store()); + return _world->store(); } size_t |