    

 ## On this page

  

 

 # i\_kpi

 Last update: 16.07.2025 

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

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

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

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

<a id="l00008" name="l00008"></a> 8\#include "core/kpi/definition/kpi\_definition.h"

<a id="l00009" name="l00009"></a> 9\#include &lt;memory&gt;

<a id="l00010" name="l00010"></a> 10 

<a id="l00015" name="l00015"></a> 15namespace [simulation\_framework](namespacesimulation__framework.xhtml)

<a id="l00016" name="l00016"></a> 16{

<a id="l00021" name="l00021"></a> 21namespace [core](namespacecore.xhtml)

<a id="l00022" name="l00022"></a> 22{

<a id="l00027" name="l00027"></a> 27namespace [kpi](namespacekpi.xhtml)

<a id="l00028" name="l00028"></a> 28{

<a id="l00029" name="l00029"></a> 29 

<a id="l00037" name="l00037"></a> 37template &lt;typename T&gt;

<a id="l00038" name="l00038"></a>[ 38](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml)class [IKpi](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml)

<a id="l00039" name="l00039"></a> 39{

<a id="l00040" name="l00040"></a> 40 public:

<a id="l00042" name="l00042"></a>[ 42](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#ab56f1f4f0afe45f82e9c591df22d1377) virtual [~IKpi](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#ab56f1f4f0afe45f82e9c591df22d1377)() = default;

<a id="l00043" name="l00043"></a> 43 

<a id="l00046" name="l00046"></a>[ 46](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#affa38e79e2d2fe57ac913fa736437fae) virtual void [Init](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#affa38e79e2d2fe57ac913fa736437fae)() = 0;

<a id="l00047" name="l00047"></a> 47 

<a id="l00051" name="l00051"></a>[ 51](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#ad08cdb1d1091c84920a9733a81c752a5) virtual void [Reset](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#ad08cdb1d1091c84920a9733a81c752a5)() = 0;

<a id="l00052" name="l00052"></a> 52 

<a id="l00056" name="l00056"></a>[ 56](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#a614cb6051405e8865257360eefff9ab6) virtual [KpiContent](structsimulation__framework_1_1core_1_1kpi_1_1KpiContent.xhtml) [CalculateKpi](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#a614cb6051405e8865257360eefff9ab6)(const [T](classsimulation__framework_1_1core_1_1Topic.xhtml)&amp; [input](classsimulation__framework_1_1core_1_1Topic.xhtml)) = 0;

<a id="l00057" name="l00057"></a> 57 

<a id="l00064" name="l00064"></a>[ 64](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#aeef163c532f5b7b03e685642cb75ccaa) virtual kpi::Type [GetKpiType](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#aeef163c532f5b7b03e685642cb75ccaa)() const = 0;

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



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

<a id="l00067" name="l00067"></a> 67} // namespace kpi

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

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

[simulation\_framework::core::Topic](classsimulation__framework_1_1core_1_1Topic.xhtml)

This is the concrete Topic class that can be used for creation of a communication channel with given ...

**Definition** [topic.h:38](topic_8h_source.xhtml#l00037)



[simulation\_framework::core::kpi::IKpi](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml)

Represents core KPI calculation logic.

**Definition** [i\_kpi.h:39](i__kpi_8h_source.xhtml#l00038)



[simulation\_framework::core::kpi::IKpi::CalculateKpi](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#a614cb6051405e8865257360eefff9ab6)

virtual KpiContent CalculateKpi(const T &amp;input)=0

Executes the core KPI calculation logic.



[simulation\_framework::core::kpi::IKpi::~IKpi](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#ab56f1f4f0afe45f82e9c591df22d1377)

virtual ~IKpi()=default

Virtual destructor for proper cleanup of derived classes.



[simulation\_framework::core::kpi::IKpi::Reset](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#ad08cdb1d1091c84920a9733a81c752a5)

virtual void Reset()=0

Resets the KPI logic.



[simulation\_framework::core::kpi::IKpi::GetKpiType](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#aeef163c532f5b7b03e685642cb75ccaa)

virtual kpi::Type GetKpiType() const =0

Retrieves the KPI type.



[simulation\_framework::core::kpi::IKpi::Init](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.xhtml#affa38e79e2d2fe57ac913fa736437fae)

virtual void Init()=0

Initializes the KPI logic.



[core](namespacecore.xhtml)

The namespace for all core functionalities under namespace simulation_framework.



[kpi](namespacekpi.xhtml)

The namespace for kpi definition and corresponding APIs under namespace simulation_framework::evaluat...



[simulation\_framework](namespacesimulation__framework.xhtml)

The top namespace for simulation framework.



[simulation\_framework::core::kpi::KpiContent](structsimulation__framework_1_1core_1_1kpi_1_1KpiContent.xhtml)

struct KpiContent

**Definition** [kpi\_definition.h:67](kpi__definition_8h_source.xhtml#l00066)