13int main(
int argc,
char *argv[]) {
18 auto log = std::make_shared<GLogger>(gopts, SFUNCTION_NAME,
PLUGIN_LOGGER);
27 map<string, Shape *> fffv;
33 Shape *aShape = fffv[
"triangle"];
37 fffv[
"triangle"]->Area();
40 log->info(0,
" Shape pointers from map: ", fffv[
"triangle"],
", from direct pointer:", aShape);
48 map<string, std::shared_ptr<Car>> ggg;
51 auto aCar = ggg[
"ford"];
58 log->info(0,
" Car pointers from map: ", ggg[
"ford"],
", from direct pointer:", aCar);
59 log->info(0,
" run generalCarVar method from factory map: ", ggg[
"tesla"]->generalCarVar);
Owns factories and dynamically‑loaded libraries, providing run‑time creation.
std::shared_ptr< T > LoadAndRegisterObjectFromLibrary(std::string_view name, const std::shared_ptr< GOptions > &gopts)
Load a shared library, look up its instantiate symbol, and return object.
Base * CreateObject(std::string_view name) const
Create an instance of the previously registered factory.
void RegisterObjectFactory(std::string_view name)
Register a concrete factory under name.
Generic factory/manager for GEMC plugin objects.
constexpr const char * PLUGIN_LOGGER
int main(int argc, char *argv[])