Compute Graph Framework SDK Reference  5.12
ParameterDescriptor.hpp File Reference

Go to the source code of this file.

Namespaces

namespace  dw
 
namespace  dw::framework
 

Macros

#define DW_DESCRIBE_ABSTRACT_ARRAY_PARAMETER(TYPE_NAME, PARAM_NAME, ARRAY_SIZE, args...)   dw::framework::describeAbstractArrayParameter<TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), PARAM_NAME, ##args)
 
#define DW_DESCRIBE_ABSTRACT_PARAMETER(TYPE_NAME, args...)   dw::framework::describeAbstractParameter<TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_ARRAY_PARAMETER(TYPE_NAME, PARAM_NAME, ARRAY_SIZE, args...)   dw::framework::describeArrayParameter<TYPE_NAME, TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), PARAM_NAME, ##args)
 
#define DW_DESCRIBE_ARRAY_PARAMETER_WITH_DEFAULT(TYPE_NAME, args...)   dw::framework::describeArrayParameterWithDefault<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_ARRAY_PARAMETER_WITH_SEMANTIC(TYPE_NAME, SEMANTIC_TYPE_NAME, PARAM_NAME, ARRAY_SIZE, args...)   dw::framework::describeArrayParameter<TYPE_NAME, SEMANTIC_TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), PARAM_NAME, ##args)
 
#define DW_DESCRIBE_INDEX_PARAMETER(TYPE_NAME, args...)   dw::framework::describeIndexParameter<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_INDEX_PARAMETER_WITH_SEMANTIC(TYPE_NAME, SEMANTIC_TYPE_NAME, args...)   dw::framework::describeIndexParameter<TYPE_NAME, SEMANTIC_TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_PARAMETER(TYPE_NAME, args...)   dw::framework::describeParameter<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_PARAMETER_WITH_DEFAULT(TYPE_NAME, args...)   dw::framework::describeParameterWithDefault<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_PARAMETER_WITH_SEMANTIC(TYPE_NAME, SEMANTIC_TYPE_NAME, args...)   dw::framework::describeParameter<TYPE_NAME, SEMANTIC_TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_UNNAMED_ARRAY_PARAMETER(TYPE_NAME, ARRAY_SIZE, args...)   dw::framework::describeUnnamedArrayParameter<TYPE_NAME, TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_UNNAMED_ARRAY_PARAMETER_WITH_SEMANTIC(TYPE_NAME, SEMANTIC_TYPE_NAME, ARRAY_SIZE, args...)   dw::framework::describeUnnamedArrayParameter<TYPE_NAME, SEMANTIC_TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_UNNAMED_PARAMETER(TYPE_NAME, args...)   dw::framework::describeUnnamedParameter<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_DESCRIBE_UNNAMED_PARAMETER_WITH_SEMANTIC(TYPE_NAME, SEMANTIC_TYPE_NAME, args...)   dw::framework::describeUnnamedParameter<TYPE_NAME, SEMANTIC_TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)
 
#define DW_PARAMETER_TYPE_NAME_STRING_VIEW(TYPE_NAME_STR)   TYPE_NAME_STR##_sv
 

Functions

template<typename NodeT >
auto dw::framework::create (const ParameterProvider &provider) -> std::unique_ptr< NodeT >
 
template<typename NodeT >
auto dw::framework::createConstructorArguments ()
 Create a tuple of constructor argument needed by the constructor of the passed node. More...
 
template<typename T , size_t ArraySize>
constexpr auto dw::framework::describeAbstractArrayParameter (dw::core::StringView const &&typeName, dw::core::StringView const &&parameterName)
 
template<typename T >
constexpr auto dw::framework::describeAbstractParameter (dw::core::StringView const &&typeName, dw::core::StringView const &&parameterName)
 
template<typename T , typename S , size_t ArraySize, typename... MemberPointers>
constexpr auto dw::framework::describeArrayParameter (dw::core::StringView const &&typeName, dw::core::StringView const &&parameterName, const MemberPointers &&... memberPointers)
 
template<typename T , typename S , size_t ArraySize, typename... MemberPointers>
constexpr auto dw::framework::describeArrayParameterWithDefault (dw::core::StringView const &&typeName, dw::core::StringView const &&parameterName, std::array< T, ArraySize > defaultValue, const MemberPointers &&... memberPointers)
 
template<typename... Args>
constexpr auto dw::framework::describeConstructorArgument (const Args &&... args) -> dw::core::Tuple< Args... >
 
constexpr std::tuple dw::framework::describeConstructorArguments ()
 
template<typename Argument1T , typename Arg1 >
constexpr auto dw::framework::describeConstructorArguments (const Arg1 &&arg1)
 
template<typename Argument1T , typename Argument2T , typename Arg1 , typename Arg2 >
constexpr auto dw::framework::describeConstructorArguments (const Arg1 &&arg1, const Arg2 &&arg2) -> std::tuple< std::tuple< Argument1T *, Arg1 >, std::tuple< Argument2T *, Arg2 > >
 
