diff options
author | David Robillard <d@drobilla.net> | 2015-11-23 14:24:07 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2016-10-01 07:03:17 -0400 |
commit | 11b55676a510171a56975743fd752ccbcc170622 (patch) | |
tree | b36fce044d67e2c8f358170f207f2ec0926cb8a2 /src/server/BlockImpl.hpp | |
parent | 92d75b64d9f4cf9ca9caf3e1a0d3ad9819eb5481 (diff) | |
download | ingen-11b55676a510171a56975743fd752ccbcc170622.tar.gz ingen-11b55676a510171a56975743fd752ccbcc170622.tar.bz2 ingen-11b55676a510171a56975743fd752ccbcc170622.zip |
Add parallelism-aware graph traversal
Diffstat (limited to 'src/server/BlockImpl.hpp')
-rw-r--r-- | src/server/BlockImpl.hpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/server/BlockImpl.hpp b/src/server/BlockImpl.hpp index 47eaa6eb..2d7211ab 100644 --- a/src/server/BlockImpl.hpp +++ b/src/server/BlockImpl.hpp @@ -178,9 +178,10 @@ public: uint32_t num_ports() const { return _ports ? _ports->size() : 0; } virtual uint32_t polyphony() const { return _polyphony; } - /** Used by the process order finding algorithm (ie during connections) */ - bool traversed() const { return _traversed; } - void traversed(bool b) { _traversed = b; } + /** Mark used during graph compilation */ + enum class Mark { UNVISITED, VISITING, VISITED }; + Mark get_mark() const { return _mark; } + void set_mark(Mark m) { _mark = m; } protected: PortImpl* nth_port_by_type(uint32_t n, bool input, PortType type); @@ -190,10 +191,10 @@ protected: uint32_t _polyphony; std::set<BlockImpl*> _providers; ///< Blocks connected to this one's input ports std::set<BlockImpl*> _dependants; ///< Blocks this one's output ports are connected to + Mark _mark; ///< Mark for graph compilation algorithm bool _polyphonic; bool _activated; bool _enabled; - bool _traversed; ///< Flag for process order algorithm }; } // namespace Server |