Example #1
0
		/** Removes a node and all its dependents from the graph. */
		void removeDependencyPath (const T &key) {
			auto it = _nodeMap.find(key);
			if (it != _nodeMap.end()) {
				for (GraphNode *node = it->second.get(); node;) {
					GraphNode *dependent = node->dependent;
					node->unlinkDependees();
					if (dependent)
						dependent->unlinkDependee(node);
					_nodeMap.erase(node->key);
					node = dependent;
				}
			}
		}