template<typename Argument1T , typename Argument2T , typename Argument3T , typename Arg1 , typename Arg2 , typename Arg3 >
constexpr auto dw::framework::describeConstructorArguments (const Arg1 &&arg1, const Arg2 &&arg2, const Arg3 &&arg3)
 
template<typename Argument1T , typename Argument2T , typename Argument3T , typename Argument4T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
constexpr auto dw::framework::describeConstructorArguments (const Arg1 &&arg1, const Arg2 &&arg2, const Arg3 &&arg3, const Arg4 &&arg4)
 
template<typename Argument1T , typename Argument2T , typename Argument3T , typename Argument4T , typename Argument5T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
constexpr auto dw::framework::describeConstructorArguments (const Arg1 &&arg1, const Arg2 &&arg2, const Arg3 &&arg3, const Arg4 &&arg4, const Arg5 &&arg5)
 
template<typename Argument1T , typename Argument2T , typename Argument3T , typename Argument4T , typename Argument5T , typename Argument6T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
constexpr auto dw::framework::describeConstructorArguments (const Arg1 &&arg1, const Arg2 &&arg2, const Arg3 &&arg3, const Arg4 &&arg4, const Arg5 &&arg5, const Arg6 &&arg6)
 
template<typename T , typename S , typename... MemberPointers>
constexpr auto dw::framework::describeIndexParameter (dw::core::StringView const &&typeName, dw::core::StringView const &&parameterName, const MemberPointers &&... memberPointers)
 
template<typename T , typename S , typename... MemberPointers>
constexpr auto dw::framework::describeParameter (dw::core::StringView const &&typeName, dw::core::StringView const &&parameterName, const MemberPointers &&... memberPointers) -> std::tuple< dw::core::StringView, dw::core::StringView, T *, S *, std::integral_constant< bool, false >, std::integral_constant< size_t, 0 >, std::tuple< const MemberPointers... > >
 
template<typename NodeT >
constexpr auto dw::framework::describeParameters ()
 Get described parameters for the passed node. More...
 
template<typename T , typename S , typename... MemberPointers>
constexpr auto dw::framework::describeParameterWithDefault (dw::core::StringView const &&typeName, dw::core::StringView const &&parameterName, T defaultValue, const MemberPointers &&... memberPointers) -> std::tuple< dw::core::StringView, dw::core::StringView, T *, S *, std::integral_constant< bool, false >, std::integral_constant< size_t, 0 >, std::tuple< const MemberPointers... >, T >
 
template<typename T , typename S , size_t ArraySize, typename... MemberPointers>
constexpr auto dw::framework::describeUnnamedArrayParameter (dw::core::StringView const &&typeName, const MemberPointers &&... memberPointers)
 
template<typename T , typename S , typename... MemberPointers>
constexpr auto dw::framework::describeUnnamedParameter (dw::core::StringView const &&typeName, const MemberPointers &&... memberPointers) -> std::tuple< dw::core::StringView, dw::core::StringView, T *, S *, std::integral_constant< bool, false >, std::integral_constant< size_t, 0 >, std::tuple< const MemberPointers... > >
 
template<typename NodeT , class ConstructorArguments >
auto dw::framework::makeUniqueFromTuple (const ConstructorArguments &&constructorArguments) -> std::unique_ptr< NodeT >
 Instantiate a node using the passed constructor arguments. More...
 
template<typename NodeT >
constexpr std::size_t dw::framework::parameterSize ()
 Get the number of parameters for a given node. More...
 
template<typename NodeT , class ConstructorArguments , typename std::enable_if_t< std::tuple_size< ConstructorArguments >()==1, void > * = nullptr>
void dw::framework::populateParameters (ConstructorArguments &constructorArguments, const ParameterProvider &provider)
 Populate the constructor arguments using values from the parameter provider. More...
 

Variables

static constexpr const size_t dw::framework::PARAMETER_ARRAY_SIZE {5U}
 
static constexpr const size_t dw::framework::PARAMETER_CONSTRUCTOR_ARGUMENT_DESCRIPTOR {1U}
 
static constexpr const size_t dw::framework::PARAMETER_CONSTRUCTOR_ARGUMENT_TYPE {0U}
 
static constexpr const size_t dw::framework::PARAMETER_DEFAULT_VALUE {7U}
 
static constexpr const size_t dw::framework::PARAMETER_IS_INDEX {4U}
 
static constexpr const size_t dw::framework::PARAMETER_MEMBER_PTRS {6U}
 
static constexpr const size_t dw::framework::PARAMETER_NAME {1U}
 
static constexpr const size_t dw::framework::PARAMETER_SEMANTIC_TYPE {3U}
 
static constexpr const size_t dw::framework::PARAMETER_TYPE {2U}
 
