You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
5.2 KiB
159 lines
5.2 KiB
/*
|
|
* Copyright 2023 Ingemar Hedvall
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#include "a2l/module.h"
|
|
|
|
namespace a2l {
|
|
|
|
void Module::AddAxisPts(std::unique_ptr<AxisPts>& axis_pts) {
|
|
axis_pts_list_.emplace(axis_pts->Name(), std::move(axis_pts));
|
|
}
|
|
|
|
void Module::AddBlob(std::unique_ptr<Blob>& blob) {
|
|
blob_list_.emplace(blob->Name(), std::move(blob));
|
|
}
|
|
|
|
void Module::AddCharacteristic(std::unique_ptr<Characteristic>&
|
|
characteristic) {
|
|
characteristic_list_.emplace(characteristic->Name(),
|
|
std::move(characteristic));
|
|
}
|
|
|
|
void Module::AddCompuMethod(std::unique_ptr<CompuMethod>& method) {
|
|
compu_method_list_.emplace(method->Name(), std::move(method));
|
|
}
|
|
|
|
void Module::AddCompuTab(std::unique_ptr<CompuTab>& tab) {
|
|
compu_tab_list_.emplace(tab->Name(), std::move(tab));
|
|
}
|
|
|
|
void Module::AddCompuVtab(std::unique_ptr<CompuVtab>& tab) {
|
|
compu_vtab_list_.emplace(tab->Name(), std::move(tab));
|
|
}
|
|
|
|
void Module::AddCompuVtabRange(std::unique_ptr<CompuVtabRange>& tab) {
|
|
compu_vtab_range_list_.emplace(tab->Name(), std::move(tab));
|
|
}
|
|
|
|
void Module::AddFrame(std::unique_ptr<Frame>& frame) {
|
|
frame_list_.emplace(frame->Name(), std::move(frame));
|
|
}
|
|
|
|
void Module::AddFunction(std::unique_ptr<Function>& func) {
|
|
function_list_.emplace(func->Name(), std::move(func));
|
|
}
|
|
|
|
void Module::AddGroup(std::unique_ptr<Group>& group) {
|
|
group_list_.emplace(group->Name(), std::move(group));
|
|
}
|
|
|
|
void Module::AddInstance(std::unique_ptr<Instance>& instance) {
|
|
instance_list_.emplace(instance->Name(), std::move(instance));
|
|
}
|
|
|
|
void Module::AddMeasurement(std::unique_ptr<Measurement>& measurement) {
|
|
measurement_list_.emplace(measurement->Name(), std::move(measurement));
|
|
}
|
|
|
|
void Module::AddRecordLayout(std::unique_ptr<RecordLayout>& record_layout) {
|
|
record_layout_list_.emplace(record_layout->Name(), std::move(record_layout));
|
|
}
|
|
|
|
void Module::AddTransformer(std::unique_ptr<Transformer>& transformer) {
|
|
transformer_list_.emplace(transformer->Name(), std::move(transformer));
|
|
}
|
|
|
|
void Module::AddTypedefAxis(std::unique_ptr<AxisPts>& axis) {
|
|
typedef_axis_list_.emplace(axis->Name(), std::move(axis));
|
|
}
|
|
|
|
void Module::AddTypedefBlob(std::unique_ptr<Blob>& blob) {
|
|
typedef_blob_list_.emplace(blob->Name(), std::move(blob));
|
|
}
|
|
|
|
void Module::AddTypedefCharacteristic(std::unique_ptr<Characteristic>&
|
|
characteristic) {
|
|
typedef_characteristic_list_.emplace(characteristic->Name(),
|
|
std::move(characteristic));
|
|
}
|
|
|
|
void Module::AddTypedefMeasurement(std::unique_ptr<Measurement>& measurement){
|
|
typedef_measurement_list_.emplace(measurement->Name(),
|
|
std::move(measurement));
|
|
}
|
|
|
|
void Module::AddTypedefStructure(std::unique_ptr<Structure>& structure){
|
|
typedef_structure_list_.emplace(structure->Name(), std::move(structure));
|
|
}
|
|
|
|
void Module::AddUnit(std::unique_ptr<Unit>& unit){
|
|
unit_list_.emplace(unit->Name(), std::move(unit));
|
|
}
|
|
|
|
void Module::AddUserRight(std::unique_ptr<A2lUserRight>& user_right){
|
|
user_right_list_.emplace(user_right->UserLevelId, std::move(user_right));
|
|
}
|
|
|
|
AxisPts* Module::GetAxisPts(const std::string& name) {
|
|
auto itr = axis_pts_list_.find(name);
|
|
return itr == axis_pts_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
Blob* Module::GetBlob(const std::string& name) {
|
|
auto itr = blob_list_.find(name);
|
|
return itr == blob_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
Characteristic* Module::GetCharacteristic(const std::string& name) {
|
|
auto itr = characteristic_list_.find(name);
|
|
return itr == characteristic_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
CompuTab* Module::GetCompuTab(const std::string& name) {
|
|
auto itr = compu_tab_list_.find(name);
|
|
return itr == compu_tab_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
CompuVtab* Module::GetCompuVtab(const std::string& name) {
|
|
auto itr = compu_vtab_list_.find(name);
|
|
return itr == compu_vtab_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
CompuVtabRange* Module::GetCompuVtabRange(const std::string& name) {
|
|
auto itr = compu_vtab_range_list_.find(name);
|
|
return itr == compu_vtab_range_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
Measurement* Module::GetMeasurement(const std::string& name) {
|
|
auto itr = measurement_list_.find(name);
|
|
return itr == measurement_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
AxisPts* Module::GetTypedefAxis(const std::string& name) {
|
|
auto itr = typedef_axis_list_.find(name);
|
|
return itr == typedef_axis_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
Blob* Module::GetTypedefBlob(const std::string& name) {
|
|
auto itr = typedef_blob_list_.find(name);
|
|
return itr == typedef_blob_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
Characteristic* Module::GetTypedefCharacteristic(const std::string& name) {
|
|
auto itr = typedef_characteristic_list_.find(name);
|
|
return itr == typedef_characteristic_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
Measurement* Module::GetTypedefMeasurement(const std::string& name) {
|
|
auto itr = typedef_measurement_list_.find(name);
|
|
return itr == typedef_measurement_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
Structure* Module::GetTypedefStructure(const std::string& name) {
|
|
auto itr = typedef_structure_list_.find(name);
|
|
return itr == typedef_structure_list_.end() ? nullptr : itr->second.get();
|
|
}
|
|
|
|
} // namespace a2l
|