Maki
Formally verfied low-code orchestration
Toggle main menu visibility
Loading...
Searching...
No Matches
plugin_pipeline.h
1
#pragma once
2
3
#include <QObject>
4
#include <QSet>
5
#include <mutex>
6
7
#include "pipeline_action.h"
8
#include "pipeline_context.h"
9
#include "pipeline_graph.h"
10
#include "result.h"
11
12
class
Pipeline
;
13
14
namespace
maki
15
{
16
class
PipelineActionRegistry
;
17
18
class
PluginPipeline :
public
QObject
19
{
20
Q_OBJECT
21
22
public
:
23
PluginPipeline(
Pipeline
* pipeline, QObject* parent =
nullptr
);
24
~PluginPipeline();
25
26
VoidResult run(
const
PipelineGraph
& graph, PipelineContext& context,
bool
clearCache);
27
28
PipelineActionRegistry
* registry()
const
;
29
bool
isRunning()
const
;
30
VoidResult abort();
31
32
signals:
33
void
nodeStarted(
const
QString& nodeId,
const
QString& displayName);
34
void
nodeFinished(
const
QString& nodeId);
35
void
nodeFailed(
const
QString& nodeId,
const
QString& error);
36
void
pipelineStarted();
37
void
pipelineFinished(
const
QString& generationDir);
38
39
private
:
40
PipelineActionRegistry
* mRegistry =
nullptr
;
41
Pipeline
* mPipeline;
42
QStringList mExecutionOrder;
43
int
mCurrentIndex;
44
QString mCurrentGroup;
45
PipelineContext mContext;
46
PipelineGraph
mGraph;
47
QString mProgressId;
48
49
mutable
std::mutex mStateMutex;
50
enum class
State
51
{
52
Idle,
53
Running,
54
Aborting
55
} mRunning;
56
57
std::optional<PipelineNode> findNode(
const
PipelineGraph
& graph,
const
QString& nodeId)
const
;
58
VoidResult validateInputs(
const
IPipelineAction& action,
const
PipelineContext& context)
const
;
59
Result<QList<QString>> executionOrder(
const
PipelineGraph
& graph)
const
;
60
61
VoidResult runNextNode();
62
VoidResult continueAfterNode();
63
void
done(
const
QString& message);
64
65
int
mInitialCount = 0;
66
QVector<QPointer<QWidget>> mOldWidgets = {};
67
QWidget* progressWidget()
const
;
68
};
69
70
}
// namespace maki
Pipeline
Executes and manages a sequence of external processes.
Definition
pipeline.h:22
maki::PipelineActionRegistry
Definition
plugin_action_registry.h:13
maki
Contains UI helper widgets and layout grouping utilities used by MAKI.
Definition
generator.h:10
maki::PipelineGraph
Definition
pipeline_graph.h:38
Generated for
MAKI
· © 2026 with
Doxygen
1.9.8
GitHub
Research