XRootD
Loading...
Searching...
No Matches
XrdCl::DefaultEnv Class Reference

#include <XrdClDefaultEnv.hh>

+ Inheritance diagram for XrdCl::DefaultEnv:
+ Collaboration diagram for XrdCl::DefaultEnv:

Static Public Member Functions

static CheckSumManagerGetCheckSumManager ()
 Get checksum manager.
 
static EnvGetEnv ()
 Get default client environment.
 
static FileTimerGetFileTimer ()
 Get file timer task.
 
static ForkHandlerGetForkHandler ()
 Get the fork handler.
 
static LogGetLog ()
 Get default log.
 
static MonitorGetMonitor ()
 Get the monitor object.
 
static PlugInFactoryGetPlugInFactory (const std::string url)
 
static PlugInManagerGetPlugInManager ()
 Get plug-in manager.
 
static PostMasterGetPostMaster ()
 Get default post master.
 
static TransportManagerGetTransportManager ()
 Get transport manager.
 
static std::string GetVersion ()
 Get client version.
 
static void ReInitializeLogging ()
 Re-initialize the logging.
 
static bool SetLogFile (const std::string &filepath)
 
static void SetLogLevel (const std::string &level)
 
static void SetLogMask (const std::string &level, const std::string &mask)
 Set log mask.
 

Friends

struct ::EnvInitializer
 

Additional Inherited Members

- Public Member Functions inherited from XrdCl::Env
virtual ~Env ()
 Destructor.
 
bool GetDefaultIntValue (const std::string &key, int &value)
 
bool GetDefaultStringValue (const std::string &key, std::string &value)
 
bool GetInt (const std::string &key, int &value)
 
bool GetString (const std::string &key, std::string &value)
 
bool ImportInt (const std::string &key, const std::string &shellKey)
 
bool ImportString (const std::string &key, const std::string &shellKey)
 
bool PutInt (const std::string &key, int value)
 
bool PutString (const std::string &key, const std::string &value)
 
void RecreateLock ()
 
void ReInitializeLock ()
 
void UnLock ()
 
void WriteLock ()
 

Detailed Description

Default environment for the client. Responsible for setting/importing defaults for the variables used by the client. And holding other global stuff.

Definition at line 46 of file XrdClDefaultEnv.hh.

Member Function Documentation

◆ GetCheckSumManager()

CheckSumManager * XrdCl::DefaultEnv::GetCheckSumManager ( )
static

Get checksum manager.

Definition at line 642 of file XrdClDefaultEnv.cc.

643 {
644 if( unlikely( !sCheckSumManager ) )
645 {
646 XrdSysMutexHelper scopedLock( sInitMutex );
647 if( !sCheckSumManager )
648 sCheckSumManager = new CheckSumManager();
649 }
650 return sCheckSumManager;
651 }
#define unlikely(x)

References unlikely.

Referenced by XrdCl::Utils::GetLocalCheckSum(), and XrdCl::CheckSumHelper::Initialize().

+ Here is the caller graph for this function:

◆ GetEnv()

◆ GetFileTimer()

FileTimer * XrdCl::DefaultEnv::GetFileTimer ( )
static

Get file timer task.

Definition at line 559 of file XrdClDefaultEnv.cc.

560 {
561 return sFileTimer;
562 }

Referenced by XrdCl::FileStateHandler::FileStateHandler(), XrdCl::FileStateHandler::FileStateHandler(), and XrdCl::FileStateHandler::~FileStateHandler().

+ Here is the caller graph for this function:

◆ GetForkHandler()

ForkHandler * XrdCl::DefaultEnv::GetForkHandler ( )
static

Get the fork handler.

Definition at line 551 of file XrdClDefaultEnv.cc.

552 {
553 return sForkHandler;
554 }

Referenced by XrdCl::FileStateHandler::FileStateHandler(), XrdCl::FileStateHandler::FileStateHandler(), XrdCl::FileSystem::FileSystem(), XrdCl::FileStateHandler::~FileStateHandler(), XrdCl::FileSystem::~FileSystem(), child(), parent(), and prepare().

+ Here is the caller graph for this function:

◆ GetLog()

Log * XrdCl::DefaultEnv::GetLog ( )
static

