CMS 3D CMS Logo

List of all members | Public Member Functions
HttpStorageMaker Class Reference
Inheritance diagram for HttpStorageMaker:
StorageMaker

Public Member Functions

std::unique_ptr< Storageopen (const std::string &proto, const std::string &path, int mode, const AuxSettings &) const override
 
- Public Member Functions inherited from StorageMaker
virtual bool check (const std::string &proto, const std::string &path, const AuxSettings &aux, IOOffset *size=nullptr) const
 
virtual void stagein (const std::string &proto, const std::string &path, const AuxSettings &aux) const
 
 StorageMaker ()=default
 
virtual ~StorageMaker ()=default
 

Detailed Description

Definition at line 6 of file HttpStorageMaker.cc.

Member Function Documentation

std::unique_ptr<Storage> HttpStorageMaker::open ( const std::string &  proto,
const std::string &  path,
int  mode,
const AuxSettings  
) const
inlineoverridevirtual

Implements StorageMaker.

Definition at line 8 of file HttpStorageMaker.cc.

References DEFINE_EDM_PLUGIN, f, RemoteFile::get(), StorageFactory::get(), RemoteFile::local(), AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, and StorageFactory::tempDir().

11  {
14  int localfd = RemoteFile::local(f->tempDir(), temp);
15  std::string newurl((proto == "web" ? "http" : proto) + ":" + path);
16  const char *curlopts[] = {"curl", "-L", "-f", "-o", temp.c_str(), "-q", "-s", "--url", newurl.c_str(), nullptr};
17 
18  return RemoteFile::get(localfd, temp, (char **)curlopts, mode);
19  }
static std::unique_ptr< Storage > get(int localfd, const std::string &name, char **cmd, int mode)
Definition: RemoteFile.cc:78
static int local(const std::string &tmpdir, std::string &temp)
Definition: RemoteFile.cc:48
static const StorageFactory * get(void)
std::string tempDir(void) const
double f[11][100]