BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
BPMNOS::Execution::FlattenedGraph::Vertex Class Reference

Detailed Description

Definition at line 29 of file FlattenedGraph.h.

#include <FlattenedGraph.h>

Public Types

enum class  Type { ENTRY , EXIT }
 

Public Member Functions

 Vertex (FlattenedGraph *graph, BPMNOS::number rootId, BPMNOS::number instanceId, std::vector< size_t > loopIndices, const BPMN::Node *node, Type type, std::optional< std::pair< Vertex *, Vertex * > > parent)
 
 Vertex ()=delete
 
 Vertex (const Vertex &)=delete
 
Vertexoperator= (const Vertex &)=delete
 
 Vertex (Vertex &&)=delete
 
Vertexoperator= (Vertex &&)=delete
 
const Vertexperformer () const
 Container holding all entry vertices of nodes owning at least one data attribute.
 
size_t dataOwnerIndex (const BPMNOS::Model::Attribute *attribute) const
 Returns the entry vertex of the performer of a sequential activity vertex.
 
std::pair< const Vertex *, const Vertex * > dataOwner (const BPMNOS::Model::Attribute *attribute) const
 Returns the index of the data owner of an attribute.
 
std::string reference () const
 Returns the vertices of the owner of a data attribute.
 
std::string shortReference () const
 Returns a unique reference of the vertex.
 
nlohmann::ordered_json jsonify () const
 Returns a reference of the vertex excluding the type.
 
template<typename T >
bool entry () const
 
template<typename T >
bool exit () const
 

Public Attributes

FlattenedGraphgraph
 
const size_t index
 
const BPMNOS::number rootId
 
const BPMNOS::number instanceId
 
const std::vector< size_t > loopIndices
 
const BPMN::Nodenode
 
const Type type
 
std::optional< std::pair< Vertex *, Vertex * > > parent
 
std::vector< std::pair< const BPMN::SequenceFlow *, Vertex * > > inflows
 Parent vertices.
 
std::vector< std::pair< const BPMN::SequenceFlow *, Vertex * > > outflows
 Container holding vertices connecting by an incoming sequence flow, for loop activities the sequence flow may be a nullptr.
 
std::vector< Vertex * > predecessors
 Container holding vertices connecting by an outgoing sequence flow, for loop activities the sequence flow may be a nullptr.
 
std::vector< Vertex * > successors
 Container holding predecessors according to the execution logic (excl. sequence flows)
 
std::vector< Vertex * > senders
 Container holding successors according to the execution logic (excl. sequence flows)
 
std::vector< Vertex * > recipients
 Container holding all possible vertices sending a message (or the message delivery notification for a SendTask)
 
std::vector< Vertex * > dataOwners
 Container holding all possible vertices receiving a message (or the message delivery notification for a SendTask)
 

Member Enumeration Documentation

◆ Type

Enumerator
ENTRY 
EXIT 

Definition at line 31 of file FlattenedGraph.h.

Constructor & Destructor Documentation

◆ Vertex() [1/4]

FlattenedGraph::Vertex::Vertex ( FlattenedGraph * graph,
BPMNOS::number rootId,
BPMNOS::number instanceId,
std::vector< size_t > loopIndices,
const BPMN::Node * node,
Type type,
std::optional< std::pair< Vertex *, Vertex * > > parent )

Definition at line 17 of file FlattenedGraph.cpp.

◆ Vertex() [2/4]

BPMNOS::Execution::FlattenedGraph::Vertex::Vertex ( )
delete

◆ Vertex() [3/4]

BPMNOS::Execution::FlattenedGraph::Vertex::Vertex ( const Vertex & )
delete

◆ Vertex() [4/4]

BPMNOS::Execution::FlattenedGraph::Vertex::Vertex ( Vertex && )
delete

Member Function Documentation

◆ dataOwner()

std::pair< const FlattenedGraph::Vertex *, const FlattenedGraph::Vertex * > FlattenedGraph::Vertex::dataOwner ( const BPMNOS::Model::Attribute * attribute) const

Definition at line 75 of file FlattenedGraph.cpp.

◆ dataOwnerIndex()