Get default log.

Definition at line 493 of file XrdClDefaultEnv.cc.

494 {
495 return sLog;
496 }

Referenced by XrdCl::Channel::Channel(), XrdCl::ClassicCopyJob::ClassicCopyJob(), XrdCl::FileSystem::FileSystem(), xrdcl_proxy::ProxyFactory::ProxyFactory(), XrdCl::Stream::Stream(), XrdCl::ThirdPartyCopyJob::ThirdPartyCopyJob(), XrdCl::TPFallBackCopyJob::TPFallBackCopyJob(), XrdCl::XRootDMsgHandler::XRootDMsgHandler(), XrdCl::File::~File(), XrdCl::FileStateHandler::~FileStateHandler(), XrdCl::Stream::~Stream(), XrdCl::XRootDMsgHandler::~XRootDMsgHandler(), XrdCl::FSExecutor::AddCommand(), XrdCl::CopyProcess::AddJob(), XrdCl::PollerBuiltIn::AddSocket(), XrdCl::FileStateHandler::AfterForkChild(), XrdCl::ZipArchive::AppendFile(), XrdCl::FileSystemData::AssignLastURL(), XrdCl::FileSystemData::AssignLoadBalancer(), XrdCl::InQueue::AssignTimeout(), XrdCl::CheckSumManager::Calculate(), XrdCl::Stream::CanCollapse(), XrdCl::AsyncSocketHandler::CheckHSWait(), XrdCl::FileStateHandler::Checkpoint(), XrdCl::Utils::CheckTPC(), XrdCl::Utils::CheckTPCLite(), XrdCl::ForkHandler::Child(), child(), XrdCl::FileStateHandler::ChkptWrt(), XrdCl::FileStateHandler::ChkptWrtV(), XrdCl::AsyncSocketHandler::Close(), XrdCl::FileStateHandler::Close(), XrdCl::LocalFileHandler::Close(), XrdCl::ZipArchive::CloseArchive(), XrdCl::PostMaster::CollapseRedirect(), XrdCl::AsyncSocketHandler::Connect(), XrdCl::Socket::Connect(), XrdCl::Tls::Connect(), XrdCl::RecorderFactory::CreateFileSystem(), xrdcl_proxy::ProxyFactory::CreateFileSystem(), XrdCl::PollerFactory::CreatePoller(), XrdCl::FileStateHandler::DelXAttr(), XrdCl::Stream::DisableIfEmpty(), DoCache(), DoCat(), DoCD(), DoChMod(), DoLocate(), DoLS(), DoMkDir(), DoMv(), DoPrepare(), DoQuery(), DoRm(), DoRmDir(), DoSpaceInfo(), DoStat(), DoStatVFS(), DoTail(), XrdCl::AsyncSocketHandler::DoTlsHandShake(), DoTruncate(), DoXAttr(), XrdCl::Stream::EnableLink(), XrdCl::PollerBuiltIn::EnableReadNotification(), XrdCl::PollerBuiltIn::EnableWriteNotification(), XrdCl::XRootDMsgHandler::Examine(), XrdCl::ActionExecutor::Execute(), XrdCl::FSExecutor::Execute(), XrdCl::FileStateHandler::Fcntl(), XrdCl::Stream::ForceError(), XrdCl::URL::FromString(), XrdCl::XRootDTransport::GenerateDescription(), XrdCl::CheckSumManager::GetCalculator(), XrdCl::CheckSumHelper::GetCheckSum(), XrdCl::InQueue::GetHandlerForMessage(), XrdCl::XRootDTransport::GetHeader(), XrdCl::Utils::GetHostAddresses(), XrdCl::Env::GetInt(), XrdCl::Utils::GetLocalCheckSum(), GetMonitor(), XrdCl::XRootDTransport::GetMore(), XrdCl::Utils::GetRemoteCheckSum(), XrdCl::Env::GetString(), XrdCl::FileStateHandler::GetXAttr(), XrdCl::AsyncSocketHandler::HandleHandShake(), XrdCl::XRootDTransport::HandShake(), XrdCl::Env::ImportInt(), XrdCl::Env::ImportString(), IndexRemote(), XrdCl::CheckSumHelper::Initialize(), XrdCl::XCpCtx::Initialize(), XrdCl::InitTLS(), XrdCl::XRootDMsgHandler::InspectStatusRsp(), XrdCl::XRootDTransport::IsStreamBroken(), XrdCl::XRootDTransport::IsStreamTTLElapsed(), XrdCl::FileStateHandler::ListXAttr(), XrdCl::XRootDTransport::LogErrorResponse(), main(), XrdCl::XRootDTransport::MessageReceived(), XrdCl::XRootDTransport::MultiplexSubStream(), XrdCl::FileStateHandler::OnClose(), XrdCl::Stream::OnConnect(), XrdCl::Stream::OnConnectError(), XrdCl::AsyncSocketHandler::OnConnectionReturn(), XrdCl::Stream::OnError(), XrdCl::AsyncSocketHandler::OnFault(), XrdCl::AsyncSocketHandler::OnFaultWhileHandshaking(), XrdCl::Stream::OnIncoming(), XrdCl::FileStateHandler::OnOpen(), XrdCl::Stream::OnReadTimeout(), XrdCl::Stream::OnReadyToWrite(), XrdCl::FileStateHandler::OnStateError(), XrdCl::FileStateHandler::OnStateResponse(), XrdCl::XRootDMsgHandler::OnStatusReady(), XrdCl::XRootDMsgHandler::OnStreamEvent(), XrdCl::File::Open(), XrdCl::FileStateHandler::Open(), XrdCl::ZipArchive::OpenArchive(), XrdCl::ZipArchive::OpenFile(), XrdCl::ForkHandler::Parent(), parent(), XrdCl::FileStateHandler::PgRead(), XrdCl::FileStateHandler::PgReadImpl(), XrdCl::FileStateHandler::PgWrite(), XrdCl::FileStateHandler::PgWriteImpl(), XrdCl::CopyProcess::Prepare(), XrdCl::ForkHandler::Prepare(), prepare(), XrdCl::XRootDMsgHandler::Process(), XrdCl::Utils::ProcessConfigDir(), XrdCl::PlugInManager::ProcessEnvironmentSettings(), ProcessStatQuery(), XrdCl::Env::PutInt(), XrdCl::Env::PutString(), XrdCl::AsyncDiscardReader::Read(), XrdCl::AsyncHSReader::Read(), XrdCl::AsyncMsgReader::Read(), XrdCl::AsyncRawReader::Read(), XrdCl::AsyncVectorReader::Read(), XrdCl::FileStateHandler::Read(), XrdCl::LocalFileHandler::Read(), XrdCl::ZipArchive::ReadFromImpl, XrdCl::FileStateHandler::ReadV(), XrdCl::LocalFileHandler::ReadV(), XrdCl::MessageUtils::RedirectMessage(), XrdCl::PlugInManager::RegisterDefaultFactory(), XrdCl::PlugInManager::RegisterFactory(), XrdCl::TaskManager::RegisterTask(), XrdCl::InQueue::RemoveMessageHandler(), XrdCl::PollerBuiltIn::RemoveSocket(), XrdCl::ClassicCopyJob::Run(), XrdCl::ThirdPartyCopyJob::Run(), XrdCl::TPFallBackCopyJob::Run(), XrdCl::TaskManager::RunTasks(), XrdCl::FileSystemData::Send(), XrdCl::Socket::Send(), XrdCl::Stream::Send(), XrdCl::MessageUtils::SendMessage(), SetLogFile(), SetLogLevel(), SetLogMask(), XrdSsiLogger::SetMCB(), XrdCl::FileStateHandler::SetXAttr(), XrdCl::JobManager::Start(), XrdCl::PollerBuiltIn::Start(), XrdCl::TaskManager::Start(), XrdCl::FileStateHandler::Stat(), XrdCl::LocalFileHandler::Stat(), XrdCl::JobManager::Stop(), XrdCl::PollerBuiltIn::Stop(), XrdCl::TaskManager::Stop(), XrdCl::FileStateHandler::Sync(), XrdCl::LocalFileHandler::Sync(), XrdCl::FileStateHandler::TimeOutRequests(), XrdCl::FileStateHandler::Truncate(), XrdCl::LocalFileHandler::Truncate(), XrdCl::FileStateHandler::TryOtherServer(), XrdCl::TaskManager::UnregisterTask(), XrdCl::FileStateHandler::VectorRead(), XrdCl::LocalFileHandler::VectorRead(), XrdEc::Reader::VectorRead(), XrdCl::FileStateHandler::VectorWrite(), XrdCl::LocalFileHandler::VectorWrite(), XrdCl::FileStateHandler::Visa(), XrdCl::AsyncHSWriter::Write(), XrdCl::AsyncMsgWriter::Write(), XrdCl::FileStateHandler::Write(), XrdCl::FileStateHandler::Write(), XrdCl::LocalFileHandler::Write(), XrdCl::XRootDMsgHandler::WriteMessageBody(), XrdCl::FileStateHandler::WriteV(), and XrdCl::LocalFileHandler::WriteV().

