KaliVeda
Toolkit for HIC analysis
KVDataSetRepository.h
1 #pragma once
2 
3 #include "KVDataRepository.h"
4 
5 class KVDataSet;
6 class KVDataSetManager;
8 
16  std::unique_ptr<KVDataSetManager> fDSM;
17 
18 public:
19  KVDataSetRepository() = default;
21  void cd() override;
22  Bool_t Init() override;
23 
26 
28  {
29  _impl->PrintAvailableDatasetsUpdateWarning();
30  }
31 
32  Bool_t GetFileInfo(const KVDataSet* dataset,
33  const TString& datatype,
34  const TString& runfile, FileStat_t& fs) const;
35  Bool_t CheckFileStatus(const KVDataSet* dataset,
36  const TString& datatype,
37  const TString& runfile);
39  const TString& datatype,
40  const TString& runfile);
42  const TString& datatype = "", const TString& subdir = "");
43  void CopyFileFromRepository(const KVDataSet* dataset,
44  const TString& datatype,
45  const TString& filename,
46  const TString& destination);
47  int CopyFileToRepository(const TString& source,
48  const KVDataSet* dataset,
49  const TString& datatype,
50  const TString& filename);
51  TFile* CreateNewFile(const KVDataSet* dataset,
52  const TString& datatype,
53  const TString& filename);
54  void CommitFile(TFile* file, const TString& datatype, const KVDataSet* dataset);
55  void MakeSubdirectory(const KVDataSet* dataset, const TString& datatype = "");
56  void CreateAllNeededSubdirectories(const KVDataSet* DataSet, const Char_t* DataType);
57  void DeleteFile(const KVDataSet* ds, const TString& datatype, const TString& runfile, Bool_t confirm);
58 
59  static KVDataSetRepository* NewRepository(const TString& local_or_irods);
60 
62 };
bool Bool_t
char Char_t
#define ClassDefOverride(name, id)
Handles lists of available runs for different datasets and types of data.
Base class for managing repositories of data.
std::unique_ptr< KVDataRepositoryImpl > _impl
void CreateAllNeededSubdirectories() const
Manage all datasets contained in a given data repository.
A repository for experimental datasets.
Bool_t CheckFileStatus(const KVDataSet *dataset, const TString &datatype, const TString &runfile)
void PrintAvailableDatasetsUpdateWarning() const
void MakeSubdirectory(const KVDataSet *dataset, const TString &datatype="")
TFile * CreateNewFile(const KVDataSet *dataset, const TString &datatype, const TString &filename)
std::unique_ptr< KVDataSetManager > fDSM
void CommitFile(TFile *file, const TString &datatype, const KVDataSet *dataset)
~KVDataSetRepository()
Just to allow std::unique_ptr<KVDataSetManager> member with incomplete (forward) declaration of KVDat...
int CopyFileToRepository(const TString &source, const KVDataSet *dataset, const TString &datatype, const TString &filename)
KVDataSetManager * GetDataSetManager() const
Return pointer to data set manager for this repository.
static KVDataSetRepository * NewRepository(const TString &local_or_irods)
void CopyFileFromRepository(const KVDataSet *dataset, const TString &datatype, const TString &filename, const TString &destination)
Bool_t GetFileInfo(const KVDataSet *dataset, const TString &datatype, const TString &runfile, FileStat_t &fs) const
KVDataSetRepository()=default
handles datasets in repository
virtual KVAvailableRunsFile * NewAvailableRunsFile(const Char_t *, const KVDataSet *)
void DeleteFile(const KVDataSet *ds, const TString &datatype, const TString &runfile, Bool_t confirm)
TString GetFullPathToTransferFile(const KVDataSet *dataset, const TString &datatype, const TString &runfile)
KVUniqueNameList GetDirectoryListing(const KVDataSet *dataset, const TString &datatype="", const TString &subdir="")
Manage an experimental dataset corresponding to a given experiment or campaign.
Definition: KVDataSet.h:146
Optimised list in which named objects can only be placed once.