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

Namespaces

namespace  Color
 

Classes

class  auto_list
 List of tuples with automatic removal of tuples containing an expired weak_ptr. More...
 
class  auto_set
 Set of tuples ordered in increasing order of the first component with automatic removal of tuples containing an expired weak_ptr. More...
 
class  BestEnumeratedChoice
 Class creating a choice decision for a token at a decision task. More...
 
class  BestFirstEntry
 Class dispatching the best entry event for a token awaiting the entry at an activity. More...
 
class  BestFirstExit
 Class dispatching the best exit event for a token awaiting the exit at an activity. More...
 
class  BestMatchingMessageDelivery
 Class creating a message delivery. More...
 
class  BisectionalChoice
 Class creating a choice decision for a token at a decision task using bisection. More...
 
struct  ChoiceDecision
 Represents the event that choices are made for a DecisionTask. More...
 
struct  ChoiceEvent
 Represents the event that choices are made for a DecisionTask. More...
 
struct  ClockTickEvent
 Represents an event that increments the current time. More...
 
struct  CompletionEvent
 Class representing the event of a token having completed an activity. More...
 
class  ConditionalEventObserver
 
class  Controller
 Base class for an execution controller which dispatches events to the engine and listens to notification from the engine. More...
 
struct  DataUpdate
 
class  Decision
 Represents an abstract base class for a pending decision. More...
 
struct  DecisionRequest
 Represents a pending decision. More...
 
class  Engine
 
struct  EntryDecision
 Represents the event of a token entering a node. More...
 
struct  EntryEvent
 Represents the event of a token entering a node. More...
 
struct  ErrorEvent
 Represents the event of an error being raised. More...
 
class  Evaluator
 Represents an abstract base class for an evaluator determining feasibility and reward of a decision. More...
 
struct  Event
 
class  EventDispatcher
 
class  EventListener
 
struct  ExitDecision
 Represents the event of a token exiting a node. More...
 
struct  ExitEvent
 Represents the event of a token exiting a node. More...
 
class  FirstMatchingMessageDelivery
 Class creating an entry event for a token awaiting the entry at a regular activity (i.e. not a job). More...
 
class  FlattenedGraph
 Represents a graph containing all BPMN nodes that may receive a token during execution of a scenario. More...
 
class  GreedyController
 A controller dispatching the best evaluated decisions. More...
 
class  GreedyDispatcher
 Class for dispatching the event with the best evaluation. More...
 
class  GreedyEntry
 Class dispatching the first feasible entry event for a token awaiting the entry at an activity or the best token awaiting the entry at an activity performed by a sequential performer. More...
 
class  GreedyExit
 Class dispatching the first feasible exit event for a token awaiting the exit at an activity. More...
 
class  GuidedEvaluator
 Class using the guidance that may be provided to determine the reward of a decision. More...
 
class  InstantEntry
 Class creating an entry event for a token awaiting the entry at an activity. More...
 
class  InstantExit
 Class creating an exit event for a token awaiting the exit at an activity. More...
 
struct  is_weak_ptr
 
struct  is_weak_ptr< std::weak_ptr< T > >
 
class  LocalEvaluator
 Class using local evaluations to determine the reward of a decision. More...
 
struct  Mediator
 Represents an abstract base class for a class that is an event listener and notifier. More...
 
class  Message
 
struct  MessageDeliveryDecision
 Represents the event of a message from the message pool being delivered. More...
 
struct  MessageDeliveryEvent
 Represents the event of a message from the message pool being delivered. More...
 
class  Metronome
 Class creating a clock tick event each time fetchEvent() after sleeping in order to synchronize with real time. More...
 
class  MyopicDecisionTaskTerminator
 Class creating an error event for a token at a decision task if no choice has been made. More...
 
class  MyopicMessageTaskTerminator
 Class creating an error event for a token at a message task if the message can not be delivered. More...
 
class  Notifier
 
struct  Observable
 
class  Observer
 
class  RandomChoice
 Class creating a random choice event for a token at a decision task. More...
 
struct  ReadyEvent
 Represents the event of a token ready to enter a node inclduing necressary new attribute data. More...
 
class  ReadyHandler
 Class dispatching a ready event when the required data is available for a token at an activity. More...
 
class  Recorder
 Class recording all token changes. More...
 
class  ScenarioUpdater
 Observer that updates scenario state during execution. More...
 
class  SeededController
 A controller dispatching decisions in the order derived from a given seed. More...
 
class  SeededGreedyController
 A controller dispatching the best evaluated decisions. More...
 
struct  SequentialPerformerUpdate
 
