CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GsiFTPStorageMaker.cc
Go to the documentation of this file.
5 
6 namespace edm::storage {
8  public:
9  std::unique_ptr<Storage> open(const std::string &proto,
10  const std::string &path,
11  int mode,
12  const AuxSettings &) const override {
15  int localfd = RemoteFile::local(f->tempDir(), temp);
16  std::string lurl = "file://" + temp;
17  std::string newurl((proto == "sfn" ? "gsiftp" : proto) + ":" + path);
18  const char *ftpopts[] = {"globus-url-copy", newurl.c_str(), lurl.c_str(), nullptr};
19  return RemoteFile::get(localfd, temp, (char **)ftpopts, mode);
20  }
21  };
22 } // namespace edm::storage
23 
24 using namespace edm::storage;
25 
std::string tempDir(void) const
static std::unique_ptr< Storage > get(int localfd, const std::string &name, char **cmd, int mode)
Definition: RemoteFile.cc:80
std::unique_ptr< Storage > open(const std::string &proto, const std::string &path, int mode, const AuxSettings &) const override
static int local(const std::string &tmpdir, std::string &temp)
Definition: RemoteFile.cc:50
#define DEFINE_EDM_PLUGIN(factory, type, name)
static const StorageFactory * get(void)