DevMgr: Add sensorDevSpecs list and make intero/extro lists use unique_ptr

This commit is contained in:
2025-01-08 06:23:34 -04:00
parent 6a494f7ff7
commit f594d29a2d
3 changed files with 26 additions and 15 deletions
+12 -8
View File
@@ -5,6 +5,8 @@
#include <cstring>
#include <cstdlib>
#include <stdexcept>
#include <memory>
#include <functional>
#include <deviceManager/deviceManager.h>
#ifndef yylex
@@ -70,23 +72,25 @@ sensor_spec:
interoceptor_spec:
KEYWORD_SPECTYPE_INTEROSPECTOR PIPE spec_body {
DeviceManager::InteroceptorDeviceSpec *spec =
static_cast<DeviceManager::InteroceptorDeviceSpec *>($3);
auto spec = std::make_unique<DeviceManager::InteroceptorDeviceSpec>(
*static_cast<DeviceManager::InteroceptorDeviceSpec *>($3));
spec->sensorType = $1;
DeviceManager::interoceptorDeviceSpecs.push_back(*spec);
delete spec;
DeviceManager::interoceptorDeviceSpecs.push_back(std::move(spec));
DeviceManager::sensorDeviceSpecs.push_back(*spec);
delete $3;
}
;
extrospector_spec:
KEYWORD_SPECTYPE_EXTROSPECTOR PIPE spec_body {
DeviceManager::ExtrospectorDeviceSpec *spec =
static_cast<DeviceManager::ExtrospectorDeviceSpec *>($3);
auto spec = std::make_unique<DeviceManager::ExtrospectorDeviceSpec>(
*static_cast<DeviceManager::ExtrospectorDeviceSpec *>($3));
spec->sensorType = $1;
DeviceManager::extrospectorDeviceSpecs.push_back(*spec);
delete spec;
DeviceManager::extrospectorDeviceSpecs.push_back(std::move(spec));
DeviceManager::sensorDeviceSpecs.push_back(*spec);
delete $3;
}
;