rntviewer/src/rntuple.h
2024-07-15 11:54:45 +02:00

51 lines
929 B
C

// using RNTuple = ROOT::Experimental::RNTuple;
struct Byte_Range {
u64 start, len;
u64 end() const { return start + len; }
};
struct Page_Info_Node {
Page_Info_Node *next;
Byte_Range range;
u64 n_elems;
};
static const Page_Info_Node invalid_pinfo {};
struct Page_Info_Group {
Byte_Range range;
Page_Info_Node *first;
};
struct Page_Info_Chunk {
Page_Info_Chunk *next;
Byte_Range range;
u64 first_group;
};
struct RNTuple_Data {
struct {
u16 epoch, major, minor, patch;
} version;
u64 root_file_header_size;
u64 rblob_header_size;
Byte_Range rng_anchor;
Byte_Range rng_anchor_key;
Byte_Range rng_header;
Byte_Range rng_footer;
Page_Info_Node *pages;
u64 n_pages;
// total number of elements of all pages
u64 n_elems;
Page_Info_Group *page_groups;
u64 n_page_groups;
// grouping of consecutive page groups
Page_Info_Chunk *page_chunks;
u64 n_page_chunks;
};