12#ifndef O2_FRAMEWORK_AODNATIVE_ARROWTABLE_H_
13#define O2_FRAMEWORK_AODNATIVE_ARROWTABLE_H_
17#include <arrow/memory_pool.h>
18#include <arrow/record_batch.h>
19#include <arrow/result.h>
20#include <arrow/type.h>
33std::shared_ptr<arrow::Schema>
datasetSchema(std::shared_ptr<arrow::Schema>
const& physical);
59std::shared_ptr<arrow::RecordBatch>
makeBatch(std::shared_ptr<arrow::Schema>
const&
schema, std::vector<ColumnOp>
const& ops,
64 arrow::MemoryPool* pool = arrow::default_memory_pool());
std::shared_ptr< arrow::Schema > schema
GLsizei GLsizei GLchar * source
std::shared_ptr< arrow::Schema > datasetSchema(std::shared_ptr< arrow::Schema > const &physical)
The physical schema without the *_size fields, as DataInputDirector derives it.
std::shared_ptr< arrow::RecordBatch > makeBatch(std::shared_ptr< arrow::Schema > const &schema, std::vector< ColumnOp > const &ops, std::vector< std::shared_ptr< arrow::Buffer > > const &buffers, int64_t rows)
Wraps the buffers of ops (one per op, in order) into a record batch.
arrow::Result< std::shared_ptr< arrow::RecordBatch > > readTree(ByteSource &source, TreeInfo const &tree, Options const &options, arrow::MemoryPool *pool=arrow::default_memory_pool())
Reads a whole tree into heap memory: plan, execute, wrap.
std::shared_ptr< arrow::Schema > physicalSchema(TreeInfo const &tree)
std::vector< ColumnOp > planColumns(TreeInfo const &tree, std::shared_ptr< arrow::Schema > const &schema, BranchDecoder &decoder, arrow::MemoryPool *pool, int64_t &rows)
void executeColumnOp(BranchDecoder &decoder, ColumnOp const &op, uint8_t *dst)
Fills the buffer of op, which is exactly op.byteSize bytes.
BranchInfo const * branch
std::shared_ptr< arrow::Buffer > offsets
For VLA columns: the offsets, decoded eagerly because they size the values.
std::unique_ptr< TTree > tree((TTree *) flIn.Get(std::string(o2::base::NameConf::CTFTREENAME).c_str()))
std::vector< ReadoutWindowData > rows