static constexpr const size_t dw::framework::PARAMETER_TYPE_NAME {0U}
 

Macro Definition Documentation

◆ DW_DESCRIBE_ABSTRACT_ARRAY_PARAMETER

#define DW_DESCRIBE_ABSTRACT_ARRAY_PARAMETER (   TYPE_NAME,
  PARAM_NAME,
  ARRAY_SIZE,
  args... 
)    dw::framework::describeAbstractArrayParameter<TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), PARAM_NAME, ##args)

Definition at line 302 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_ABSTRACT_PARAMETER

#define DW_DESCRIBE_ABSTRACT_PARAMETER (   TYPE_NAME,
  args... 
)    dw::framework::describeAbstractParameter<TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 301 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_ARRAY_PARAMETER

#define DW_DESCRIBE_ARRAY_PARAMETER (   TYPE_NAME,
  PARAM_NAME,
  ARRAY_SIZE,
  args... 
)    dw::framework::describeArrayParameter<TYPE_NAME, TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), PARAM_NAME, ##args)

Definition at line 380 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_ARRAY_PARAMETER_WITH_DEFAULT

#define DW_DESCRIBE_ARRAY_PARAMETER_WITH_DEFAULT (   TYPE_NAME,
  args... 
)    dw::framework::describeArrayParameterWithDefault<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 501 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_ARRAY_PARAMETER_WITH_SEMANTIC

#define DW_DESCRIBE_ARRAY_PARAMETER_WITH_SEMANTIC (   TYPE_NAME,
  SEMANTIC_TYPE_NAME,
  PARAM_NAME,
  ARRAY_SIZE,
  args... 
)    dw::framework::describeArrayParameter<TYPE_NAME, SEMANTIC_TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), PARAM_NAME, ##args)

Definition at line 381 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_INDEX_PARAMETER

#define DW_DESCRIBE_INDEX_PARAMETER (   TYPE_NAME,
  args... 
)    dw::framework::describeIndexParameter<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 348 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_INDEX_PARAMETER_WITH_SEMANTIC

#define DW_DESCRIBE_INDEX_PARAMETER_WITH_SEMANTIC (   TYPE_NAME,
  SEMANTIC_TYPE_NAME,
  args... 
)    dw::framework::describeIndexParameter<TYPE_NAME, SEMANTIC_TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 349 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_PARAMETER

#define DW_DESCRIBE_PARAMETER (   TYPE_NAME,
  args... 
)    dw::framework::describeParameter<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 266 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_PARAMETER_WITH_DEFAULT

#define DW_DESCRIBE_PARAMETER_WITH_DEFAULT (   TYPE_NAME,
  args... 
)    dw::framework::describeParameterWithDefault<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 469 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_PARAMETER_WITH_SEMANTIC

#define DW_DESCRIBE_PARAMETER_WITH_SEMANTIC (   TYPE_NAME,
  SEMANTIC_TYPE_NAME,
  args... 
)    dw::framework::describeParameter<TYPE_NAME, SEMANTIC_TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 267 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_UNNAMED_ARRAY_PARAMETER

#define DW_DESCRIBE_UNNAMED_ARRAY_PARAMETER (   TYPE_NAME,
  ARRAY_SIZE,
  args... 
)    dw::framework::describeUnnamedArrayParameter<TYPE_NAME, TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 442 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_UNNAMED_ARRAY_PARAMETER_WITH_SEMANTIC

#define DW_DESCRIBE_UNNAMED_ARRAY_PARAMETER_WITH_SEMANTIC (   TYPE_NAME,
  SEMANTIC_TYPE_NAME,
  ARRAY_SIZE,
  args... 
)    dw::framework::describeUnnamedArrayParameter<TYPE_NAME, SEMANTIC_TYPE_NAME, ARRAY_SIZE>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 443 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_UNNAMED_PARAMETER

#define DW_DESCRIBE_UNNAMED_PARAMETER (   TYPE_NAME,
  args... 
)    dw::framework::describeUnnamedParameter<TYPE_NAME, TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 411 of file ParameterDescriptor.hpp.

◆ DW_DESCRIBE_UNNAMED_PARAMETER_WITH_SEMANTIC

#define DW_DESCRIBE_UNNAMED_PARAMETER_WITH_SEMANTIC (   TYPE_NAME,
  SEMANTIC_TYPE_NAME,
  args... 
)    dw::framework::describeUnnamedParameter<TYPE_NAME, SEMANTIC_TYPE_NAME>(DW_PARAMETER_TYPE_NAME_STRING_VIEW(#TYPE_NAME), ##args)

Definition at line 412 of file ParameterDescriptor.hpp.

◆ DW_PARAMETER_TYPE_NAME_STRING_VIEW

#define DW_PARAMETER_TYPE_NAME_STRING_VIEW (   TYPE_NAME_STR)    TYPE_NAME_STR##_sv

Definition at line 265 of file ParameterDescriptor.hpp.