◆ GetMonitor()

Monitor * XrdCl::DefaultEnv::GetMonitor ( )
static

Get the monitor object.

Definition at line 567 of file XrdClDefaultEnv.cc.

568 {
569 if( unlikely( !sMonitorInitialized ) )
570 {
571 XrdSysMutexHelper scopedLock( sInitMutex );
572 if( !sMonitorInitialized )
573 {
574 //----------------------------------------------------------------------
575 // Check the environment settings
576 //----------------------------------------------------------------------
577 Env *env = GetEnv();
578 Log *log = GetLog();
579 sMonitorInitialized = true;
580 std::string monitorLib = DefaultClientMonitor;
581 env->GetString( "ClientMonitor", monitorLib );
582 if( monitorLib.empty() )
583 {
584 log->Debug( UtilityMsg, "Monitor library name not set. No "
585 "monitoring" );
586 return 0;
587 }
588
589 std::string monitorParam = DefaultClientMonitorParam;
590 env->GetString( "ClientMonitorParam", monitorParam );
591
592 log->Debug( UtilityMsg, "Initializing monitoring, lib: %s, param: %s",
593 monitorLib.c_str(), monitorParam.c_str() );
594
595 //----------------------------------------------------------------------
596 // Loading the plugin
597 //----------------------------------------------------------------------
598 char *errBuffer = new char[4000];
599 sMonitorLibHandle = new XrdOucPinLoader(
600 errBuffer, 4000, &XrdVERSIONINFOVAR( XrdCl ),
601 "monitor", monitorLib.c_str() );
602
603 typedef XrdCl::Monitor *(*MonLoader)(const char *, const char *);
604 MonLoader loader;
605 loader = (MonLoader)sMonitorLibHandle->Resolve( "XrdClGetMonitor", -1 );
606 if( !loader )
607 {
608 log->Error( UtilityMsg, "Unable to initialize user monitoring: %s",
609 errBuffer );
610 delete [] errBuffer;
611 sMonitorLibHandle->Unload();
612 delete sMonitorLibHandle; sMonitorLibHandle = 0;
613 return 0;
614 }
615
616 //----------------------------------------------------------------------
617 // Instantiating the monitor object
618 //----------------------------------------------------------------------
619 const char *param = monitorParam.empty() ? 0 : monitorParam.c_str();
620 sMonitor = (*loader)( XrdSysUtils::ExecName(), param );
621
622 if( !sMonitor )
623 {
624 log->Error( UtilityMsg, "Unable to initialize user monitoring: %s",
625 errBuffer );
626 delete [] errBuffer;
627 sMonitorLibHandle->Unload();
628 delete sMonitorLibHandle; sMonitorLibHandle = 0;
629 return 0;
630 }
631 log->Debug( UtilityMsg, "Successfully initialized monitoring from: %s",
632 monitorLib.c_str() );
633 delete [] errBuffer;
634 }
635 }
636 return sMonitor;
637 }
static Log * GetLog()
Get default log.
static Env * GetEnv()
Get default client environment.
static const char * ExecName()
const char *const DefaultClientMonitorParam
const uint64_t UtilityMsg
const char *const DefaultClientMonitor
XrdSysError Log
Definition XrdConfig.cc:113

