9 #include "KVDataSetManager.h"
10 #include "KVDataRepositoryManager.h"
11 #include "KVDataSetRepository.h"
68 if (!ReadDataSetList())
79 if (dr) fCacheFileName.
Form(
"%s.available.datasets", dr->
GetName());
94 if (!dr) gDataSetManager =
this;
105 Bool_t KVDataSetManager::ReadDataSetList()
114 manip_list.
Begin(
" ");
116 while (!manip_list.
End()) {
118 auto manip = manip_list.
Next();
138 Bool_t KVDataSetManager::ReadTaskList()
147 task_list.
Begin(
" ");
148 while (!task_list.
End()) {
188 cout <<
" *** No available datasets ***" <<
193 for (
int i = 1; i <= fNavailable; i++) {
195 cout <<
"\t" << i <<
". " << ds->
GetTitle() << endl;
201 TIter next(&fDataSets);
259 if (fCacheAvailable) {
261 if (CheckCacheStatus()) {
263 if (ReadAvailableDatasetsFile())
return;
272 TString tmp_file_path = fCacheFileName;
277 TIter next(&fDataSets);
286 tmp_file << ds->
GetName() <<
" : ";
299 if (fNavailable && fRepository) {
312 ReadAvailableDatasetsFile();
368 if (fNavailable &&
index &&
index <= fNavailable)
389 KVDataSet* KVDataSetManager::NewDataSet()
428 Bool_t KVDataSetManager::OpenAvailableDatasetsFile()
447 Bool_t KVDataSetManager::ReadAvailableDatasetsFile()
453 if (OpenAvailableDatasetsFile()) {
454 Info(
"ReadAvailableDataSetsFile",
455 "Reading cached information in file %s", fCacheFileName.
Data());
458 line.ReadLine(fDatasets);
459 while (fDatasets.good()) {
473 while (!
line.End()) {
483 line.ReadLine(fDatasets);
491 TIter next(&fDataSets);
517 Bool_t KVDataSetManager::CheckCacheStatus()
523 Info(
"KVDataSetManager::CheckCacheStatus",
"Checking for available datasets cache file...");
532 Info(
"KVDataSetManager::CheckCacheStatus",
"...file found. It is %u seconds old", file_age);
533 if (file_age < fMaxCacheTime) {
534 Info(
"KVDataSetManager::CheckCacheStatus",
"Using cached file");
538 Info(
"KVDataSetManager::CheckCacheStatus",
"File is too old (max time=%u). Update will be performed.", fMaxCacheTime);
541 Info(
"KVDataSetManager::CheckCacheStatus",
"...no file found");
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
char * Form(const char *fmt,...)
R__EXTERN TSystem * gSystem
static void OpenTempFile(TString &base, std::ofstream &fp)
static const Char_t * GetWORKDIRFilePath(const Char_t *namefile="")
static Bool_t SearchKVFile(const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
static Bool_t SearchAndOpenKVFile(const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="")
Define and manage data analysis tasks.
virtual void SetDataAnalyser(const Char_t *d)
void SetOutputDataType(const KVString &p)
virtual void SetPrereq(const Char_t *p)
virtual void SetStatusUpdateInterval(Long64_t n)
virtual void SetUserBaseClass(const Char_t *d)
virtual void SetWithUserClass(Bool_t w=kTRUE)
Manage all datasets contained in a given data repository.
Bool_t Init(KVDataSetRepository *=0)
void Print(Option_t *opt="") const
Int_t GetNavailable() const
KVDataAnalysisTask * GetAnalysisTaskAny(const Char_t *keywords) const
KVDataAnalysisTask * GetTask(const Char_t *name)
Return pointer to named data analysis task.
KVDataSet * GetDataSet(Int_t) const
Return pointer to DataSet using index in list of all datasets, index>=0.
KVDataSet * GetAvailableDataSet(Int_t) const
A repository for experimental datasets.
void PrintAvailableDatasetsUpdateWarning() const
Manage an experimental dataset corresponding to a given experiment or campaign.
Bool_t IsAvailable() const
void ls(Option_t *opt="") const override
Print dataset information.
void SetRepository(KVDataSetRepository *)
Set pointer to data repository in which dataset is stored.
void AddAvailableDataType(const Char_t *)
void SetAnalysisTasks(const KVSeqCollection *)
const Char_t * GetAvailableDataTypes() const
void SetAvailable(Bool_t yes=kTRUE)
void SetName(const char *name) override
void SetDataPathSubdir(const TString &s)
ValueType Default(ValueType v=ValueType{}) const
Value GetValueOf(Ts... args) const
virtual TObject * FindObjectAny(const Char_t *att, const Char_t *keys, Bool_t contains_all=kFALSE, Bool_t case_sensitive=kTRUE) const
Int_t GetSize() const override
void Clear(Option_t *option="") override
void SetOwner(Bool_t enable=kTRUE) override
TObject * At(Int_t idx) const override
virtual TObject * FindObjectByName(const Char_t *name) const
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void Begin(TString delim) const
KVString Next(Bool_t strip_whitespace=kFALSE) const
void Add(TObject *obj) override
UInt_t Convert(Bool_t toGMT=kFALSE) const
virtual const char * GetValue(const char *name, const char *dflt) const
virtual void SetTitle(const char *title="")
const char * GetName() const override
const char * GetTitle() const override
virtual void SetName(const char *name)
const char * Data() const
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
void Form(const char *fmt,...)
virtual int Chmod(const char *file, UInt_t mode)
virtual int CopyFile(const char *from, const char *to, Bool_t overwrite=kFALSE)
virtual int GetPathInfo(const char *path, FileStat_t &buf)
virtual int Unlink(const char *name)