class  StateMachine
 Represents a state machine for BPMN execution of a scope in the model. More...
 
class  SystemState
 A class representing the state that the execution or simulation of a given scenario is in. More...
 
class  TaskCompletionHandler
 EventDispatcher for task completion events. More...
 
struct  TerminationEvent
 Represents an event causing the engine to terminate. More...
 
struct  TimerEvent
 Represents the event that a timer is triggered. More...
 
class  TimeWarp
 Class creating a clock tick event each time fetchEvent() is called. More...
 
class  Token
 Represents a token running through a (sub)process. More...
 

Typedefs

typedef std::vector< std::shared_ptr< Message > > Messages
 
typedef std::vector< std::shared_ptr< StateMachine > > StateMachines
 
typedef std::vector< std::shared_ptr< Token > > Tokens
 

Functions

template<typename T >
void erase_ptr (std::vector< std::unique_ptr< T > > &container, const T *elementPtr)
 Erase a specific element from a vector of unique pointers.
 
template<typename T >
void erase_ptr (std::vector< std::shared_ptr< T > > &container, const T *elementPtr)
 Erase a specific element from a vector of shared pointers.
 
template<typename T >
void erase_ptr (std::vector< T * > &container, const T *elementPtr)
 Erase a specific element from a vector of pointers.
 
template<typename K , typename T , typename Comparator >
void erase_pair (std::set< std::pair< K, T * >, Comparator > &container, const T *elementPtr)
 Erase a specific element from a set of key-value pairs where the value is a pointer to the element.
 
template<std::size_t I = 0, typename... U>
bool expired (const std::tuple< U... > &t)
 Determines whether any of the initial weak_ptr elements in a tuple is expired.
 

Typedef Documentation

◆ Messages

typedef std::vector< std::shared_ptr<Message> > BPMNOS::Execution::Messages

Definition at line 18 of file Message.h.

◆ StateMachines

typedef std::vector< std::shared_ptr<StateMachine> > BPMNOS::Execution::StateMachines

Definition at line 13 of file StateMachine.h.

◆ Tokens

typedef std::vector< std::shared_ptr<Token> > BPMNOS::Execution::Tokens

Definition at line 19 of file Token.h.

Function Documentation

◆ erase_pair()

template<typename K , typename T , typename Comparator >
void BPMNOS::Execution::erase_pair ( std::set< std::pair< K, T * >, Comparator > & container,
const T * elementPtr )

This function searches for a specified element pointer in a set of key-value pairs and removes the corresponding element from the set.

Template Parameters
TThe type of elements stored in the set.
Parameters
containerThe set from which the element will be removed.
elementPtrThe pointer to the element that needs to be removed.
Exceptions
std::logic_errorif the specified element is not found in the set.

Definition at line 100 of file erase.h.

◆ erase_ptr() [1/3]

template<typename T >
void BPMNOS::Execution::erase_ptr ( std::vector< std::shared_ptr< T > > & container,
const T * elementPtr )

This function searches for a specified element pointer in a vector of shared pointers and removes the corresponding element from the vector.

Template Parameters
TThe type of elements stored in the vector.
Parameters
containerThe vector from which the element will be removed.
elementPtrThe pointer to the element that needs to be removed.
Exceptions
std::logic_errorif the specified element is not found in the vector.

Definition at line 46 of file erase.h.

◆ erase_ptr() [2/3]

template<typename T >
void BPMNOS::Execution::erase_ptr ( std::vector< std::unique_ptr< T > > & container,
const T * elementPtr )

This function searches for a specified element pointer in a vector of unique pointers and removes the corresponding element from the vector.

Template Parameters
TThe type of elements stored in the vector.
Parameters
containerThe vector from which the element will be removed.
elementPtrThe pointer to the element that needs to be removed.
Exceptions
std::logic_errorif the specified element is not found in the vector.

Definition at line 19 of file erase.h.

◆ erase_ptr() [3/3]

template<typename T >
void BPMNOS::Execution::erase_ptr ( std::vector< T * > & container,
const T * elementPtr )

This function searches for a specified element pointer in a vector of pointers and removes the corresponding element from the vector.

Template Parameters
TThe type of elements stored in the vector.
Parameters
containerThe vector from which the element will be removed.
elementPtrThe pointer to the element that needs to be removed.
Exceptions
std::logic_errorif the specified element is not found in the vector.

Definition at line 73 of file erase.h.

◆ expired()

template<std::size_t I = 0, typename... U>
bool BPMNOS::Execution::expired ( const std::tuple< U... > & t)

Definition at line 19 of file expired.h.