MCPcopy Create free account
hub / github.com/Palm1r/QodeAssist / getExecutionOrder

Method getExecutionOrder

TaskFlow/core/Flow.cpp:246–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

244}
245
246QList<BaseTask *> Flow::getExecutionOrder() const
247{
248 QMutexLocker locker(&m_flowMutex);
249
250 QList<BaseTask *> result;
251 QSet<BaseTask *> visited;
252 QList<BaseTask *> allTasks = m_tasks.values();
253
254 std::function<void(BaseTask *)> visit = [&](BaseTask *task) {
255 if (visited.contains(task)) {
256 return;
257 }
258
259 visited.insert(task);
260
261 QList<BaseTask *> dependencies = getTaskDependencies(task);
262 for (BaseTask *dependency : dependencies) {
263 visit(dependency);
264 }
265
266 result.append(task);
267 };
268
269 for (BaseTask *task : allTasks) {
270 visit(task);
271 }
272
273 return result;
274}
275
276bool Flow::detectCircularDependencies() const
277{

Callers

nothing calls this directly

Calls 1

appendMethod · 0.80

Tested by

no test coverage detected