The Battle for Wesnoth  1.15.1+dev
Public Member Functions | Private Member Functions | Private Attributes | List of all members
name_generator_factory Class Reference

#include <name_generator_factory.hpp>

Public Member Functions

 name_generator_factory (const config &config, std::vector< std::string > ids)
 Creates a new name generator factory. More...
 
std::shared_ptr< name_generatorget_name_generator ()
 Gets the default name generator. More...
 
std::shared_ptr< name_generatorget_name_generator (const std::string name)
 Gets a specific name generator or the default name generator, if the specific name generator is not found. More...
 

Private Member Functions

void add_name_generator_from_config (const config &config, const std::string id, const std::string prefix)
 Determines a name generator from WML data. More...
 

Private Attributes

std::map< std::string, std::shared_ptr< name_generator > > name_generators_
 

Detailed Description

Definition at line 22 of file name_generator_factory.hpp.

Constructor & Destructor Documentation

◆ name_generator_factory()

name_generator_factory::name_generator_factory ( const config config,
std::vector< std::string >  ids 
)

Creates a new name generator factory.

Parameters
configthe WML data to be parsed for name generators
idsa list of generator ids, e.g. genders or terrain types

Definition at line 26 of file name_generator_factory.cpp.

References add_name_generator_from_config().

Member Function Documentation

◆ add_name_generator_from_config()

void name_generator_factory::add_name_generator_from_config ( const config config,
const std::string  id,
const std::string  prefix 
)
private

Determines a name generator from WML data.

Tries first to load a context-free generator, then falls back to Markov.

Parameters
configthe WML data to be parsed for name generators
prefixthe prefix to look for

Definition at line 35 of file name_generator_factory.cpp.

References config_attribute_value::blank(), config::has_attribute(), name_generators_, utils::split(), name_generator_invalid_exception::what(), and lg::wml_error().

Referenced by name_generator_factory().

◆ get_name_generator() [1/2]

std::shared_ptr< name_generator > name_generator_factory::get_name_generator ( )

Gets the default name generator.

Returns
the default name generator

Definition at line 58 of file name_generator_factory.cpp.

References name_generators_.

Referenced by get_name_generator(), and unit_race::unit_race().

◆ get_name_generator() [2/2]

std::shared_ptr< name_generator > name_generator_factory::get_name_generator ( const std::string  name)

Gets a specific name generator or the default name generator, if the specific name generator is not found.

Parameters
namegenerator id, e.g. a gender or a terrain type
Returns
a name generator

Definition at line 68 of file name_generator_factory.cpp.

References get_name_generator(), and name_generators_.

Member Data Documentation

◆ name_generators_

std::map<std::string, std::shared_ptr<name_generator> > name_generator_factory::name_generators_
private

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