size_t FlattenedGraph::Vertex::dataOwnerIndex ( const BPMNOS::Model::Attribute * attribute) const

Definition at line 61 of file FlattenedGraph.cpp.

◆ entry()

template<typename T >
bool BPMNOS::Execution::FlattenedGraph::Vertex::entry ( ) const
inline

Definition at line 61 of file FlattenedGraph.h.

◆ exit()

template<typename T >
bool BPMNOS::Execution::FlattenedGraph::Vertex::exit ( ) const
inline

Definition at line 63 of file FlattenedGraph.h.

◆ jsonify()

nlohmann::ordered_json FlattenedGraph::Vertex::jsonify ( ) const

Definition at line 92 of file FlattenedGraph.cpp.

◆ operator=() [1/2]

Vertex & BPMNOS::Execution::FlattenedGraph::Vertex::operator= ( const Vertex & )
delete

◆ operator=() [2/2]

Vertex & BPMNOS::Execution::FlattenedGraph::Vertex::operator= ( Vertex && )
delete

◆ performer()

const FlattenedGraph::Vertex * FlattenedGraph::Vertex::performer ( ) const

Definition at line 33 of file FlattenedGraph.cpp.

◆ reference()

std::string FlattenedGraph::Vertex::reference ( ) const

Definition at line 80 of file FlattenedGraph.cpp.

◆ shortReference()

std::string FlattenedGraph::Vertex::shortReference ( ) const

Definition at line 84 of file FlattenedGraph.cpp.

Member Data Documentation

◆ dataOwners

std::vector< Vertex* > BPMNOS::Execution::FlattenedGraph::Vertex::dataOwners

Definition at line 53 of file FlattenedGraph.h.

◆ graph

FlattenedGraph* BPMNOS::Execution::FlattenedGraph::Vertex::graph

Definition at line 39 of file FlattenedGraph.h.

◆ index

const size_t BPMNOS::Execution::FlattenedGraph::Vertex::index

Definition at line 40 of file FlattenedGraph.h.

◆ inflows

std::vector< std::pair<const BPMN::SequenceFlow*, Vertex*> > BPMNOS::Execution::FlattenedGraph::Vertex::inflows

Definition at line 47 of file FlattenedGraph.h.

◆ instanceId

const BPMNOS::number BPMNOS::Execution::FlattenedGraph::Vertex::instanceId

Definition at line 42 of file FlattenedGraph.h.

◆ loopIndices

const std::vector< size_t > BPMNOS::Execution::FlattenedGraph::Vertex::loopIndices

Definition at line 43 of file FlattenedGraph.h.

◆ node

const BPMN::Node* BPMNOS::Execution::FlattenedGraph::Vertex::node

Definition at line 44 of file FlattenedGraph.h.

◆ outflows

std::vector< std::pair<const BPMN::SequenceFlow*, Vertex*> > BPMNOS::Execution::FlattenedGraph::Vertex::outflows

Definition at line 48 of file FlattenedGraph.h.

◆ parent

std::optional< std::pair<Vertex*, Vertex*> > BPMNOS::Execution::FlattenedGraph::Vertex::parent

Definition at line 46 of file FlattenedGraph.h.

◆ predecessors

std::vector< Vertex* > BPMNOS::Execution::FlattenedGraph::Vertex::predecessors

Definition at line 49 of file FlattenedGraph.h.

◆ recipients

std::vector< Vertex* > BPMNOS::Execution::FlattenedGraph::Vertex::recipients

Definition at line 52 of file FlattenedGraph.h.

◆ rootId

const BPMNOS::number BPMNOS::Execution::FlattenedGraph::Vertex::rootId

Definition at line 41 of file FlattenedGraph.h.

◆ senders

std::vector< Vertex* > BPMNOS::Execution::FlattenedGraph::Vertex::senders

Definition at line 51 of file FlattenedGraph.h.

◆ successors

std::vector< Vertex* > BPMNOS::Execution::FlattenedGraph::Vertex::successors

Definition at line 50 of file FlattenedGraph.h.

◆ type

const Type BPMNOS::Execution::FlattenedGraph::Vertex::type

Definition at line 45 of file FlattenedGraph.h.


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