    

 ## On this page

  

 

 # i\_activity\_factory

 Last update: 16.07.2025 

<a name="l00001"></a> 1 

<a name="l00005"></a> 5 

<a name="l00006"></a> 6 \#pragma once

<a name="l00007"></a> 7 

<a name="l00008"></a> 8 \#include "core/lifecycle/activity/i\_activity.h"

<a name="l00009"></a> 9 \#include "core/lifecycle/fmu\_activity/fmu\_config.h"

<a name="l00010"></a> 10 \#include "core/scheduler/i\_scheduler\_client/i\_scheduler\_client.h"

<a name="l00011"></a> 11 \#include "core/time/i\_clock/i\_clock.h"

<a name="l00012"></a> 12 \#include &lt;string&gt;

<a name="l00013"></a> 13 

<a name="l00018"></a> 18 namespace [simulation\_framework](namespacesimulation__framework.xhtml)

<a name="l00019"></a> 19 {

<a name="l00020"></a> 20 namespace [core](namespacecore.xhtml)

<a name="l00021"></a> 21 {

<a name="l00022"></a> 22 namespace lifecycle

<a name="l00023"></a> 23 {

<a name="l00024"></a> 24 

<a name="l00030"></a>[ 30](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml) class [IActivityFactory](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml)

<a name="l00031"></a> 31 {

<a name="l00032"></a> 32 public:

<a name="l00034"></a> 34 virtual [~IActivityFactory](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#adf2fbce25a6e1ead3b04a8490dfdc498)() = default;

<a name="l00035"></a> 35 

<a name="l00041"></a> 41 virtual std::unique_ptr&lt;IActivity&gt; [Create](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#a2f503485e1f01c9b4c37d79faf440c18)(

<a name="l00042"></a> 42 const std::string&amp; activity_name,

<a name="l00043"></a> 43 const scheduling::SchedulerClientType type = scheduling::SchedulerClientType::kDUMMY) = 0;

<a name="l00044"></a> 44 

<a name="l00051"></a> 51 virtual std::unique_ptr&lt;IActivity&gt; [CreateFmuActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#a2d0244f1297535e86928b8f65c568304)(

<a name="l00052"></a> 52 const std::string&amp; activity_name,

<a name="l00053"></a> 53 const [FmuConfig](structsimulation__framework_1_1core_1_1lifecycle_1_1FmuConfig.xhtml)&amp; fmu_config,

<a name="l00054"></a> 54 const scheduling::SchedulerClientType type = scheduling::SchedulerClientType::kDUMMY) = 0;

<a name="l00055"></a> 55 

<a name="l00059"></a> 59 virtual time::milliseconds [GetSimulationBaseCycleTime](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#a4ccd952c296850abe2efccad25634c4d)() const = 0;

<a name="l00060"></a> 60 

<a name="l00064"></a> 64 virtual void [SetSimulationBaseCycleTime](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#ae79c188b8b5e40fc4bfb4e87f24a4a9d)(const time::milliseconds&amp; [time](namespacetime.xhtml)) = 0;

<a name="l00065"></a> 65 };

<a name="l00066"></a> 66 

<a name="l00067"></a> 67 } // namespace lifecycle

<a name="l00068"></a> 68 } // namespace core

<a name="l00069"></a> 69 } // namespace simulation\_framework