 |
Shiokaze Framework
A research-oriented fluid solver for computer graphics
|
|
Go to the documentation of this file.
26 #ifndef SHKZ_RECURSIVE_CONFIGURABLE_MODULE_H
27 #define SHKZ_RECURSIVE_CONFIGURABLE_MODULE_H
39 #define DEFINE_MODULE(CLASS_T,LNG_NAME,ARG_NAME,DESCRIPTION) \
40 DEFINE_QUICK_ALLOC_MODULE(CLASS_T,ARG_NAME,DESCRIPTION) \
42 static std::unique_ptr<CLASS_T> quick_load_module( configuration &config, std::string name ) { \
43 auto result = unique_alloc_module<CLASS_T>(config,ARG_NAME,name,DESCRIPTION); \
44 result->recursive_load(config); \
107 void set_name( std::string long_name, std::string argname=
"" ) {
108 m_long_name = long_name;
109 if( argname.size()) m_argname = argname;
129 m_environment[name] = value;
138 m_object = T::quick_alloc_module(config,m_name);
139 if( m_long_name.size()) m_object->set_name(m_long_name);
140 if( m_argname.size()) m_object->set_argument_name(m_argname);
141 m_object->recursive_load(config);
150 m_object->recursive_configure(config);
160 merged_environment.insert(environment.begin(),environment.end());
161 m_object->recursive_initialize(merged_environment);
183 T*
get() {
return m_object.get(); }
190 const T*
get()
const {
return m_object.get(); }
194 std::string m_name, m_long_name, m_argname;
195 std::unique_ptr<T> m_object;
virtual void load(configuration &config) override
Do loading.
Definition: recursive_configurable_module.h:137
void set_environment(std::string name, const void *value)
Set the pointer to an environmental value associated with an input name.
Definition: recursive_configurable_module.h:128
recursive_configurable_driver(recursive_configurable *parent, std::string name)
Constructor for recursive_configurable_driver.
Definition: recursive_configurable_module.h:95
T * get()
Get the raw pointer.
Definition: recursive_configurable_module.h:183
Class that encapsulates recursive_configurable class.
Definition: recursive_configurable_module.h:76
Class for managing the workflow of load - configure - initialize.
Definition: configurable.h:40
virtual void configure(configuration &config) override
Do configure.
Definition: recursive_configurable_module.h:149
T * operator->()
Get the raw pointer.
Definition: recursive_configurable_module.h:169
virtual void recursive_load(configuration &config)
Load the program itself and relay the same to its children. Used to load files and libraries into mem...
Definition: configurable.h:139
#define SHKZ_BEGIN_NAMESPACE
Name space beggining definition for shiokaze.
Definition: common.h:39
virtual void initialize(const configurable::environment_map &environment) override
Initialize with an environmental map.
Definition: recursive_configurable_module.h:158
const T * get() const
Get the raw pointer.
Definition: recursive_configurable_module.h:190
void set_name(std::string long_name, std::string argname="")
Set name.
Definition: recursive_configurable_module.h:107
virtual void recursive_configure(configuration &config) override
Recursively call configure.
Definition: recursive_configurable_module.h:67
Module class.
Definition: module.h:49
Extended configurable class that holds multiple children of configurable.
Definition: configurable.h:126
Class that automates the push and pop groups.
Definition: configuration.h:107
virtual void recursive_configure(configuration &config)
Configure the program itself and relay the same to its children. Used to load and set parameters.
Definition: configurable.h:152
std::map< std::string, const void * > environment_map
Type for environment_map.
Definition: configurable.h:46
virtual void recursive_load(configuration &config) override
Start recursively load configurables.
Definition: recursive_configurable_module.h:57
Class that controls the settings of the program.
Definition: configuration.h:39
Message class.
Definition: messageable.h:36
#define SHKZ_END_NAMESPACE
Name space end definition for shiokaze.
Definition: common.h:44
void set_argument_name(std::string argname)
Set argument name.
Definition: recursive_configurable_module.h:117
recursive_configurable_driver(std::string name, std::string argname="")
Constructor for recursive_configurable_driver.
Definition: recursive_configurable_module.h:86
virtual void add_child(configurable *child)
Add a child instance.
Definition: configurable.h:191
recursive_configurable class that also inherits module.
Definition: recursive_configurable_module.h:49
const T * operator->() const
Get the const raw pointer.
Definition: recursive_configurable_module.h:176