    

 ## On this page

  

 

 # File i\_kpi.h

 Last update: 22.04.2026 

![](https://img.shields.io/badge/language-C%2B%2B-blue "C++")

**Location**: `core/kpi/i_kpi/i_kpi.h`

## Classes

- [simulation\_framework::core::kpi::IKpi](classsimulation__framework_1_1core_1_1kpi_1_1IKpi.md#classsimulation__framework_1_1core_1_1kpi_1_1IKpi)

## Namespaces

- [simulation\_framework](namespacesimulation__framework.md#namespacesimulation__framework)
- [core](namespacecore.md#namespacecore)
- [simulation\_framework::core](namespacesimulation__framework_1_1core.md#namespacesimulation__framework_1_1core)
- [kpi](namespacekpi.md#namespacekpi)
- [simulation\_framework::core::kpi](namespacesimulation__framework_1_1core_1_1kpi.md#namespacesimulation__framework_1_1core_1_1kpi)

## Includes

- [core/kpi/definition/kpi\_definition.h](kpi__definition_8h.md#kpi__definition_8h)
- 

## Included by

- [distance\_driven\_evaluator.h](distance__driven__evaluator_8h.md#distance__driven__evaluator_8h)
- [i\_evaluator.h](i__evaluator_8h.md#i__evaluator_8h)
- [min\_ttc\_evaluator.h](min__ttc__evaluator_8h.md#min__ttc__evaluator_8h)
- [predictive\_min\_ttc\_evaluator.h](predictive__min__ttc__evaluator_8h.md#predictive__min__ttc__evaluator_8h)

## Source

```cpp


#ifndef SIMFWK_CORE_KPI_IKPI_IKPI_H
#define SIMFWK_CORE_KPI_IKPI_IKPI_H

#include "core/kpi/definition/kpi_definition.h"
#include <memory>

namespace simulation_framework
{
namespace core
{
namespace kpi
{

template <typename T>
class IKpi
{
  public:
    virtual ~IKpi() = default;

    virtual void Init() = 0;

    virtual void Reset() = 0;

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

    virtual kpi::Type GetKpiType() const = 0;
};

}  // namespace kpi
}  // namespace core
}  // namespace simulation_framework

#endif  // SIMFWK_CORE_KPI_IKPI_IKPI_H

```