62 uint32_t magicHeader1{};
63 uint32_t magicHeader2{};
64 uint64_t creationId{};
65 uint32_t fileHeaderSize{};
66 uint32_t recordHeaderSize{};
67 int64_t indexRecordOffset{};
68 int64_t descriptionRecordOffset{};
70 firstUserRecordOffset{};
75 uint32_t magicHeader3{};
76 uint32_t fileFormatVersion{};
81 void init(uint32_t magic1, uint32_t magic2, uint32_t magic3, uint32_t formatVersion);
84 bool looksLikeAVRSFile()
const;
87 bool looksLikeOurFiles(uint32_t magic1, uint32_t magic2, uint32_t magic3)
const;
90 bool isFormatSupported()
const;
97 void enableFrontIndexRecordSupport();
104 int64_t getEndOfUserRecordsOffset(int64_t fileSize)
const;
118 uint32_t formatVersion,
120 uint32_t previousRecordSize,
122 uint32_t uncompressedSize);
123 uint32_t recordSize{};
124 uint32_t previousRecordSize{};
125 int32_t recordableTypeId{};
126 uint32_t formatVersion{};
128 uint16_t recordableInstanceId{};
129 uint8_t recordType{};
130 uint8_t compressionType{};
131 uint32_t uncompressedSize{};
136 recordType =
static_cast<uint8_t
>(type);
148 recordableTypeId =
static_cast<int32_t
>(typeId);
154 return readRecordableTypeId(recordableTypeId);
160 return {getRecordableTypeId(),
static_cast<uint16_t
>(recordableInstanceId)};
172 this->compressionType =
static_cast<uint8_t
>(type);
181 uint32_t formatVersion,
183 uint32_t previousRecordSize,
185 uint32_t uncompressedSize);
192 void initIndexHeader(
193 uint32_t formatVersion,
195 uint32_t previousRecordSize,
202 void initDescriptionHeader(
203 uint32_t formatVersion,
204 uint32_t descriptionRecordSize,
205 uint32_t previousRecordSize);
209 bool isSanityCheckOk()
const;