References XrdCl::Log::Debug(), XrdCl::DefaultClientMonitor, XrdCl::DefaultClientMonitorParam, XrdCl::Log::Error(), XrdSysUtils::ExecName(), GetEnv(), GetLog(), XrdCl::Env::GetString(), unlikely, and XrdCl::UtilityMsg.

Referenced by XrdCl::Stream::OnConnect(), XrdCl::FileStateHandler::OnOpen(), XrdCl::FileStateHandler::OnStateError(), XrdCl::ClassicCopyJob::Run(), and XrdCl::ThirdPartyCopyJob::Run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetPlugInFactory()

PlugInFactory * XrdCl::DefaultEnv::GetPlugInFactory ( const std::string url)
static

Retrieve the plug-in factory for the given URL

Returns
you do not own the returned memory

Definition at line 678 of file XrdClDefaultEnv.cc.

679 {
680 return sPlugInManager->GetFactory( url );
681 }

◆ GetPlugInManager()

PlugInManager * XrdCl::DefaultEnv::GetPlugInManager ( )
static

Get plug-in manager.

Definition at line 670 of file XrdClDefaultEnv.cc.

671 {
672 return sPlugInManager;
673 }

Referenced by XrdCl::FileSystem::FileSystem(), and XrdCl::File::Open().

