diff --git a/src/XrdCl/XrdClDefaultEnv.cc b/src/XrdCl/XrdClDefaultEnv.cc index 1731491a142..484fefcc411 100644 --- a/src/XrdCl/XrdClDefaultEnv.cc +++ b/src/XrdCl/XrdClDefaultEnv.cc @@ -828,31 +828,33 @@ namespace XrdCl log->SetTopicName( PlugInMgrMsg, "PlugInMgr" ); log->SetTopicName( ExDbgMsg, "ExDbgMsg" ); } -} -//------------------------------------------------------------------------------ -// Static initialization and finalization -//------------------------------------------------------------------------------ -int EnvInitializer::counter = 0; -//------------------------------------------------------------------------------ -// The constructor will be invoked in every translation unit -// that includes XrdClDefaultEnv.hh, but the DefaultEnv will -// be initialized only in the first one -//------------------------------------------------------------------------------ -EnvInitializer::EnvInitializer () -{ - if( counter++ == 0 ) XrdCl::DefaultEnv::Initialize(); -} + //------------------------------------------------------------------------------ + // Static initialization and finalization + //------------------------------------------------------------------------------ + int EnvInitializer::counter = 0; + + //------------------------------------------------------------------------------ + // The constructor will be invoked in every translation unit + // that includes XrdClDefaultEnv.hh, but the DefaultEnv will + // be initialized only in the first one + //------------------------------------------------------------------------------ + EnvInitializer::EnvInitializer () + { + if( counter++ == 0 ) XrdCl::DefaultEnv::Initialize(); + } + + //------------------------------------------------------------------------------ + // The destructor will be invoked in every translation unit + // that includes XrdClDefaultEnv.hh, but the DefaultEnv will + // be finalized only once in the last one + //------------------------------------------------------------------------------ + EnvInitializer::~EnvInitializer () + { + if( --counter == 0 ) XrdCl::DefaultEnv::Finalize(); + } -//------------------------------------------------------------------------------ -// The destructor will be invoked in every translation unit -// that includes XrdClDefaultEnv.hh, but the DefaultEnv will -// be finalized only once in the last one -//------------------------------------------------------------------------------ -EnvInitializer::~EnvInitializer () -{ - if( --counter == 0 ) XrdCl::DefaultEnv::Finalize(); } diff --git a/src/XrdCl/XrdClDefaultEnv.hh b/src/XrdCl/XrdClDefaultEnv.hh index 11f8765850a..5995c8401e5 100644 --- a/src/XrdCl/XrdClDefaultEnv.hh +++ b/src/XrdCl/XrdClDefaultEnv.hh @@ -43,12 +43,15 @@ namespace XrdCl //---------------------------------------------------------------------------- class DefaultEnv: public Env { - public: + friend struct EnvInitializer; + //------------------------------------------------------------------------ //! Constructor //------------------------------------------------------------------------ DefaultEnv(); + public: + //------------------------------------------------------------------------ //! Get default client environment //------------------------------------------------------------------------ @@ -140,6 +143,13 @@ namespace XrdCl //------------------------------------------------------------------------ static PlugInFactory *GetPlugInFactory( const std::string url ); + //------------------------------------------------------------------------ + //! Re-initialize the logging + //------------------------------------------------------------------------ + static void ReInitializeLogging(); + + private: + //------------------------------------------------------------------------ //! Initialize the environment //------------------------------------------------------------------------ @@ -150,12 +160,7 @@ namespace XrdCl //------------------------------------------------------------------------ static void Finalize(); - //------------------------------------------------------------------------ - //! Re-initialize the logging - //------------------------------------------------------------------------ - static void ReInitializeLogging(); - private: static void SetUpLog(); static XrdSysMutex sInitMutex; @@ -171,13 +176,15 @@ namespace XrdCl static TransportManager *sTransportManager; static PlugInManager *sPlugInManager; }; + + static struct EnvInitializer + { + EnvInitializer(); + ~EnvInitializer(); + static int counter; + } initializer; } -static struct EnvInitializer -{ - EnvInitializer(); - ~EnvInitializer(); - static int counter; -} initializer; + #endif // __XRD_CL_DEFAULT_ENV_HH__