log4cpp  1.1.6
LayoutsFactory.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2002, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
3  * Copyright 2002, Bastiaan Bakker. All rights reserved.
4  *
5  * See the COPYING file for the terms of usage and distribution.
6  */
7 
8 #if !defined(h_409ac787_0acf_47ff_ac15_3e9024d40315)
9 #define h_409ac787_0acf_47ff_ac15_3e9024d40315
10 
11 #include "FactoryParams.hh"
12 #include "Layout.hh"
13 #include "Portability.hh"
14 #include <map>
15 #include <memory>
16 #include <string>
17 
18 namespace log4cpp {
20  public:
22  typedef std::LOG4CPP_UNIQUE_PTR<Layout> (*create_function_t)(const params_t& params);
23 
24  static LayoutsFactory& getInstance();
25  void registerCreator(const std::string& class_name, create_function_t create_function);
26  std::LOG4CPP_UNIQUE_PTR<Layout> create(const std::string& class_name, const params_t& params);
27  bool registed(const std::string& class_name) const;
28 
29  private:
30  LayoutsFactory() {};
31 
32  typedef std::map<std::string, create_function_t> creators_t;
33  typedef creators_t::const_iterator const_iterator;
34 
35  creators_t creators_;
36  };
37 } // namespace log4cpp
38 
39 #endif // h_409ac787_0acf_47ff_ac15_3e9024d40315
#define LOG4CPP_EXPORT
Definition: Export.hh:26
Definition: FactoryParams.hh:52
The top level namespace for all &#39;Log for C++&#39; types and classes.
Definition: AbortAppender.hh:16
Definition: LayoutsFactory.hh:19
FactoryParams params_t
Definition: LayoutsFactory.hh:21