BS_Praktikum4/analysis_model.h

33 lines
725 B
C
Raw Permalink Normal View History

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
};