AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::inlet::Proxy Class Reference

Provides a uniform interface for access and conversion to primitive and user-defined types. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/latest/src/axom/inlet/Proxy.hpp>

Public Member Functions

 Proxy ()=default
 
 Proxy (const Container &container)
 Constructs a proxy view onto a container. More...
 
 Proxy (const Field &field)
 Constructs a proxy view onto a field. More...
 
 Proxy (const Function &func)
 Constructs a proxy view onto a function. More...
 
template<typename T , typename SFINAE = typename std::enable_if< detail::is_inlet_primitive<T>::value || detail::is_inlet_primitive_array<T>::value || detail::is_inlet_primitive_dict<T>::value || detail::is_std_function<T>::value || detail::is_primitive_std_vector<T>::value>::type>
 operator T () const
 Returns an object from the proxy. More...
 
bool contains (const std::string &name) const
 Return whether a subobject with the given name is present in the container referred to by the calling proxy. More...
 
InletType type () const
 Returns the type of the stored value. More...
 
Proxy operator[] (const std::string &name) const
 Obtains a proxy view into the proxy for either a Field/Container subobject. More...
 
const axom::sidre::GroupsidreGroup () const
 Returns pointer to the Sidre Group for the underlying object. More...
 
std::string name () const
 
template<typename T >
std::enable_if<!detail::is_inlet_primitive< T >::value &&!detail::is_std_function< T >::value, T >::type get () const
 Returns a user-defined type from the proxy. More...
 
template<typename T >
std::enable_if< detail::is_std_function< T >::value, T >::type get () const
 Returns a function type from the proxy. More...
 
template<typename Ret , typename... Args>
Ret call (Args &&... args) const
 Calls the function. More...
 
template<typename T >
std::enable_if< detail::is_inlet_primitive< T >::value, T >::type get () const
 Returns a primitive type from the proxy. More...
 

Detailed Description

Provides a uniform interface for access and conversion to primitive and user-defined types.

See also
Inlet Field
Inlet Container

Constructor & Destructor Documentation

◆ Proxy() [1/4]

axom::inlet::Proxy::Proxy ( )
default

◆ Proxy() [2/4]

axom::inlet::Proxy::Proxy ( const Container container)
inline

Constructs a proxy view onto a container.

Parameters
[in]containerThe container to construct a proxy into

◆ Proxy() [3/4]

axom::inlet::Proxy::Proxy ( const Field field)
inline

Constructs a proxy view onto a field.

Parameters
[in]fieldThe field to construct a proxy into

◆ Proxy() [4/4]

axom::inlet::Proxy::Proxy ( const Function func)
inline

Constructs a proxy view onto a function.

Parameters
[in]funcThe function to construct a proxy into

Member Function Documentation

◆ operator T()

template<typename T , typename SFINAE = typename std::enable_if< detail::is_inlet_primitive<T>::value || detail::is_inlet_primitive_array<T>::value || detail::is_inlet_primitive_dict<T>::value || detail::is_std_function<T>::value || detail::is_primitive_std_vector<T>::value>::type>
axom::inlet::Proxy::operator T ( ) const
inline

Returns an object from the proxy.

Template Parameters
TThe type of the object to retrieve
Returns
The retrieved object
Note
Implicit conversions are defined only for primitive types - to convert to a user-defined type, use an explicit conversion with static_cast or T{}

◆ contains()

bool axom::inlet::Proxy::contains ( const std::string &  name) const

Return whether a subobject with the given name is present in the container referred to by the calling proxy.

Returns
Boolean value indicating whether this Container's subtree contains a Field or Container with the given name.

◆ type()

InletType axom::inlet::Proxy::type ( ) const

Returns the type of the stored value.

Returns
The type
See also
InletType

◆ operator[]()

Proxy axom::inlet::Proxy::operator[] ( const std::string &  name) const

Obtains a proxy view into the proxy for either a Field/Container subobject.

Returns a reference via a lightweight proxy object to the element in the datastore at the index specified by the name. This can be a field or a container.

Parameters
[in]nameThe name of the subobject
Returns
A view onto the subobject

◆ sidreGroup()

const axom::sidre::Group* axom::inlet::Proxy::sidreGroup ( ) const

Returns pointer to the Sidre Group for the underlying object.

Provides access to the Sidre Group class that holds all the stored information for the underlying object.

◆ name()

std::string axom::inlet::Proxy::name ( ) const
Returns
The full name for the underlying object.

◆ get() [1/3]

template<typename T >
std::enable_if<!detail::is_inlet_primitive<T>::value && !detail::is_std_function<T>::value, T>::type axom::inlet::Proxy::get ( ) const
inline

Returns a user-defined type from the proxy.

Template Parameters
TThe type of the object to retrieve
Returns
The retrieved object
Precondition
The Proxy must refer to a container object

References axom::inlet::Container::get(), and SLIC_ASSERT_MSG.

◆ get() [2/3]

template<typename T >
std::enable_if<detail::is_std_function<T>::value, T>::type axom::inlet::Proxy::get ( ) const
inline

Returns a function type from the proxy.

Template Parameters
TThe type of the object to retrieve
Returns
The retrieved object
Precondition
The Proxy must refer to a function object

References axom::inlet::Function::get(), and SLIC_ASSERT_MSG.

◆ call()

template<typename Ret , typename... Args>
Ret axom::inlet::Proxy::call ( Args &&...  args) const
inline

Calls the function.

Parameters
[in]argsThe parameter pack for the function's arguments
Template Parameters
RetThe user-specified return type, needed to fully disambiguate the function to call
ArgsThe types of the user-specified arguments, deduced automatically
Returns
The function's result

References axom::inlet::Function::call(), and SLIC_ASSERT_MSG.

◆ get() [3/3]

template<typename T >
std::enable_if<detail::is_inlet_primitive<T>::value, T>::type axom::inlet::Proxy::get ( ) const
inline

Returns a primitive type from the proxy.

Template Parameters
TThe type of the object to retrieve
Returns
The retrieved object
Precondition
The Proxy must refer to a field object

References axom::inlet::Field::get(), and SLIC_ASSERT_MSG.


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