Libosmium  2.20.0
Fast and flexible C++ library for working with OpenStreetMap data
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
osmium::index::MapFactory< TId, TValue > Class Template Reference

#include <map.hpp>

Public Types

using id_type = TId
 
using value_type = TValue
 
using map_type = osmium::index::map::Map< id_type, value_type >
 
using create_map_func = std::function< map_type *(const std::vector< std::string > &)>
 

Public Member Functions

 MapFactory (const MapFactory &)=delete
 
MapFactoryoperator= (const MapFactory &)=delete
 
 MapFactory (MapFactory &&)=delete
 
MapFactoryoperator= (MapFactory &&)=delete
 
 ~MapFactory () noexcept=default
 
bool register_map (const std::string &map_type_name, create_map_func func)
 
bool has_map_type (const std::string &map_type_name) const
 
std::vector< std::string > map_types () const
 
std::unique_ptr< map_typecreate_map (const std::string &config_string) const
 

Static Public Member Functions

static MapFactory< id_type, value_type > & instance ()
 

Private Member Functions

 MapFactory ()=default
 

Private Attributes

std::map< const std::string, create_map_funcm_callbacks
 

Member Typedef Documentation

◆ create_map_func

template<typename TId , typename TValue >
using osmium::index::MapFactory< TId, TValue >::create_map_func = std::function<map_type*(const std::vector<std::string>&)>

◆ id_type

template<typename TId , typename TValue >
using osmium::index::MapFactory< TId, TValue >::id_type = TId

◆ map_type

template<typename TId , typename TValue >
using osmium::index::MapFactory< TId, TValue >::map_type = osmium::index::map::Map<id_type, value_type>

◆ value_type

template<typename TId , typename TValue >
using osmium::index::MapFactory< TId, TValue >::value_type = TValue

Constructor & Destructor Documentation

◆ MapFactory() [1/3]

template<typename TId , typename TValue >
osmium::index::MapFactory< TId, TValue >::MapFactory ( )
privatedefault

◆ MapFactory() [2/3]

template<typename TId , typename TValue >
osmium::index::MapFactory< TId, TValue >::MapFactory ( const MapFactory< TId, TValue > &  )
delete

◆ MapFactory() [3/3]

template<typename TId , typename TValue >
osmium::index::MapFactory< TId, TValue >::MapFactory ( MapFactory< TId, TValue > &&  )
delete

◆ ~MapFactory()

template<typename TId , typename TValue >
osmium::index::MapFactory< TId, TValue >::~MapFactory ( )
defaultnoexcept

Member Function Documentation

◆ create_map()

template<typename TId , typename TValue >
std::unique_ptr< map_type > osmium::index::MapFactory< TId, TValue >::create_map ( const std::string &  config_string) const
inline

◆ has_map_type()

template<typename TId , typename TValue >
bool osmium::index::MapFactory< TId, TValue >::has_map_type ( const std::string &  map_type_name) const
inline

◆ instance()

template<typename TId , typename TValue >
static MapFactory< id_type, value_type > & osmium::index::MapFactory< TId, TValue >::instance ( )
inlinestatic

◆ map_types()

template<typename TId , typename TValue >
std::vector< std::string > osmium::index::MapFactory< TId, TValue >::map_types ( ) const
inline

◆ operator=() [1/2]

template<typename TId , typename TValue >
MapFactory & osmium::index::MapFactory< TId, TValue >::operator= ( const MapFactory< TId, TValue > &  )
delete

◆ operator=() [2/2]

template<typename TId , typename TValue >
MapFactory & osmium::index::MapFactory< TId, TValue >::operator= ( MapFactory< TId, TValue > &&  )
delete

◆ register_map()

template<typename TId , typename TValue >
bool osmium::index::MapFactory< TId, TValue >::register_map ( const std::string &  map_type_name,
create_map_func  func 
)
inline

Member Data Documentation

◆ m_callbacks

template<typename TId , typename TValue >
std::map<const std::string, create_map_func> osmium::index::MapFactory< TId, TValue >::m_callbacks
private

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