    

 ## On this page

  

 

 # simulation\_framework::autonomy::ActivityFactory Class Reference

 Last update: 16.07.2025 

Factory class for creating activities for autonomy simulation. [More...](classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml#details)

`#include <<a class="el" href="activity__factory_8h_source.xhtml">activity_factory.h</a>>`

Inheritance diagram for simulation_framework::autonomy::ActivityFactory:

![Inheritance graph](/sites/default/files/migrate-content/avxcelerate_simulation_framework_2025_r2_2/classsimulation__framework_1_1autonomy_1_1ActivityFactory__inherit__graph.png)

\[[legend](graph_legend.xhtml)\]

Collaboration diagram for simulation_framework::autonomy::ActivityFactory:

![Collaboration graph](/sites/default/files/migrate-content/avxcelerate_simulation_framework_2025_r2_2/classsimulation__framework_1_1autonomy_1_1ActivityFactory__coll__graph.png)

\[[legend](graph_legend.xhtml)\]

## <a id="pub-methods" name="pub-methods"></a>Public Member Functions

 [ActivityFactory](classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml#a95a2f9ae094f44fbbfec5391e5fbd97c) ([const](classsimulation__framework_1_1core_1_1Topic.xhtml) [core::SimulationParameters](structsimulation__framework_1_1core_1_1SimulationParameters.xhtml) &amp;[sim\_params](classsimulation__framework_1_1core_1_1Topic.xhtml), [const](classsimulation__framework_1_1core_1_1Topic.xhtml) time::milliseconds &amp;[base\_cycle\_time](classsimulation__framework_1_1core_1_1Topic.xhtml)=time::milliseconds{50}) Constructs an `<a class="el" href="classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml" title="Factory class for creating activities for autonomy simulation.">ActivityFactory</a>` instance.   
 std::unique\_ptr&lt; [core::lifecycle::IActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivity.xhtml) &gt; [Create](classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml#aadc073761ddca70660c778b109cd8f2a) ([const](classsimulation__framework_1_1core_1_1Topic.xhtml) std::string &amp;[activity\_name](classsimulation__framework_1_1core_1_1Topic.xhtml), [const](classsimulation__framework_1_1core_1_1Topic.xhtml) core::scheduling::SchedulerClientType type=core::scheduling::SchedulerClientType::kDUMMY) [override](classsimulation__framework_1_1core_1_1Topic.xhtml) Creates a simulation activity.   
 std::unique\_ptr&lt; [IActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivity.xhtml) &gt; [CreateFmuActivity](classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml#ae25fb9a822daf739975964cdafb610d2) ([const](classsimulation__framework_1_1core_1_1Topic.xhtml) std::string &amp;[activity\_name](classsimulation__framework_1_1core_1_1Topic.xhtml), [const](classsimulation__framework_1_1core_1_1Topic.xhtml) [core::lifecycle::FmuConfig](structsimulation__framework_1_1core_1_1lifecycle_1_1FmuConfig.xhtml) &amp;[fmu\_config](classsimulation__framework_1_1core_1_1Topic.xhtml), [const](classsimulation__framework_1_1core_1_1Topic.xhtml) scheduling::SchedulerClientType type=scheduling::SchedulerClientType::kDUMMY) [override](classsimulation__framework_1_1core_1_1Topic.xhtml) Creates an FMU-based simulation activity.   
 time::milliseconds [GetSimulationBaseCycleTime](classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml#a94f462204396f9cb530415976df06210) () [const](classsimulation__framework_1_1core_1_1Topic.xhtml) [override](classsimulation__framework_1_1core_1_1Topic.xhtml) Retrieves the simulation's base cycle time.   
 [void](classsimulation__framework_1_1core_1_1Topic.xhtml) [SetSimulationBaseCycleTime](classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml#affd15ea8f52128efdef54859ed514dc7) ([const](classsimulation__framework_1_1core_1_1Topic.xhtml) time::milliseconds &amp;time) [override](classsimulation__framework_1_1core_1_1Topic.xhtml) Sets the simulation's base cycle time.   
 ![-](/sites/default/files/migrate-content/avxcelerate_simulation_framework_2025_r2_2/closed.png) Public Member Functions inherited from [simulation\_framework::core::lifecycle::IActivityFactory](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml)[virtual](classsimulation__framework_1_1core_1_1Topic.xhtml) **~IActivityFactory** ()=[default](classsimulation__framework_1_1core_1_1Topic.xhtml) Virtual destructor for proper cleanup of derived classes.   
 <a id="details" name="details"></a>## Detailed Description

Factory class for creating activities for autonomy simulation.

The `<a class="el" href="classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml" title="Factory class for creating activities for autonomy simulation.">ActivityFactory</a>` implements the `IActivityFactory` interface to provide mechanisms for creating and managing simulation activities. It supports creating both generic and FMU-based activities, allowing for flexible integration into various simulation workflows.

The class also manages the base cycle time for the simulation, which can be retrieved or modified as needed.

See also[core::lifecycle::IActivityFactory](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml "Interface for creating simulation activities."), [core::lifecycle::IActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivity.xhtml "Interface for simulation activities."), [core::SimulationParameters](structsimulation__framework_1_1core_1_1SimulationParameters.xhtml "The SimulationParameters struct encapsulates parameters related to simfwk-core configuration.")Definition at line [38](activity__factory_8h_source.xhtml#l00038) of file [activity\_factory.h](activity__factory_8h_source.xhtml).



## Constructor &amp; Destructor Documentation

<a id="a95a2f9ae094f44fbbfec5391e5fbd97c" name="a95a2f9ae094f44fbbfec5391e5fbd97c"></a>## [◆ ](#a95a2f9ae094f44fbbfec5391e5fbd97c)ActivityFactory()

 simulation\_framework::autonomy::ActivityFactory::ActivityFactory  ( [const](classsimulation__framework_1_1core_1_1Topic.xhtml) [core::SimulationParameters](structsimulation__framework_1_1core_1_1SimulationParameters.xhtml) &amp;  *sim\_params*,    [const](classsimulation__framework_1_1core_1_1Topic.xhtml) time::milliseconds &amp;  *base\_cycle\_time* = `time::milliseconds{50}`   ) 

Constructs an `<a class="el" href="classsimulation__framework_1_1autonomy_1_1ActivityFactory.xhtml" title="Factory class for creating activities for autonomy simulation.">ActivityFactory</a>` instance.

Initializes the factory with the simulation parameters and an optional base cycle time.

Parameters sim\_paramsThe simulation parameters used to configure activities created by this factory. base\_cycle\_timeThe base cycle time for the simulation (default: 50 milliseconds). 



## Member Function Documentation

<a id="aadc073761ddca70660c778b109cd8f2a" name="aadc073761ddca70660c778b109cd8f2a"></a>## [◆ ](#aadc073761ddca70660c778b109cd8f2a)Create()

 std::unique\_ptr&lt; [core::lifecycle::IActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivity.xhtml) &gt; simulation\_framework::autonomy::ActivityFactory::Create  ( [const](classsimulation__framework_1_1core_1_1Topic.xhtml) std::string &amp;  *activity\_name*,    [const](classsimulation__framework_1_1core_1_1Topic.xhtml) core::scheduling::SchedulerClientType  *type* = `core::scheduling::SchedulerClientType::kDUMMY`   )   overridevirtual 

Creates a simulation activity.

Generates a simulation activity based on the provided name and scheduler client type. The activity is returned as a unique pointer for efficient memory management.

Parameters activity\_nameThe name of the activity to create. typeThe type of scheduler client to associate with the activity (default: `core::scheduling::SchedulerClientType::kDUMMY`). ReturnsA unique pointer to the created `<a class="el" href="classsimulation__framework_1_1core_1_1lifecycle_1_1IActivity.xhtml" title="Interface for simulation activities.">core::lifecycle::IActivity</a>` instance. Exceptions std::runtime\_errorif the activity creation fails. Implements [simulation\_framework::core::lifecycle::IActivityFactory](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#a9ec94cdb7f7a92ff15ccee4e63dd0c3c).





<a id="ae25fb9a822daf739975964cdafb610d2" name="ae25fb9a822daf739975964cdafb610d2"></a>## [◆ ](#ae25fb9a822daf739975964cdafb610d2)CreateFmuActivity()

 std::unique\_ptr&lt; [IActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivity.xhtml) &gt; simulation\_framework::autonomy::ActivityFactory::CreateFmuActivity  ( [const](classsimulation__framework_1_1core_1_1Topic.xhtml) std::string &amp;  *activity\_name*,    [const](classsimulation__framework_1_1core_1_1Topic.xhtml) [core::lifecycle::FmuConfig](structsimulation__framework_1_1core_1_1lifecycle_1_1FmuConfig.xhtml) &amp;  *fmu\_config*,    [const](classsimulation__framework_1_1core_1_1Topic.xhtml) scheduling::SchedulerClientType  *type* = `scheduling::SchedulerClientType::kDUMMY`   )   overridevirtual 

Creates an FMU-based simulation activity.

Generates a simulation activity specific to an FMU (Functional Mock-up Unit), using the provided FMU configuration and scheduler client type.

Parameters activity\_nameThe name of the FMU activity to create. fmu\_configThe configuration details for the FMU. typeThe type of scheduler client to associate with the activity (default: `core::scheduling::SchedulerClientType::kDUMMY`). ReturnsA unique pointer to the created FMU activity as an `IActivity` instance. Exceptions std::runtime\_errorif the FMU activity creation fails. Implements [simulation\_framework::core::lifecycle::IActivityFactory](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#a96c9a911627cd3dd1410e161eca05e63).





<a id="a94f462204396f9cb530415976df06210" name="a94f462204396f9cb530415976df06210"></a>## [◆ ](#a94f462204396f9cb530415976df06210)GetSimulationBaseCycleTime()

 time::milliseconds simulation\_framework::autonomy::ActivityFactory::GetSimulationBaseCycleTime  ( )  const  overridevirtual 

Retrieves the simulation's base cycle time.

Provides the base cycle time used for scheduling and synchronization in the simulation.

ReturnsThe simulation base cycle time in milliseconds. Implements [simulation\_framework::core::lifecycle::IActivityFactory](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#a4ccd952c296850abe2efccad25634c4d).





<a id="affd15ea8f52128efdef54859ed514dc7" name="affd15ea8f52128efdef54859ed514dc7"></a>## [◆ ](#affd15ea8f52128efdef54859ed514dc7)SetSimulationBaseCycleTime()

 [void](classsimulation__framework_1_1core_1_1Topic.xhtml) simulation\_framework::autonomy::ActivityFactory::SetSimulationBaseCycleTime  ( [const](classsimulation__framework_1_1core_1_1Topic.xhtml) time::milliseconds &amp;  *time*)   overridevirtual 

Sets the simulation's base cycle time.

Updates the base cycle time used for scheduling and synchronization in the simulation.

Parameters timeThe new base cycle time in milliseconds. Implements [simulation\_framework::core::lifecycle::IActivityFactory](classsimulation__framework_1_1core_1_1lifecycle_1_1IActivityFactory.xhtml#ae79c188b8b5e40fc4bfb4e87f24a4a9d).





---

The documentation for this class was generated from the following file:- [activity\_factory.h](activity__factory_8h_source.xhtml)