22 if (!layouts_factory_)
29 layouts_factory_ = lf.release();
39 throw std::invalid_argument(
"Layout creator for type name '" + class_name +
"' allready registered");
48 throw std::invalid_argument(
"There is no layout with type name '" + class_name +
"'");
50 return (*i->second)(params);
std::auto_ptr< Layout > create_pass_through_layout(const FactoryParams ¶ms)
std::auto_ptr< Layout > create_basic_layout(const FactoryParams ¶ms)
creators_t::const_iterator const_iterator
std::auto_ptr< Layout > create_simple_layout(const FactoryParams ¶ms)
bool registed(const std::string &class_name) const
void registerCreator(const std::string &class_name, create_function_t create_function)
static LayoutsFactory * layouts_factory_
std::auto_ptr< Layout > create(const std::string &class_name, const params_t ¶ms)
std::auto_ptr< Layout > create_pattern_layout(const FactoryParams ¶ms)
static LayoutsFactory & getInstance()
std::auto_ptr< Layout >(* create_function_t)(const params_t ¶ms)