13 #include "XrdCl/XrdClDefaultEnv.hh" 14 #include "XrdNet/XrdNetUtils.hh" 30 static const unsigned int XRD_DEFAULT_TIMEOUT = 3 * 60;
33 : m_lastDebugLevel(1),
39 XrdCl::Env *
env = XrdCl::DefaultEnv::GetEnv();
41 env->PutString(
"NetworkStack",
"IPAuto");
43 XrdNetUtils::SetAuto(XrdNetUtils::prefAuto);
44 setTimeout(XRD_DEFAULT_TIMEOUT);
77 XrdCl::FileSystem fs(url);
78 std::vector<std::string> fileList;
79 fileList.push_back(url.GetPath());
80 auto status = fs.Prepare(fileList, XrdCl::PrepareFlags::Stage, 0, &m_null_handler);
83 <<
"' (errNo = " <<
status.errNo <<
")";
96 XrdCl::FileSystem fs(url);
98 XrdCl::StatInfo *
stat;
99 if (!(fs.Stat(url.GetPath(),
stat)).IsOK() || (stat ==
nullptr)) {
104 *
size = stat->GetSize();
109 auto oldLevel = m_lastDebugLevel.load();
110 if (level == oldLevel) {
113 std::lock_guard<std::mutex> guard(m_envMutex);
114 if (oldLevel != m_lastDebugLevel) {
123 XrdCl::DefaultEnv::SetLogLevel(
"Warning");
126 XrdCl::DefaultEnv::SetLogLevel(
"Info");
129 XrdCl::DefaultEnv::SetLogLevel(
"Debug");
132 XrdCl::DefaultEnv::SetLogLevel(
"Dump");
135 XrdCl::DefaultEnv::SetLogLevel(
"Dump");
139 ex <<
"Invalid log level specified " <<
level;
140 ex.
addContext(
"Calling XrdStorageMaker::setDebugLevel()");
143 m_lastDebugLevel =
level;
147 timeout = timeout ? timeout : XRD_DEFAULT_TIMEOUT;
149 auto oldTimeout = m_lastTimeout.load();
150 if (oldTimeout == timeout) {
154 std::lock_guard<std::mutex> guard(m_envMutex);
155 if (oldTimeout != m_lastTimeout) {
160 XrdCl::Env *
env = XrdCl::DefaultEnv::GetEnv();
162 env->PutInt(
"StreamTimeout", timeout);
163 env->PutInt(
"RequestTimeout", timeout);
164 env->PutInt(
"ConnectionWindow", timeout);
165 env->PutInt(
"StreamErrorWindow", timeout);
169 env->PutInt(
"ConnectionWindow", timeout / 6 + 1);
170 env->PutInt(
"ConnectionRetry", 2);
static boost::mutex mutex
CacheHint cacheHint(void) const
std::unique_ptr< Storage > wrapNonLocalFile(std::unique_ptr< Storage > s, const std::string &proto, const std::string &path, int mode) const
std::atomic< unsigned int > m_lastDebugLevel
bool check(const std::string &proto, const std::string &path, const AuxSettings &aux, IOOffset *size=0) const override
MakerResponseHandler m_null_handler
std::unique_ptr< Storage > open(const std::string &proto, const std::string &path, int mode, const AuxSettings &aux) const override
void stagein(const std::string &proto, const std::string &path, const AuxSettings &aux) const override
static const StorageFactory * get(void)
void setTimeout(unsigned int timeout) const
std::atomic< unsigned int > m_lastTimeout
#define DEFINE_FWK_SERVICE(type)
ReadHint readHint(void) const
void addContext(std::string const &context)
void HandleResponse(XrdCl::XRootDStatus *status, XrdCl::AnyObject *response) override
#define DEFINE_EDM_PLUGIN(factory, type, name)
void setDebugLevel(unsigned int level) const