File indexing completed on 2025-09-15 09:11:43
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef ROOT_RNTuple
0015 #define ROOT_RNTuple
0016
0017 #include <Rtypes.h>
0018
0019 #include <cstdint>
0020
0021 class TCollection;
0022 class TFile;
0023 class TFileMergeInfo;
0024
0025 namespace ROOT {
0026
0027 class RNTuple;
0028
0029 namespace Internal {
0030 class RPageSourceFile;
0031 class RNTupleFileWriter;
0032
0033 RNTuple CreateAnchor(std::uint16_t versionEpoch, std::uint16_t versionMajor, std::uint16_t versionMinor,
0034 std::uint16_t versionPatch, std::uint64_t seekHeader, std::uint64_t nbytesHeader,
0035 std::uint64_t lenHeader, std::uint64_t seekFooter, std::uint64_t nbytesFooter,
0036 std::uint64_t lenFooter, std::uint64_t maxKeySize);
0037
0038 }
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065 class RNTuple final {
0066 friend class Internal::RNTupleFileWriter;
0067 friend class Internal::RPageSourceFile;
0068
0069 friend ROOT::RNTuple
0070 Internal::CreateAnchor(std::uint16_t versionEpoch, std::uint16_t versionMajor, std::uint16_t versionMinor,
0071 std::uint16_t versionPatch, std::uint64_t seekHeader, std::uint64_t nbytesHeader,
0072 std::uint64_t lenHeader, std::uint64_t seekFooter, std::uint64_t nbytesFooter,
0073 std::uint64_t lenFooter, std::uint64_t maxKeySize);
0074
0075 public:
0076 static constexpr std::uint16_t kVersionEpoch = 1;
0077 static constexpr std::uint16_t kVersionMajor = 0;
0078 static constexpr std::uint16_t kVersionMinor = 0;
0079 static constexpr std::uint16_t kVersionPatch = 1;
0080
0081 private:
0082
0083
0084 std::uint16_t fVersionEpoch = kVersionEpoch;
0085
0086
0087
0088 std::uint16_t fVersionMajor = kVersionMajor;
0089
0090 std::uint16_t fVersionMinor = kVersionMinor;
0091
0092 std::uint16_t fVersionPatch = kVersionPatch;
0093
0094 std::uint64_t fSeekHeader = 0;
0095
0096 std::uint64_t fNBytesHeader = 0;
0097
0098 std::uint64_t fLenHeader = 0;
0099
0100 std::uint64_t fSeekFooter = 0;
0101
0102 std::uint64_t fNBytesFooter = 0;
0103
0104 std::uint64_t fLenFooter = 0;
0105
0106 std::uint64_t fMaxKeySize = 0;
0107
0108 TFile *fFile = nullptr;
0109
0110 public:
0111 RNTuple() = default;
0112 ~RNTuple() = default;
0113
0114 std::uint16_t GetVersionEpoch() const { return fVersionEpoch; }
0115 std::uint16_t GetVersionMajor() const { return fVersionMajor; }
0116 std::uint16_t GetVersionMinor() const { return fVersionMinor; }
0117 std::uint16_t GetVersionPatch() const { return fVersionPatch; }
0118
0119 std::uint64_t GetSeekHeader() const { return fSeekHeader; }
0120 std::uint64_t GetNBytesHeader() const { return fNBytesHeader; }
0121 std::uint64_t GetLenHeader() const { return fLenHeader; }
0122
0123 std::uint64_t GetSeekFooter() const { return fSeekFooter; }
0124 std::uint64_t GetNBytesFooter() const { return fNBytesFooter; }
0125 std::uint64_t GetLenFooter() const { return fLenFooter; }
0126 std::uint64_t GetMaxKeySize() const { return fMaxKeySize; }
0127
0128
0129
0130 Long64_t Merge(TCollection *input, TFileMergeInfo *mergeInfo);
0131
0132
0133 ClassDefNV(RNTuple, 2);
0134 };
0135
0136 }
0137
0138 #endif