| Server IP : 216.92.14.13 / Your IP : 216.73.216.171 Web Server : Apache System : Linux vps4089.pairvps.com 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 User : rmlac2fmr ( 1040637) PHP Version : 8.2.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/include/log4cpp/ |
Upload File : |
/*
* HierarchyMaintainer.hh
*
* Copyright 2000, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
* Copyright 2000, Bastiaan Bakker. All rights reserved.
*
* See the COPYING file for the terms of usage and distribution.
*/
#ifndef _LOG4CPP_HIERARCHYMAINTAINER_HH
#define _LOG4CPP_HIERARCHYMAINTAINER_HH
#include <log4cpp/Portability.hh>
#include <string>
#include <map>
#include <vector>
#include <log4cpp/Category.hh>
#include <log4cpp/threading/Threading.hh>
namespace log4cpp {
/**
* HierarchyMaintainer is an internal log4cpp class. It is responsible
* for maintaining the hierarchy of Categories. Applications should
* not have to use this class directly.
**/
class HierarchyMaintainer {
friend class Log4cppCleanup;
public:
typedef std::map<std::string, Category*> CategoryMap;
typedef void (*shutdown_fun_ptr)();
static HierarchyMaintainer& getDefaultMaintainer();
HierarchyMaintainer();
virtual ~HierarchyMaintainer();
virtual Category* getExistingInstance(const std::string& name);
virtual Category& getInstance(const std::string& name);
virtual std::vector<Category*>* getCurrentCategories() const;
virtual void shutdown();
void register_shutdown_handler(shutdown_fun_ptr handler);
virtual void deleteAllCategories();
protected:
virtual Category* _getExistingInstance(const std::string& name);
virtual Category& _getInstance(const std::string& name);
CategoryMap _categoryMap;
mutable threading::Mutex _categoryMutex;
private:
typedef std::vector<shutdown_fun_ptr> handlers_t;
static HierarchyMaintainer* _defaultMaintainer;
handlers_t handlers_;
};
}
#endif // _LOG4CPP_HIERARCHYMAINTAINER_HH