📄 objectregistry.h
字号:
// Module: Log4CPLUS// File: objectregistry.h// Created: 3/2003// Author: Tad E. Smith////// Copyright (C) Tad E. Smith All rights reserved.//// This software is published under the terms of the Apache Software// License version 1.1, a copy of which has been included with this// distribution in the LICENSE.APL file.///** @file */#ifndef LOG4CPLUS_SPI_OBJECT_REGISTRY_HEADER_#define LOG4CPLUS_SPI_OBJECT_REGISTRY_HEADER_#include <log4cplus/config.h>#include <log4cplus/tstring.h>#include <log4cplus/helpers/threads.h>#include <map>#include <memory>#include <vector>namespace log4cplus { namespace spi { /** * This is the base class used to implement the functionality required * by the ObjectRegistry template class. */ class LOG4CPLUS_EXPORT ObjectRegistryBase { public: // public methods /** * Tests to see whether or not an object is bound in the * registry as <code>name</code>. */ bool exists(const log4cplus::tstring& name) const; /** * Returns the names of all registered objects. */ std::vector<log4cplus::tstring> getAllNames() const; protected: // Ctor and Dtor ObjectRegistryBase(); virtual ~ObjectRegistryBase(); // protected methods /** * Used to enter an object into the registry. (The registry now * owns <code>object</code>.) */ bool putVal(const log4cplus::tstring& name, void* object); /** * Used to retrieve an object from the registry. (The registry * owns the returned pointer.) */ void* getVal(const log4cplus::tstring& name) const; /** * Deletes <code>object</code>. */ virtual void deleteObject(void *object) const = 0; /** * Deletes all objects from this registry. */ virtual void clear(); // Types typedef std::map<log4cplus::tstring, void*> ObjectMap; // Data LOG4CPLUS_MUTEX_PTR_DECLARE mutex; ObjectMap data; }; }}#endif // LOG4CPLUS_SPI_OBJECT_REGISTRY_HEADER_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -