11#ifndef LIMA_COMMON_ABSTRACTFACTORYPATTERN_INITIALIZABLEOBJECTMANAGER_H
12#define LIMA_COMMON_ABSTRACTFACTORYPATTERN_INITIALIZABLEOBJECTMANAGER_H
30template <
typename Object,
typename InitializationParameters = NoParameters>
41 const InitializationParameters& params);
80 virtual std::shared_ptr<Object>
createObject(
const std::string&
id)
override;
85 InitializationParameters m_params;
89template <
typename Object,
typename InitializationParameters>
92 const InitializationParameters& params) :
100template <
typename Object,
typename InitializationParameters>
106template <
typename Object,
typename InitializationParameters>
112template <
typename Object,
typename InitializationParameters>
118template <
typename Object,
typename InitializationParameters>
124template <
typename Object,
typename InitializationParameters>
131template <
typename Object,
typename InitializationParameters>
133 const std::string&
id)
136 LDEBUG <<
"InitializableObjectManager::createObject" <<
this <<
id
137 <<
"from module" << &m_conf << m_conf.getName().c_str();
138 std::shared_ptr<Object> obj;
151 std::cerr <<
"no class attribute in unitConfiguration "<<
id << std::endl;
156 std::cerr <<
"Empty class attribute in unitConfiguration " <<
id <<
"/class" << std::endl;
163 std::string::size_type begin=0;
164 std::string::size_type i=libs.find(
",",begin);
165 while (i!=std::string::npos) {
166 std::string libName(libs,begin,i-begin);
170 std::cerr <<
"loadLibrary(\"" << libName <<
"\") method failed." << std::endl;
174 i=libs.find(
",",begin);
176 std::string libName(libs,begin);
180 std::cerr <<
"loadLibrary(\"" << libName <<
"\") method failed." << std::endl;
192 obj=fact->create(gconf,
this);
196 std::stringstream s_mess;
197 s_mess <<
"No Object '" <<
id.c_str() <<
"' defined in module '" << m_conf.getName().c_str() <<
"'";
198 std::cerr <<
"InvalidConfiguration: " << s_mess.str().c_str() << std::endl;
handle dynamic library opening (wrapper around QLibrary)
#define ABSTRACTFACTORYPATTERNLOGINIT
std::string & getAttribute(const std::string &key)
return a message when an 'attribute' was not found
return a message when a 'group' was not found
Manage initialization of InitializableObjects using configuration module and parameters.
const Common::XMLConfigurationFiles::ModuleConfigurationStructure & getModuleConfigurationStructure() const
get ModuleConfigurationStructure
virtual ~InitializableObjectManager()
virtual destructor
const InitializationParameters & getInitializationParameters() const
get Initialization Parameters
virtual std::shared_ptr< Object > createObject(const std::string &id) override
create Object.
InitializableObjectManager(const Common::XMLConfigurationFiles::ModuleConfigurationStructure &conf, const InitializationParameters ¶ms)
constructor with configuration module
Use this exception to signal an error in one of the configuration files.
static std::shared_ptr< InitializableObjectFactory< Object > > getFactory(const std::string &id)
get the factory corresponding to the given id
static DynamicLibrariesManager & changeable()
singleton accessor
originally detectModuleConfigurationStructure.h in detectlibraries
launch exception related to the configuration file parsing