2025-06-03 00:50:08 +02:00
|
|
|
#pragma once
|
|
|
|
|
#include <mutex>
|
|
|
|
|
|
2025-06-03 01:40:44 +02:00
|
|
|
/**
|
|
|
|
|
* Thread-sicheres Analysemodell
|
|
|
|
|
* Vereinfachte Implementierung mit:
|
|
|
|
|
* - Einfachem Mutex-Schutz (kein Reader-Writer-Lock)
|
|
|
|
|
* - Für seltene Schreibzugriffe geeignet
|
|
|
|
|
*/
|
2025-06-03 00:50:08 +02:00
|
|
|
class AnalysisModel {
|
2025-06-03 01:40:44 +02:00
|
|
|
int value = 0; // Der gespeicherte Wert
|
|
|
|
|
std::mutex mtx; // Schützt Lese/Schreibzugriffe
|
2025-06-03 00:50:08 +02:00
|
|
|
|
|
|
|
|
public:
|
2025-06-03 01:40:44 +02:00
|
|
|
/**
|
|
|
|
|
* Liest den aktuellen Wert
|
|
|
|
|
* @return Der gespeicherte Wert
|
|
|
|
|
*/
|
2025-06-03 00:50:08 +02:00
|
|
|
int read() {
|
2025-06-03 01:25:44 +02:00
|
|
|
std::lock_guard<std::mutex> lock(mtx);
|
|
|
|
|
return value;
|
2025-06-03 00:50:08 +02:00
|
|
|
}
|
|
|
|
|
|
2025-06-03 01:40:44 +02:00
|
|
|
/**
|
|
|
|
|
* Schreibt einen neuen Wert
|
|
|
|
|
* @param new_val Der neue Wert
|
|
|
|
|
*/
|
2025-06-03 01:25:44 +02:00
|
|
|
void write(int new_val) {
|
|
|
|
|
std::lock_guard<std::mutex> lock(mtx);
|
|
|
|
|
value = new_val;
|
2025-06-03 00:50:08 +02:00
|
|
|
}
|
2025-06-03 01:25:44 +02:00
|
|
|
};
|