/* * Copyright 2002, LifeLine Networks BV (www.lifeline.nl). All rights reserved. * Copyright 2002, Bastiaan Bakker. All rights reserved. * * See the COPYING file for the terms of usage and distribution. */ #if !defined(h_409ac787_0acf_47ff_ac15_3e9024d40315) #define h_409ac787_0acf_47ff_ac15_3e9024d40315 #include #include #include #include "Portability.hh" #include "Layout.hh" #include "FactoryParams.hh" namespace log4cpp { class LOG4CPP_EXPORT LayoutsFactory { public: typedef FactoryParams params_t; typedef std::auto_ptr (*create_function_t)(const params_t& params); static LayoutsFactory& getInstance(); void registerCreator(const std::string& class_name, create_function_t create_function); std::auto_ptr create(const std::string& class_name, const params_t& params); bool registed(const std::string& class_name) const; private: LayoutsFactory(){}; typedef std::map creators_t; typedef creators_t::const_iterator const_iterator; creators_t creators_; }; } #endif // h_409ac787_0acf_47ff_ac15_3e9024d40315