00001 /*---------------------------------------------------------------------------- 00002 Name: I_LogFactory.h 00003 Project: xmlBlaster.org 00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00005 -----------------------------------------------------------------------------*/ 00006 00007 #ifndef _ORG_XMLBLASTER_UTIL_I_LOGFACTORY_H 00008 #define _ORG_XMLBLASTER_UTIL_I_LOGFACTORY_H 00009 00010 #include <util/xmlBlasterDef.h> 00011 #include <string> 00012 #include <map> 00013 #include <util/I_Log.h> 00014 00022 namespace org { namespace xmlBlaster { namespace util { 00023 00024 class Dll_Export I_LogFactory { 00025 00026 public: 00027 typedef std::map<std::string, std::string, std::less<std::string> > PropMap; 00028 00029 protected: 00030 PropMap propMap_; 00031 00032 public: 00033 //I_LogFactory() {} 00034 00035 virtual ~I_LogFactory() {} 00036 00042 virtual void initialize(const PropMap& propMap) { propMap_ = propMap; }; 00043 00049 virtual I_Log& getLog(const std::string& name="") = 0; 00050 00055 virtual void releaseLog(const std::string& name="") = 0; 00056 00057 }; // end of class I_LogFactory 00058 00059 00060 00061 }}} // end of namespace util 00062 00063 #endif // _ORG_XMLBLASTER_UTIL_I_LOGFACTORY_H