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);
116 std::pair<std::shared_ptr<DataInputDescriptor>,
int>
navigateToLevel(
int counter,
int numTF,
int wantedParentLevel, std::string_view wantedOrigin);
117 std::shared_ptr<DataInputDescriptor>
getParentFile(
int counter,
int numTF, std::string
treename,
int wantedParentLevel, std::string_view wantedOrigin);
129 void recordTimeFrameRead(
int counter,
int numTF);
130 void releaseParentFile();
131 void reportFileStatistics(
int counter, std::string monitoringInfo);
134 std::string minputfilesFile;
135 std::string* minputfilesFilePtr =
nullptr;
136 std::string mFilenameRegex;
137 std::string* mFilenameRegexPtr =
nullptr;
138 std::vector<FileNameHolder> mfilenames;
139 std::vector<FileNameHolder> mdefaultFilenamesPtr;
140 std::shared_ptr<arrow::fs::FileSystem> mCurrentFilesystem;
141 int mCurrentFileID = -1;
143 std::vector<std::pair<int, int>> mTimeFrameReads;
144 bool mAlienSupport =
false;
147 TMap* mParentFileMap =
nullptr;
148 std::shared_ptr<DataInputDescriptor> mParentFile =
nullptr;
149 std::vector<std::shared_ptr<DataInputDescriptor>> mRetainedParents;
150 bool mTimeFrameActive =
false;
151 std::vector<std::pair<int, std::string>> mPendingFileStatistics;
154 int mtotalNumberTimeFrames = 0;
156 uint64_t mIOTime = 0;
157 uint64_t mCurrentFileStartedAt = 0;
177 bool readJson(std::string
const& fnjson);
201 std::string minputfilesFile;
202 std::string*
const minputfilesFilePtr = &minputfilesFile;
203 std::string mFilenameRegex;
204 std::string*
const mFilenameRegexPtr = &mFilenameRegex;
205 std::shared_ptr<DataInputDescriptor> mdefaultDataInputDescriptor =
nullptr;
206 std::vector<FileNameHolder> mdefaultInputFiles;
207 std::vector<DataInputDescriptor> mdataInputDescriptors;
209 bool mDebugMode =
false;
210 bool mAlienSupport =
false;
212 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