12#ifndef O2_FRAMEWORK_NATIVEAOD_H_
13#define O2_FRAMEWORK_NATIVEAOD_H_
36 std::shared_ptr<o2::aod::native::ByteSource>
source;
47 std::string
type_name()
const override {
return "native-aod"; }
48 arrow::Result<arrow::fs::FileInfo>
GetFileInfo(
const std::string&
path)
override;
66 std::shared_ptr<o2::aod::native::ReadPlan>
planFor(std::string
const&
path);
70 std::string
const&
name()
const {
return mName; }
73 std::vector<o2::aod::native::KeyInfo>
keysOf(std::string
const& df);
83 std::vector<o2::aod::native::KeyInfo>
keys;
84 std::vector<std::pair<std::string, o2::aod::native::TreeInfo>> trees;
85 std::shared_ptr<o2::aod::native::ReadPlan> plan;
87 NativeTreeHandle* findTree(std::string
const& df, std::string
const& treeName);
89 std::vector<o2::aod::native::KeyInfo>
const& directory(std::string
const& df);
90 void addToPlan(std::string
const& treeName);
92 void adoptLookahead(std::string
const& df);
94 void releaseMappedDF(std::string
const& df);
95 void startLookahead(std::string
const& afterDF, std::vector<std::string> trees);
97 std::shared_ptr<o2::aod::native::RootFile> mFile;
102 std::map<std::string, std::vector<o2::aod::native::KeyInfo>> mDirectories;
103 std::map<std::string, std::unique_ptr<NativeTreeHandle>> mTrees;
104 std::shared_ptr<o2::aod::native::ReadBufferPool> mPool;
106 std::shared_ptr<o2::aod::native::ReadPlan> mPlan;
107 uint64_t mPlanBytes = 0;
109 std::map<std::string, std::shared_ptr<o2::aod::native::ReadPlan>> mPlanOf;
112 std::string mMappedDF;
113 std::vector<std::string> mPlanTrees;
115 std::shared_ptr<o2::aod::native::RootFile> mLookaheadFile;
116 std::vector<std::string> mDataFrames;
117 std::future<std::optional<Lookahead>> mLookahead;
118 std::string mLookaheadDF;
120 std::string mAdoptedDF;
121 std::shared_ptr<o2::aod::native::ReadPlan> mAdoptedPlan;
122 std::vector<std::string> mAdoptedTrees;
140 std::string
name()
const override {
return mName; }
141 uint64_t
size()
const override;
145 std::vector<std::string>
keysIn(std::string
const& dir)
override;
146 std::map<std::string, std::string>
parentFiles()
override {
return mParentFiles; }
147 std::map<std::string, std::string>
metaData()
override {
return mMetaData; }
148 std::shared_ptr<VirtualRootFileSystemBase>
filesystem()
override {
return mFilesystem; }
149 void setReadOrder(std::vector<std::string>
const& dfs)
override { mFilesystem->setReadOrder(dfs); }
155 double mOpenTime = 0;
156 std::shared_ptr<o2::aod::native::RootFile> mFile;
157 std::shared_ptr<NativeAODFileSystem> mFilesystem;
158 std::map<std::string, std::string> mParentFiles;
159 std::map<std::string, std::string> mMetaData;
std::vector< std::string > keys
std::vector< o2::aod::native::KeyInfo > keysOf(std::string const &df)
The keys of DF df, read once (or prepared ahead) for all users.
void setName(std::string name)
void setReadOrder(std::vector< std::string > dfs)
arrow::Result< arrow::fs::FileInfo > GetFileInfo(const std::string &path) override
std::string type_name() const override
std::shared_ptr< o2::aod::native::ReadPlan > planFor(std::string const &path)
bool CheckSupport(arrow::dataset::FileSource source) override
o2::aod::native::RootFile & file()
NativeTreeHandle * getTreeHandle(std::string const &path)
std::string const & name() const
std::shared_ptr< RootObjectHandler > GetObjectHandler(arrow::dataset::FileSource source) override
GLuint const GLchar * name
GLsizei GLsizei GLchar * source
GLsizei const GLchar *const * path
Defining ITS Vertex explicitly as messageable.
std::shared_ptr< o2::aod::native::ByteSource > source
o2::aod::native::TreeInfo tree
o2::aod::native::Options options