RemoveMessageNodes.hpp
1 #pragma once
2 #include <Process/State/MessageNode.hpp>
3 
4 #include <Scenario/Commands/ScenarioCommandFactory.hpp>
5 
6 #include <score/command/Command.hpp>
7 #include <score/model/path/Path.hpp>
8 
9 struct DataStreamInput;
10 struct DataStreamOutput;
11 
12 namespace Scenario
13 {
14 class StateModel;
15 
16 namespace Command
17 {
18 class RemoveMessageNodes final : public score::Command
19 {
20  SCORE_COMMAND_DECL(CommandFactoryName(), RemoveMessageNodes, "Remove user messages")
21 
22 public:
24  const Scenario::StateModel& model,
25  const std::vector<const Process::MessageNode*>&);
26 
27  void undo(const score::DocumentContext& ctx) const override;
28  void redo(const score::DocumentContext& ctx) const override;
29 
30 protected:
31  void serializeImpl(DataStreamInput&) const override;
32  void deserializeImpl(DataStreamOutput&) override;
33 
34 private:
35  Path<StateModel> m_path;
36  Process::MessageNode m_oldState;
37  Process::MessageNode m_newState;
38 };
39 }
40 }
The Path class is a typesafe wrapper around ObjectPath.
Definition: Path.hpp:52
Definition: RemoveMessageNodes.hpp:19
Definition: StateModel.hpp:63
The Command class.
Definition: Command.hpp:34
Main plug-in of score.
Definition: score-plugin-dataflow/Dataflow/PortItem.hpp:14
Definition: DataStreamHelpers.hpp:99
Definition: DataStreamHelpers.hpp:103
Definition: DocumentContext.hpp:18