deferred_factory_parameter< FactoryType > Class Template Reference

deferred_factory_parameter&lt; FactoryType &gt; Class Template Reference#

Reference API: gko::deferred_factory_parameter< FactoryType > Class Template Reference
Reference API
gko::deferred_factory_parameter< FactoryType > Class Template Reference

#include <ginkgo/core/base/abstract_factory.hpp>

Inheritance diagram for gko::deferred_factory_parameter< FactoryType >:
[legend]

Public Member Functions

 deferred_factory_parameter ()=default
 
 deferred_factory_parameter (std::nullptr_t)
 
template<typename ConcreteFactoryType , std::enable_if_t< detail::is_pointer_convertible< ConcreteFactoryType, FactoryType >::value > * = nullptr>
 deferred_factory_parameter (std::shared_ptr< ConcreteFactoryType > factory)
 
template<typename ConcreteFactoryType , typename Deleter , std::enable_if_t< detail::is_pointer_convertible< ConcreteFactoryType, FactoryType >::value > * = nullptr>
 deferred_factory_parameter (std::unique_ptr< ConcreteFactoryType, Deleter > factory)
 
template<typename ParametersType , typename U = decltype(std::declval<ParametersType>().on( std::shared_ptr<const Executor>{})), std::enable_if_t< detail::is_pointer_convertible< typename U::element_type, FactoryType >::value > * = nullptr>
 deferred_factory_parameter (ParametersType parameters)
 
std::shared_ptr< FactoryType > on (std::shared_ptr< const Executor > exec) const
 
bool is_empty () const
 

Detailed Description

template<typename FactoryType>
class gko::deferred_factory_parameter< FactoryType >

Represents a factory parameter of factory type that can either initialized by a pre-existing factory or by passing in a factory_parameters object whose .on(exec) will be called to instantiate a factory.

Template Parameters
FactoryTypethe type of factory that can be instantiated from this object.

Constructor & Destructor Documentation

◆ deferred_factory_parameter() [1/5]

template<typename FactoryType >
gko::deferred_factory_parameter< FactoryType >::deferred_factory_parameter ( )
default

Creates an empty deferred factory parameter.

◆ deferred_factory_parameter() [2/5]

template<typename FactoryType >
gko::deferred_factory_parameter< FactoryType >::deferred_factory_parameter ( std::nullptr_t  )
inline

Creates a deferred factory parameter returning a nullptr.

◆ deferred_factory_parameter() [3/5]

template<typename FactoryType >
template<typename ConcreteFactoryType , std::enable_if_t< detail::is_pointer_convertible< ConcreteFactoryType, FactoryType >::value > * = nullptr>
gko::deferred_factory_parameter< FactoryType >::deferred_factory_parameter ( std::shared_ptr< ConcreteFactoryType >  factory)
inline

Creates a deferred factory parameter from a preexisting factory with shared ownership.

◆ deferred_factory_parameter() [4/5]

template<typename FactoryType >
template<typename ConcreteFactoryType , typename Deleter , std::enable_if_t< detail::is_pointer_convertible< ConcreteFactoryType, FactoryType >::value > * = nullptr>
gko::deferred_factory_parameter< FactoryType >::deferred_factory_parameter ( std::unique_ptr< ConcreteFactoryType, Deleter >  factory)
inline

Creates a deferred factory parameter by taking ownership of a preexisting factory with unique ownership.

◆ deferred_factory_parameter() [5/5]

template<typename FactoryType >
template<typename ParametersType , typename U = decltype(std::declval<ParametersType>().on( std::shared_ptr<const Executor>{})), std::enable_if_t< detail::is_pointer_convertible< typename U::element_type, FactoryType >::value > * = nullptr>
gko::deferred_factory_parameter< FactoryType >::deferred_factory_parameter ( ParametersType  parameters)
inline

Creates a deferred factory parameter object from a factory_parameters-like object. To instantiate the actual factory, the parameter's .on(exec) function will be called.

Member Function Documentation

◆ is_empty()

template<typename FactoryType >
bool gko::deferred_factory_parameter< FactoryType >::is_empty ( ) const
inline

Returns true iff the parameter is empty.

Referenced by gko::deferred_factory_parameter< FactoryType >::on().

◆ on()

template<typename FactoryType >
std::shared_ptr< FactoryType > gko::deferred_factory_parameter< FactoryType >::on ( std::shared_ptr< const Executor exec) const
inline

Instantiates the deferred parameter into an actual factory. This will throw if the deferred factory parameter is empty.

References gko::deferred_factory_parameter< FactoryType >::is_empty().


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