bpmn++
A BPMN parser library, written in C++
Loading...
Searching...
No Matches
FlowNode.h
Go to the documentation of this file.
1#ifndef BPMN_FlowNode_H
2#define BPMN_FlowNode_H
3
4#include <memory>
5#include <vector>
6#include <optional>
8#include "ChildNode.h"
9
10namespace BPMN {
11
12class SequenceFlow;
13
14/**
15 * @brief Base class for BPMN elements that may contain incoming and outgoing sequence flows.
16 *
17 * The FlowNode class encapsulates the information and relationships associated with a node in a BPMN process.
18 * The class provides allows to access the parent scope as well as incoming and outgoing sequence flows.
19 */
20class FlowNode : public ChildNode {
21 friend class Model;
22public:
25
26 std::optional<std::string> name;
27
28 /// @brief Vector containing all incoming sequence flows of the node.
29 std::vector< SequenceFlow* > incoming;
30
31 /// @brief Vector containing all outgoing sequence flows of the node.
32 std::vector< SequenceFlow* > outgoing;
33
34protected:
35};
36
37} // namespace BPMN
38
39#endif // BPMN_FlowNode_H
Base class for BPMN elements within a Scope.
Definition ChildNode.h:16
Scope * parent
Reference to the parent node.
Definition ChildNode.h:46
Base class for BPMN elements that may contain incoming and outgoing sequence flows.
Definition FlowNode.h:20
std::optional< std::string > name
Definition FlowNode.h:26
std::vector< SequenceFlow * > incoming
Vector containing all incoming sequence flows of the node.
Definition FlowNode.h:29
XML::bpmn::tFlowNode * element
Definition FlowNode.h:23
std::vector< SequenceFlow * > outgoing
Vector containing all outgoing sequence flows of the node.
Definition FlowNode.h:32
Represents a BPMN model with all its processes and message flows.
Definition Model.h:170
Base class for BPMN elements that may contain a ChildNode elements.
Definition Scope.h:24
The BPMN namespace contains linked classes representing a BPMN model.