|
Standard Masala Plugins
|
The Standard Masala Plugins library version 1.0 contains discrete cost function network (CFN) and continuous real-valued local (RVL) optimizers. It also contains a framework for defining scoring functions, file interpreters, and selectors.
This library is divided into hand-written sub-libraries and auto-generated API sub-libraries. All sub-libraries are in appropriately named sub-directories of the src/ directory; all namespaces start with standard_masala_plugins, and then follow the directory structure. The namespaces of the hand-written sub-libraries are:
The corresponding auto-generated libraries are in the following namespaces:
If you choose the link this library at compilation time, it is only safe to directly call functions or instantiate classes in the auto-generated API namespaces. These have stable APIs that will be preserved in future versions of the Standard Masala Plugins library, or deprecated in a manner that provides ample warning. Handwritten libraries are not part of the API, and can change without warning.
As an alternative, you may choose only to link the Masala Core library. In that case, you can use the masala::base::managers::plugin_module::MasalaPluginLibraryManager to load the Standard Masala Plugins at runtime, which will trigger registration of all plugin modules in this library that have API definitions with the masala::base::managers::plugin_module::MasalaPluginModuleManager, which your code may interrogate to obtain Masala plugins. The interface for plugin modules may be accessed through the masala::base::api::MasalaObjectAPIDefinition for each plugin module.