+ Here is the caller graph for this function:

◆ GetPostMaster()

PostMaster * XrdCl::DefaultEnv::GetPostMaster ( )
static

Get default post master.

Definition at line 453 of file XrdClDefaultEnv.cc.

454 {
455 PostMaster* postMaster = AtomicGet(sPostMaster);
456
457 if( unlikely( !postMaster ) )
458 {
459 XrdSysMutexHelper scopedLock( sInitMutex );
460 postMaster = AtomicGet(sPostMaster);
461
462 if( postMaster )
463 return postMaster;
464
465 postMaster = new PostMaster();
466
467 if( !postMaster->Initialize() )
468 {
469 delete postMaster;
470 postMaster = 0;
471 return 0;
472 }
473
474 if( !postMaster->Start() )
475 {
476 postMaster->Finalize();
477 delete postMaster;
478 postMaster = 0;
479 return 0;
480 }
481
482 sForkHandler->RegisterPostMaster( postMaster );
483 postMaster->GetTaskManager()->RegisterTask( sFileTimer, time(0), false );
484 AtomicCAS(sPostMaster, sPostMaster, postMaster);
485 }
486
487 return postMaster;
488 }
#define AtomicCAS(x, y, z)
#define AtomicGet(x)

References AtomicCAS, AtomicGet, XrdCl::PostMaster::Finalize(), XrdCl::PostMaster::GetTaskManager(), XrdCl::PostMaster::Initialize(), XrdCl::TaskManager::RegisterTask(), XrdCl::PostMaster::Start(), and unlikely.

Referenced by XrdCl::XRootDMsgHandler::XRootDMsgHandler(), XrdCl::File::~File(), XrdCl::FileStateHandler::~FileStateHandler(), XrdCl::FileStateHandler::Close(), XrdPosixConfig::conTracker(), XrdCl::FileSystem::DirList(), XrdCl::Utils::GetProtocolVersion(), main(), XrdCl::Stream::OnConnect(), XrdCl::Stream::OnConnectError(), XrdCl::FileStateHandler::OnOpen(), XrdCl::Stream::OnReadTimeout(), XrdCl::FileStateHandler::PgRead(), XrdCl::LocalFileHandler::QueueTask(), XrdCl::MessageUtils::RedirectMessage(), XrdCl::Operation< HasHndl >::Run(), XrdEc::ScheduleHandler(), XrdEc::ScheduleHandler(), XrdCl::MessageUtils::SendMessage(), and XrdCl::FileStateHandler::TimeOutRequests().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTransportManager()

TransportManager * XrdCl::DefaultEnv::GetTransportManager ( )
static

Get transport manager.

Definition at line 656 of file XrdClDefaultEnv.cc.

657 {
658 if( unlikely( !sTransportManager ) )
659 {
660 XrdSysMutexHelper scopedLock( sInitMutex );
661 if( !sTransportManager )
662 sTransportManager = new TransportManager();
663 }
664 return sTransportManager;
665 }

References unlikely.

Referenced by XrdCl::PostMaster::CollapseRedirect(), and XrdCl::PluginUnloadHandler::UnloadHandler().

