log4cpp 1.1.6
Loading...
Searching...
No Matches
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
18namespace log4cpp {
19 class LOG4CPP_EXPORT LayoutsFactory {
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
FactoryParams params_t
Definition LayoutsFactory.hh:21
std::auto_ptr< Layout > create(const std::string &class_name, const params_t &params)
Definition LayoutsFactory.cpp:40
static LayoutsFactory & getInstance()
Definition LayoutsFactory.cpp:19
void registerCreator(const std::string &class_name, create_function_t create_function)
Definition LayoutsFactory.cpp:32
bool registed(const std::string &class_name) const
Definition LayoutsFactory.cpp:48
std::auto_ptr< Layout >(* create_function_t)(const params_t &params)
Definition LayoutsFactory.hh:22
The top level namespace for all 'Log for C++' types and classes.
Definition AbortAppender.hh:16