-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmanagersensor.cpp
More file actions
37 lines (32 loc) · 980 Bytes
/
managersensor.cpp
File metadata and controls
37 lines (32 loc) · 980 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <QDebug>
#include "managersensor.h"
void ManagerSensor::addSensor(std::shared_ptr<Sensor> sensor) {
sensors.push_back(sensor);
}
std::vector<std::shared_ptr<Sensor>> ManagerSensor::getSensors() const {
return sensors;
}
std::shared_ptr<Sensor> ManagerSensor::getSensorById(int id) {
for (const auto& sensor : sensors) {
if (sensor->getId() == id) {
return sensor;
}
}
return nullptr;
}
void ManagerSensor::updateSensor(std::shared_ptr<Sensor> sensor) {
for (auto& existingSensor : sensors) {
if (existingSensor->getId() == sensor->getId()) {
existingSensor = sensor;
return;
}
}
}
void ManagerSensor::removeSensor(int id) {
sensors.erase(
std::remove_if(sensors.begin(), sensors.end(), [id](const std::shared_ptr<Sensor>& sensor) {
return sensor->getId() == id;
}),
sensors.end()
);
}