+ Here is the caller graph for this function:

◆ GetVersion()

static std::string XrdCl::DefaultEnv::GetVersion ( )
inlinestatic

Get client version.

Definition at line 60 of file XrdClDefaultEnv.hh.

61 {
62 return XrdVERSION;
63 }

◆ ReInitializeLogging()

void XrdCl::DefaultEnv::ReInitializeLogging ( )
static

Re-initialize the logging.

Definition at line 777 of file XrdClDefaultEnv.cc.

778 {
779 delete sLog;
780 sLog = new Log();
781 SetUpLog();
782 }

Referenced by child().

+ Here is the caller graph for this function:

◆ SetLogFile()

bool XrdCl::DefaultEnv::SetLogFile ( const std::string & filepath)
static

Set log file

Parameters
filepathpath to the log file

Definition at line 510 of file XrdClDefaultEnv.cc.

511 {
512 Log *log = GetLog();
513 LogOutFile *out = new LogOutFile();
514
515 if( out->Open( filepath ) )
516 {
517 log->SetOutput( out );
518 return true;
519 }
520
521 delete out;
522 return false;
523 }

References GetLog(), XrdCl::LogOutFile::Open(), and XrdCl::Log::SetOutput().

+ Here is the call graph for this function:

◆ SetLogLevel()

void XrdCl::DefaultEnv::SetLogLevel ( const std::string & level)
static

Set log level

Parameters
levelDump, Debug, Info, Warning or Error

Definition at line 501 of file XrdClDefaultEnv.cc.

502 {
503 Log *log = GetLog();
504 log->SetLevel( level );
505 }

References GetLog(), and XrdCl::Log::SetLevel().

+ Here is the call graph for this function:

◆ SetLogMask()

void XrdCl::DefaultEnv::SetLogMask ( const std::string & level,
const std::string & mask )
static

Set log mask.

Set log mask. Determines which diagnostics topics should be printed. It's a "|" separated list of topics. The first element may be "All" in which case all the topics are enabled and the subsequent elements may turn them off, or "None" in which case all the topics are disabled and the subsequent flags may turn them on. If the topic name is prefixed with "^", then it means that the topic should be disabled. If the topic name is not prefixed, then it means that the topic should be enabled.

The default for each level is "All", except for the "Dump" level, where the default is "All|^PollerMsg". This means that, at the "Dump" level, all the topics but "PollerMsg" are enabled.

Available topics: AppMsg, UtilityMsg, FileMsg, PollerMsg, PostMasterMsg, XRootDTransportMsg, TaskMgrMsg, XRootDMsg, FileSystemMsg, AsyncSockMsg

Parameters
levellog level or "All" for all levels
masklog mask

Definition at line 528 of file XrdClDefaultEnv.cc.

530 {
531 Log *log = GetLog();
532 MaskTranslator translator;
533 uint64_t topicMask = translator.translateMask( mask );
534
535 if( level == "All" )
536 {
537 log->SetMask( Log::ErrorMsg, topicMask );
538 log->SetMask( Log::WarningMsg, topicMask );
539 log->SetMask( Log::InfoMsg, topicMask );
540 log->SetMask( Log::DebugMsg, topicMask );
541 log->SetMask( Log::DumpMsg, topicMask );
542 return;
543 }
544
545 log->SetMask( level, topicMask );
546 }
@ InfoMsg
print info
Definition XrdClLog.hh:111
@ WarningMsg
report warnings
Definition XrdClLog.hh:110
@ DebugMsg
print debug info
Definition XrdClLog.hh:112
@ ErrorMsg
report errors
Definition XrdClLog.hh:109
@ DumpMsg
print details of the request and responses
Definition XrdClLog.hh:113

References XrdCl::Log::DebugMsg, XrdCl::Log::DumpMsg, XrdCl::Log::ErrorMsg, GetLog(), XrdCl::Log::InfoMsg, XrdCl::Log::SetMask(), and XrdCl::Log::WarningMsg.

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ ::EnvInitializer

friend struct ::EnvInitializer
friend

Definition at line 48 of file XrdClDefaultEnv.hh.


The documentation for this class was generated from the following files: