Loading...
Searching...
No Matches
ProcessCreation.hpp
1#pragma once
2
3#include <State/Address.hpp>
4
5#include <Process/Dataflow/PortType.hpp>
6#include <Process/TimeValue.hpp>
7
8#include <score_plugin_scenario_export.h>
9
10#include <functional>
11#include <optional>
12
13namespace score
14{
15struct Dispatcher;
16}
17namespace Process
18{
19class Cable;
20class Inlet;
21class Outlet;
22class ProcessModel;
23struct Preset;
24struct Context;
25struct ProcessData;
26}
27
28namespace Scenario
29{
30class ScenarioDocumentModel;
31class ScenarioDocumentPresenter;
32namespace Command
33{
34class Macro;
35}
36
39SCORE_PLUGIN_SCENARIO_EXPORT
40const Process::Inlet*
41firstInletOfType(const Process::ProcessModel& proc, Process::PortType type) noexcept;
42SCORE_PLUGIN_SCENARIO_EXPORT
43const Process::Outlet*
44firstOutletOfType(const Process::ProcessModel& proc, Process::PortType type) noexcept;
45SCORE_PLUGIN_SCENARIO_EXPORT
46const Process::Outlet* firstSignalOutlet(const Process::ProcessModel& proc) noexcept;
47
52{
54 std::optional<bool> propagate;
55};
56
57SCORE_PLUGIN_SCENARIO_EXPORT
58OutletRouting outletRouting(const Process::Outlet& p) noexcept;
59
60SCORE_PLUGIN_SCENARIO_EXPORT
61void applyOutletRouting(
62 Command::Macro& m, const Process::Outlet& to, const OutletRouting& routing);
63
66SCORE_PLUGIN_SCENARIO_EXPORT
68 const Process::Context& ctx, const Process::ProcessModel& proc,
69 const Process::Cable& cbl);
70
74SCORE_PLUGIN_SCENARIO_EXPORT
76 score::Dispatcher& disp, const Process::Context& ctx,
78 const Process::Cable& cbl);
79
80SCORE_PLUGIN_SCENARIO_EXPORT
81void createProcessInCable(
82 const Process::Context& context, const Scenario::ScenarioDocumentModel& model,
83 const Process::ProcessData& dat, std::optional<TimeVal>,
84 std::function<void(Process::ProcessModel&, score::Dispatcher&)>,
85 const Process::Cable& cbl);
86
87SCORE_PLUGIN_SCENARIO_EXPORT
88void loadPresetInCable(
89 const Process::Context& context, const Scenario::ScenarioDocumentModel& model,
90 const Process::Preset& dat, const Process::Cable& cbl);
91
92SCORE_PLUGIN_SCENARIO_EXPORT
93void createProcessBeforePort(
95 std::optional<TimeVal>,
96 std::function<void(Process::ProcessModel&, score::Dispatcher&)>,
97 const Process::ProcessModel& parentProcess, const Process::Inlet& p);
98SCORE_PLUGIN_SCENARIO_EXPORT
99void loadPresetBeforePort(
101 const Process::ProcessModel& parentProcess, const Process::Inlet& p);
102
103SCORE_PLUGIN_SCENARIO_EXPORT
104void createProcessAfterPort(
106 std::optional<TimeVal>,
107 std::function<void(Process::ProcessModel&, score::Dispatcher&)>,
108 const Process::ProcessModel& parentProcess, const Process::Outlet& p,
109 bool tryOtherOutlets = false);
110SCORE_PLUGIN_SCENARIO_EXPORT
111void loadPresetAfterPort(
113 const Process::ProcessModel& parentProcess, const Process::Outlet& p,
114 bool tryOtherOutlets = false);
115
116}
Definition Cable.hpp:38
Definition Port.hpp:221
Definition Port.hpp:329
The Process class.
Definition score-lib-process/Process/Process.hpp:82
Definition CommandAPI.hpp:28
Definition ScenarioDocumentModel.hpp:29
The ScenarioDocumentPresenter class.
Definition ScenarioDocumentPresenter.hpp:60
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Main plug-in of score.
Definition ConnectionsList.hpp:22
const Process::Inlet * firstInletOfType(const Process::ProcessModel &proc, Process::PortType type) noexcept
Definition ProcessCreation.cpp:24
bool canInsertProcessInCable(const Process::Context &ctx, const Process::ProcessModel &proc, const Process::Cable &cbl)
Definition ProcessCreation.cpp:137
void insertProcessInCable(score::Dispatcher &disp, const Process::Context &ctx, const Scenario::ScenarioDocumentModel &model, const Process::ProcessModel &proc, const Process::Cable &cbl)
Definition ProcessCreation.cpp:161
Base toolkit upon which the software is built.
Definition Application.cpp:83
Definition ProcessContext.hpp:12
Definition Preset.hpp:32
Definition ProcessMimeSerialization.hpp:34
Definition ProcessCreation.hpp:52
Definition Address.hpp:136
Definition RuntimeDispatcher.hpp:7