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"
68 std::vector<std::pair<std::string, TFile*>>
openFiles = {};
90 std::shared_ptr<data_matcher::DataDescriptorMatcher>
matcher;
107 bool setFile(
int counter,
int wantedParentLevel, std::string_view wantedOrigin);
118 arrow::dataset::FileSource
getFileFolder(
int counter,
int numTF,
int wantedParentLevel, std::string_view wantedOrigin);
125 std::pair<std::shared_ptr<DataInputDescriptor>,
int>
navigateToLevel(
int counter,
int numTF,
int wantedParentLevel, std::string_view wantedOrigin);
126 std::shared_ptr<DataInputDescriptor>
getParentFile(
int counter,
int numTF, std::string
treename,
int wantedParentLevel, std::string_view wantedOrigin);
138 void recordTimeFrameRead(
int counter,
int numTF);
139 void releaseParentFile();
140 void reportFileStatistics(
int counter, std::string monitoringInfo);
143 std::string minputfilesFile;
144 std::string* minputfilesFilePtr =
nullptr;
145 std::string mFilenameRegex;
146 std::string* mFilenameRegexPtr =
nullptr;
147 std::vector<FileNameHolder> mfilenames;
148 std::vector<FileNameHolder> mdefaultFilenamesPtr;
149 std::shared_ptr<arrow::fs::FileSystem> mCurrentFilesystem;
150 int mCurrentFileID = -1;
152 std::vector<std::pair<int, int>> mTimeFrameReads;
153 bool mAlienSupport =
false;
156 TMap* mParentFileMap =
nullptr;
157 std::shared_ptr<DataInputDescriptor> mParentFile =
nullptr;
158 std::vector<std::shared_ptr<DataInputDescriptor>> mRetainedParents;
159 bool mTimeFrameActive =
false;
160 std::vector<std::pair<int, std::string>> mPendingFileStatistics;
163 int mtotalNumberTimeFrames = 0;
165 uint64_t mIOTime = 0;
166 uint64_t mCurrentFileStartedAt = 0;
186 bool readJson(std::string
const& fnjson);
210 std::string minputfilesFile;
211 std::string*
const minputfilesFilePtr = &minputfilesFile;
212 std::string mFilenameRegex;
213 std::string*
const mFilenameRegexPtr = &mFilenameRegex;
214 std::shared_ptr<DataInputDescriptor> mdefaultDataInputDescriptor =
nullptr;
215 std::vector<FileNameHolder> mdefaultInputFiles;
216 std::vector<DataInputDescriptor> mdataInputDescriptors;
218 bool mDebugMode =
false;
219 bool mAlienSupport =
false;
221 bool readJsonDocument(rapidjson::Document* doc);
header::DataOrigin origin
o2::monitoring::Monitoring Monitoring
AODReadError(Kind kind, std::string const &what)
Defining ITS Vertex explicitly as messageable.
RuntimeErrorRef runtime_error(const char *)
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