11#ifndef O2_FRAMEWORK_DATAINPUTDIRECTOR_H_
12#define O2_FRAMEWORK_DATAINPUTDIRECTOR_H_
20#include <arrow/filesystem/filesystem.h>
21#include <arrow/dataset/dataset.h>
26#include "rapidjson/fwd.h"
39 using std::runtime_error::runtime_error;
59 std::vector<std::pair<std::string, TFile*>>
openFiles = {};
81 std::shared_ptr<data_matcher::DataDescriptorMatcher>
matcher;
98 bool setFile(
int counter,
int wantedParentLevel, std::string_view wantedOrigin);
109 arrow::dataset::FileSource
getFileFolder(
int counter,
int numTF,
int wantedParentLevel, std::string_view wantedOrigin);
113 std::pair<std::shared_ptr<DataInputDescriptor>,
int>
navigateToLevel(
int counter,
int numTF,
int wantedParentLevel, std::string_view wantedOrigin);
114 std::shared_ptr<DataInputDescriptor>
getParentFile(
int counter,
int numTF, std::string
treename,
int wantedParentLevel, std::string_view wantedOrigin);
127 std::string minputfilesFile;
128 std::string* minputfilesFilePtr =
nullptr;
129 std::string mFilenameRegex;
130 std::string* mFilenameRegexPtr =
nullptr;
131 std::vector<FileNameHolder> mfilenames;
132 std::vector<FileNameHolder> mdefaultFilenamesPtr;
133 std::shared_ptr<arrow::fs::FileSystem> mCurrentFilesystem;
134 int mCurrentFileID = -1;
135 bool mAlienSupport =
false;
138 TMap* mParentFileMap =
nullptr;
139 std::shared_ptr<DataInputDescriptor> mParentFile =
nullptr;
142 int mtotalNumberTimeFrames = 0;
144 uint64_t mIOTime = 0;
145 uint64_t mCurrentFileStartedAt = 0;
165 bool readJson(std::string
const& fnjson);
186 std::string minputfilesFile;
187 std::string*
const minputfilesFilePtr = &minputfilesFile;
188 std::string mFilenameRegex;
189 std::string*
const mFilenameRegexPtr = &mFilenameRegex;
190 std::shared_ptr<DataInputDescriptor> mdefaultDataInputDescriptor =
nullptr;
191 std::vector<FileNameHolder> mdefaultInputFiles;
192 std::vector<DataInputDescriptor> mdataInputDescriptors;
194 bool mDebugMode =
false;
195 bool mAlienSupport =
false;
197 bool readJsonDocument(rapidjson::Document* doc);
header::DataOrigin origin
o2::monitoring::Monitoring Monitoring
Defining ITS Vertex explicitly as messageable.
FileNameHolder makeFileNameHolder(std::string fileName)
std::string parentFileReplacement
o2::monitoring::Monitoring * monitoring
std::vector< std::pair< std::string, int > > parentLevelToOrigin
std::vector< std::pair< std::string, TFile * > > openFiles
int levelForOrigin(std::string_view origin) const
std::vector< bool > alreadyRead
uint64_t invalidReadSkipped
std::vector< uint64_t > listOfTimeFrameNumbers