12#ifndef COMPONENT_NAME_HELPER_HPP
13#define COMPONENT_NAME_HELPER_HPP
15#include "wsf_multiresolution_export.h"
21#include <unordered_map>
52template<
typename DerivedComponent>
73template<
typename DerivedComponent>
80template<
typename DerivedComponent>
83 const std::string upperCaseName = []
86 const std::locale defaultLocale;
87 std::transform(name.begin(),
90 [&defaultLocale](
const char c) { return std::toupper(c, defaultLocale); });
93 return "WSF_MULTIRESOLUTION_" + upperCaseName;
96template<
typename DerivedComponent>
102template<
typename DerivedComponent>
179template<
typename Last>
183 return std::move(componentTypeMap);
186template<
typename First,
typename Second,
typename... Rest>
An object that represents the acoustic signature of a platform.
Definition WsfAcousticSignature.hpp:24
Definition WsfFuel.hpp:30
An object that represents the infrared signature of a platform.
Definition WsfInfraredSignature.hpp:25
Definition WsfMover.hpp:37
An object that represents the optical signature of a platform.
Definition WsfOpticalSignature.hpp:27
Definition WsfProcessor.hpp:39
An object that represent the radar signature of a platform.
Definition WsfRadarSignature.hpp:27
Definition WsfSensor.hpp:92
Definition WsfComm.hpp:43
Definition WsfScriptObserver.hpp:233
Definition WsfComm.cpp:34
std::unordered_map< std::string, bool > AppendComponentTypeMap(std::unordered_map< std::string, bool > &&componentTypeMap)
Definition ComponentNameHelper.hpp:180
Definition ComponentNameHelper.cpp:17
constexpr const char * BaseComponentName()
Definition ComponentNameHelper.hpp:103
constexpr auto cEXTENSION_NAME
Definition ComponentNameHelper.hpp:46
std::unordered_map< std::string, bool > ComponentTypeRequiresNameMap()
Generates a map of each supported multiresolution type name to its required user input flag.
Definition ComponentNameHelper.cpp:18
std::string CommandName()
This name, associated with DerivedComponent, is for use in the multiresolution framework....
Definition ComponentNameHelper.hpp:74
constexpr bool RequiresUserInputName()
Definition ComponentNameHelper.hpp:97
constexpr auto cFEATURE_NAME
Definition ComponentNameHelper.hpp:47
std::string BaseTypeName()
This name, associated with DerivedComponent, is used as the base input type for scenario input.
Definition ComponentNameHelper.hpp:81
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition ComponentNameHelper.hpp:57
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:152
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:151
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:131
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:130
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:159
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:158
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:117
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:116
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:166
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:165
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:144
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:145
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:173
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:172
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:123
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:124
static constexpr auto cLOWER_CASE_NAME
Definition ComponentNameHelper.hpp:137
static constexpr bool cREQUIRES_USER_INPUT_NAME
Definition ComponentNameHelper.hpp:138
Helper struct for assigning names to platform components.
Definition ComponentNameHelper.hpp:54