diff options
Diffstat (limited to 'src/server/Engine.cpp')
-rw-r--r-- | src/server/Engine.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp index 35b71a39..eb7c94ee 100644 --- a/src/server/Engine.cpp +++ b/src/server/Engine.cpp @@ -525,6 +525,24 @@ Engine::process_all_events() } void +Engine::add_to_store(Node* const node) +{ + store()->add(node); + + if (BlockImpl* const block = dynamic_cast<BlockImpl*>(node)) { + for (uint32_t i = 0; i < block->num_ports(); ++i) { + store()->add(block->port(i)); + } + } + + if (GraphImpl* const graph = dynamic_cast<GraphImpl*>(node)) { + for (BlockImpl& block : graph->blocks()) { + store()->add(&block); + } + } +} + +void Engine::register_client(SPtr<Interface> client) { log().info(fmt("Registering client <%1%>\n") % client->uri().c_str()); |