 |
Shiokaze Framework
A research-oriented fluid solver for computer graphics
|
|
Go to the documentation of this file.
39 #define DEFINE_QUICK_ALLOC_MODULE(CLASS_T,ARG_NAME,DESCRIPTION) \
42 ARGUMENT_NAME(ARG_NAME) \
43 static std::unique_ptr<CLASS_T> quick_alloc_module( configuration &config, std::string name ) { \
44 return unique_alloc_module<CLASS_T>(config,ARG_NAME,name,DESCRIPTION); \
120 template <
class T>
static std::unique_ptr<T>
unique_alloc_module(
configuration &config, std::string arg_name, std::string default_module_name, std::string description ) {
121 auto ptr =
dynamic_cast<T*
>(
alloc_module(config,arg_name,default_module_name,description));
123 return std::unique_ptr<T>(ptr);
module()
Default constructor for module.
static unsigned count_open_modules()
Count all the open modules.
#define SHKZ_BEGIN_NAMESPACE
Name space beggining definition for shiokaze.
Definition: common.h:39
static module * alloc_module(configuration &config, std::string arg_name, std::string default_module_name, std::string description)
Automatically reads the parameter "arg_name" to fetch the name for the library, and allocate the libr...
virtual std::string get_module_name() const
Get the module name.
Definition: module.h:67
Module class.
Definition: module.h:49
virtual ~module()
Default destructor for module.
static std::unique_ptr< T > unique_alloc_module(configuration &config, std::string arg_name, std::string default_module_name, std::string description)
Allocate the module and cast to the a specified class T.
Definition: module.h:120
Class that defines the name, argument name, author's name, email address, date and the version of the...
Definition: credit.h:47
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
static unsigned close_all_handles()
Close all the handles that are still unloaded.
static std::string module_libpath(std::string module_name)
Get the path to the dynamic library. e.g., "mylib" -> "symlink-public/lib/libshiokaze_mylib....