Kanzi 3.9.10
kanzi::MethodArgument Class Reference

Holds argument type and value information. More...

#include <kanzi/core/metadata/metamethod.hpp>

Public Member Functions

template<typename TDataType >
bool get (AbstractPropertyType argumentType, TDataType &value) const
 Overloaded version of get() using AbstractPropertyType to retrieve the value.
 
template<typename TDataType >
optional< TDataTypeget (const PropertyType< TDataType > &argumentType) const
 Returns the value of the argument.
 
AbstractPropertyType getType () const
 Returns the type of the argument.
 
bool isValid () const
 Returns true if the argument stores a valid value, false otherwise.
 
 MethodArgument ()
 Constructor.
 
template<typename TDataType >
 MethodArgument (AbstractPropertyType argumentType, TDataType value)
 Creates an argument using an AbstractPropertyType.
 
 MethodArgument (const MethodArgument &other)
 Copy-constructor.
 
template<typename TDataType >
 MethodArgument (const PropertyType< TDataType > &argumentType, typename PropertyType< TDataType >::DataType value)
 Creates an argument with a property type.
 
MethodArgumentoperator= (const MethodArgument &other)
 Assignment operator.
 
 ~MethodArgument ()
 Destructor.
 

Detailed Description

Holds argument type and value information.

The MethodArgument holds the type and value of a metamethod argument or the return value of the method. You can specify the value of the argument upon instantiation and retrieve it with one of the get() template function members.

Constructor & Destructor Documentation

◆ MethodArgument() [1/4]

kanzi::MethodArgument::MethodArgument ( )
explicit

Constructor.

◆ ~MethodArgument()

kanzi::MethodArgument::~MethodArgument ( )

Destructor.

◆ MethodArgument() [2/4]

template<typename TDataType >
kanzi::MethodArgument::MethodArgument ( const PropertyType< TDataType > & argumentType,
typename PropertyType< TDataType >::DataType value )
inlineexplicit

Creates an argument with a property type.

Parameters
argumentTypeA property type defining the type of the argument.
valueThe value of the argument.

◆ MethodArgument() [3/4]

template<typename TDataType >
kanzi::MethodArgument::MethodArgument ( AbstractPropertyType argumentType,
TDataType value )
inlineexplicit

Creates an argument using an AbstractPropertyType.

The type of the value must match the type defined by the argumentType.

Parameters
argumentTypeAn abstract property type defining the type of the argument.
valueThe value of the argument.

◆ MethodArgument() [4/4]

kanzi::MethodArgument::MethodArgument ( const MethodArgument & other)
inline

Copy-constructor.

Member Function Documentation

◆ operator=()

MethodArgument & kanzi::MethodArgument::operator= ( const MethodArgument & other)
inline

Assignment operator.

◆ get() [1/2]

template<typename TDataType >
optional< TDataType > kanzi::MethodArgument::get ( const PropertyType< TDataType > & argumentType) const
inline

Returns the value of the argument.

The argumentType must match the type of the MethodArgument instance.

Parameters
argumentTypeType of the argument.
Returns
The value of the argument, or nullopt, if the argument is not valid or the argumentType and the stored type do not match.

◆ get() [2/2]

template<typename TDataType >
bool kanzi::MethodArgument::get ( AbstractPropertyType argumentType,
TDataType & value ) const
inline

Overloaded version of get() using AbstractPropertyType to retrieve the value.

Parameters
argumentTypeAbstractPropertyType defining the type of the argument.
valueThe address to store the argument value.
Returns
true if the argument can be retrieved, false if the argument is invalid, the argumentType differs from the type stored, or the type of the value differs from the type of the argument.

◆ getType()

AbstractPropertyType kanzi::MethodArgument::getType ( ) const
inline

Returns the type of the argument.

◆ isValid()

bool kanzi::MethodArgument::isValid ( ) const
inline

Returns true if the argument stores a valid value, false otherwise.


The documentation for this class was generated from the following file: