16 size_t p =
path.find(
"/pnfs");
18 return (proto ==
"gsidcap") ? proto +
':' +
path.substr(
p) :
path.substr(
p);
21 p =
path.find_first_not_of(
'/');
24 return proto +
"://" +
path.substr(
p);
51 if (dc_stage(npath.c_str(), 0,
nullptr) != 0) {
53 ex <<
"Cannot stage in file '" << npath <<
"', error was: " << dc_strerror(dc_errno)
54 <<
" (dc_errno=" << dc_errno <<
")";
55 ex.
addContext(
"Calling DCacheStorageMaker::stagein()");
66 if (dc_access(testpath.c_str(), R_OK) != 0)
71 if (dc_stat64(testpath.c_str(), &
buf) != 0)
static std::string normalise(const std::string &proto, const std::string &path)
bool check(const std::string &proto, const std::string &path, const AuxSettings &aux, IOOffset *size=nullptr) const override
void setTimeout(unsigned int timeout) const
void addContext(std::string const &context)
void stagein(const std::string &proto, const std::string &path, const AuxSettings &aux) const override
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::unique_ptr< Storage > open(const std::string &proto, const std::string &path, int mode, AuxSettings const &aux) const override
static const StorageFactory * get(void)