BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
BPMNOS::Model::SequentialAdHocSubProcess Class Reference

Class representing adhoc subprocesses with sequential ordering. More...

Detailed Description

Activities within an instance of the SequentialAdHocSubProcess class must not be executed in parallel. The sequential execution of such activities is linked to a performer guaranteeing that at most one child activity of any sequential adhoc subprocess linked to this performer is executed at any point time.

The performer relevant for a sequential adhoc subprocess can be specified by adding a XML::bpmn::tPerformer element with name being "Sequential" to the adhoc subprocess or an ancestor in the XML tree (with no other sequential adhoc subprocess between). If no such performer is provided, the adhoc subprocess is assumed to have its own performer.

Definition at line 26 of file SequentialAdHocSubProcess.h.

#include <SequentialAdHocSubProcess.h>

Inheritance diagram for BPMNOS::Model::SequentialAdHocSubProcess:

Public Member Functions

 SequentialAdHocSubProcess (XML::bpmn::tAdHocSubProcess *adHocsubProcess, BPMN::Scope *parent)
 
- Public Member Functions inherited from BPMN::AdHocSubProcess
 AdHocSubProcess (XML::bpmn::tAdHocSubProcess *adHocSubProcess, Scope *parent)
 
- Public Member Functions inherited from BPMN::Activity
 Activity (XML::bpmn::tActivity *activity, Scope *parent)
 
- Public Member Functions inherited from BPMN::FlowNode
 FlowNode (XML::bpmn::tFlowNode *flowNode, Scope *parent)
 
- Public Member Functions inherited from BPMN::ChildNode
 ChildNode (XML::bpmn::tBaseElement *element, Scope *parent)
 
- Public Member Functions inherited from BPMN::Node
 Node (XML::bpmn::tBaseElement *element)
 Constructs a Node object representing a BPMN process or flow node.
 
Nodefind (std::function< bool(Node *)> condition)
 Returns the first node found matching a given condition.
 
const Nodefind (std::function< bool(const Node *)> condition) const
 Returns the first node found matching a given condition.
 
std::vector< Node * > find_all (std::function< bool(Node *)> condition)
 Returns all nodes matching a given condition.
 
std::vector< const Node * > find_all (std::function< bool(const Node *)> condition) const
 Returns all nodes matching a given condition.
 
- Public Member Functions inherited from BPMN::BaseElement
 BaseElement (XML::bpmn::tBaseElement *element)
 Constructs a BaseElement object representing a BPMN element.
 
template<typename T >
T * is ()
 Attempts to return the element in the specified type T.
 
template<typename T >
const T * is () const
 Attempts to return the element in the specified type T.
 
template<typename T = XML::bpmn::tBaseElement>
T * get ()
 Casts the element to the specified type T.
 
template<typename T = XML::bpmn::tBaseElement>
const T * get () const
 Casts the element to the specified type T.
 
- Public Member Functions inherited from BPMN::Element
virtual ~Element ()=default
 
template<typename T >
T * represents ()
 Attempts to cast the element to the specified type T.
 
template<typename T >
const T * represents () const
 Attempts to cast the element to the specified type T.
 
template<typename T >
T * as ()
 Casts the element to the specified type T.
 
template<typename T >
const T * as () const
 Casts the element to the specified type T.
 
- Public Member Functions inherited from BPMN::Scope
 Scope (XML::bpmn::tBaseElement *element)
 

Public Attributes

BPMN::Nodeperformer
 
- Public Attributes inherited from BPMN::AdHocSubProcess
bool isSequential
 
XML::bpmn::tAdHocSubProcesselement
 
- Public Attributes inherited from BPMN::Activity
std::vector< BoundaryEvent * > boundaryEvents
 
NodecompensatedBy
 Pointer to compensation activity or compensation event sub-process.
 
bool isForCompensation
 
std::optional< LoopCharacteristicsloopCharacteristics
 
XML::bpmn::tActivityelement
 
- Public Attributes inherited from BPMN::FlowNode
XML::bpmn::tFlowNodeelement
 
std::optional< std::string > name
 
std::vector< SequenceFlow * > incoming
 Vector containing all incoming sequence flows of the node.
 
std::vector< SequenceFlow * > outgoing
 Vector containing all outgoing sequence flows of the node.
 
- Public Attributes inherited from BPMN::ChildNode
Scopeparent
 Reference to the parent node.
 
- Public Attributes inherited from BPMN::Node
std::vector< MessageFlow * > receiving
 Vector containing all message flows going in to the node.
 
std::vector< MessageFlow * > sending
 Vector containing all message flows going out of the node.
 
- Public Attributes inherited from BPMN::BaseElement
XML::bpmn::tBaseElementelement
 
std::string id
 Id of element.
 
std::unique_ptr< ExtensionElementsextensionElements
 
- Public Attributes inherited from BPMN::Scope
std::vector< std::unique_ptr< Node > > childNodes
 Vector containing all child nodes within the scope of the nodes.
 
std::vector< FlowNode * > flowNodes
 Vector containing pointers to all flow nodes within the scope of the nodes.
 
std::vector< EventSubProcess * > eventSubProcesses
 Vector containing pointers to all event subprocesses within the scope of the nodes.
 
std::vector< FlowNode * > startNodes
 Vector containing all flow nodes that may start execution of the scope.
 
std::vector< std::unique_ptr< SequenceFlow > > sequenceFlows
 Vector containing all sequence flows within the scope.
 
std::vector< Activity * > compensationActivities
 Vector containing pointers to all compensation activities within the scope.
 
EventSubProcesscompensationEventSubProcess
 Pointer to compensation event subprocess of the scope.
 
std::vector< std::unique_ptr< DataObject > > dataObjects
 Vector containing all data objects within the scope.
 

Friends

class Model
 

Additional Inherited Members

- Public Types inherited from BPMN::Activity
enum class  LoopCharacteristics { Standard , MultiInstanceSequential , MultiInstanceParallel }
 
- Protected Member Functions inherited from BPMN::Scope
void add (std::unique_ptr< Node > node)
 
void add (std::unique_ptr< SequenceFlow > sequenceFlow)
 
void add (std::unique_ptr< DataObject > dataObject)
 

Constructor & Destructor Documentation

◆ SequentialAdHocSubProcess()

SequentialAdHocSubProcess::SequentialAdHocSubProcess ( XML::bpmn::tAdHocSubProcess * adHocsubProcess,
BPMN::Scope * parent )

Definition at line 6 of file SequentialAdHocSubProcess.cpp.

Friends And Related Symbol Documentation

◆ Model

friend class Model
friend

Definition at line 27 of file SequentialAdHocSubProcess.h.

Member Data Documentation

◆ performer

BPMN::Node* BPMNOS::Model::SequentialAdHocSubProcess::performer

Definition at line 30 of file SequentialAdHocSubProcess.h.


The documentation for this class was generated from the following files: