11#ifndef O2_FRAMEWORK_DATAINPUTDIRECTOR_H_
12#define O2_FRAMEWORK_DATAINPUTDIRECTOR_H_
20#include <arrow/filesystem/filesystem.h>
21#include <arrow/dataset/dataset.h>
24#include "rapidjson/fwd.h"
51 std::unique_ptr<data_matcher::DataDescriptorMatcher>
matcher;
53 DataInputDescriptor(
bool alienSupport,
int level, o2::monitoring::Monitoring* monitoring =
nullptr,
int allowedParentLevel = 0, std::string parentFileReplacement =
"");
91 std::string minputfilesFile =
"";
92 std::string* minputfilesFilePtr =
nullptr;
93 std::string mFilenameRegex =
"";
94 std::string* mFilenameRegexPtr =
nullptr;
95 int mAllowedParentLevel = 0;
96 std::string mParentFileReplacement;
97 std::vector<FileNameHolder*> mfilenames;
98 std::vector<FileNameHolder*>* mdefaultFilenamesPtr =
nullptr;
99 std::shared_ptr<arrow::fs::FileSystem> mCurrentFilesystem;
100 int mCurrentFileID = -1;
101 bool mAlienSupport =
false;
103 o2::monitoring::Monitoring* mMonitoring =
nullptr;
105 TMap* mParentFileMap =
nullptr;
109 int mtotalNumberTimeFrames = 0;
111 uint64_t mIOTime = 0;
112 uint64_t mCurrentFileStartedAt = 0;
123 DataInputDirector(std::string inputFile, o2::monitoring::Monitoring* monitoring =
nullptr,
int allowedParentLevel = 0, std::string parentFileReplacement =
"");
124 DataInputDirector(std::vector<std::string> inputFiles, o2::monitoring::Monitoring* monitoring =
nullptr,
int allowedParentLevel = 0, std::string parentFileReplacement =
"");
134 bool readJson(std::string
const& fnjson);
151 std::string minputfilesFile;
152 std::string*
const minputfilesFilePtr = &minputfilesFile;
153 std::string mFilenameRegex;
154 int mAllowedParentLevel = 0;
155 std::string mParentFileReplacement;
156 std::string*
const mFilenameRegexPtr = &mFilenameRegex;
158 std::vector<FileNameHolder*> mdefaultInputFiles;
159 std::vector<DataInputDescriptor*> mdataInputDescriptors;
161 o2::monitoring::Monitoring* mMonitoring =
nullptr;
163 bool mDebugMode =
false;
164 bool mAlienSupport =
false;
166 bool readJsonDocument(rapidjson::Document* doc);
o2::monitoring::Monitoring Monitoring
Defining PrimaryVertex explicitly as messageable.
FileNameHolder * makeFileNameHolder(std::string fileName)
std::vector< bool > alreadyRead
std::vector< uint64_t > listOfTimeFrameNumbers