registry Class Reference

registry Class Reference#

Reference API: gko::config::registry Class Reference
Reference API
gko::config::registry Class Referencefinal

#include <ginkgo/core/config/registry.hpp>

Public Member Functions

 registry (const configuration_map &additional_map={})
 
 registry (const std::unordered_map< std::string, detail::allowed_ptr > &stored_map, const configuration_map &additional_map={})
 
template<typename T >
bool emplace (std::string key, std::shared_ptr< T > data)
 

Protected Member Functions

template<typename T >
std::shared_ptr< T > get_data (std::string key) const
 
const configuration_map & get_build_map () const
 

Detailed Description

This class stores additional context for creating Ginkgo objects from configuration files.

The context can contain user-provided objects that derive from the following base types:

Additionally, users can provide mappings from a configuration (provided as a pnode) to user-defined types that are derived from LinOpFactory

Constructor & Destructor Documentation

◆ registry() [1/2]

gko::config::registry::registry ( const configuration_map &  additional_map = {})

registry constructor

Parameters
additional_mapthe additional map to dispatch the class base. Users can extend the map to fit their own LinOpFactory. We suggest using "usr::" as the prefix in the key to simply avoid conflict with ginkgo's map.

◆ registry() [2/2]

gko::config::registry::registry ( const std::unordered_map< std::string, detail::allowed_ptr > &  stored_map,
const configuration_map &  additional_map = {} 
)

registry constructor

Parameters
stored_mapthe map stores the shared pointer of users' objects. It can hold any type whose base type is LinOp/LinOpFactory/CriterionFactory.
additional_mapthe additional map to dispatch the class base. Users can extend the map to fit their own LinOpFactory. We suggest using "usr::" as the prefix in the key to simply avoid conflict with ginkgo's map.

Member Function Documentation

◆ emplace()

template<typename T >
bool gko::config::registry::emplace ( std::string  key,
std::shared_ptr< T >  data 
)
inline

Store the data with the key.

Template Parameters
Tthe type
Parameters
keythe unique key string
datathe shared pointer of the object

◆ get_build_map()

const configuration_map & gko::config::registry::get_build_map ( ) const
inlineprotected

Get the stored build map

◆ get_data()

template<typename T >
std::shared_ptr< T > gko::config::registry::get_data ( std::string  key) const
inlineprotected

Search the key on the corresponding map.

Template Parameters
Tthe type
Parameters
keythe key string
Returns
the shared pointer of the object

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