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);
85 static void setCreationIdOffset(uint64_t offset);
88 bool looksLikeAVRSFile()
const;
91 bool looksLikeOurFiles(uint32_t magic1, uint32_t magic2, uint32_t magic3)
const;
94 bool isFormatSupported()
const;
101 void enableFrontIndexRecordSupport();
108 int64_t getEndOfUserRecordsOffset(int64_t fileSize)
const;
122 uint32_t formatVersion,
124 uint32_t previousRecordSize,
126 uint32_t uncompressedSize);
127 uint32_t recordSize{};
128 uint32_t previousRecordSize{};
129 int32_t recordableTypeId{};
130 uint32_t formatVersion{};
132 uint16_t recordableInstanceId{};
133 uint8_t recordType{};
134 uint8_t compressionType{};
135 uint32_t uncompressedSize{};
140 recordType =
static_cast<uint8_t
>(type);
152 recordableTypeId =
static_cast<int32_t
>(typeId);
158 return readRecordableTypeId(recordableTypeId);
164 return {getRecordableTypeId(),
static_cast<uint16_t
>(recordableInstanceId)};
176 this->compressionType =
static_cast<uint8_t
>(type);
185 uint32_t formatVersion,
187 uint32_t previousRecordSize,
189 uint32_t uncompressedSize);
196 void initIndexHeader(
197 uint32_t formatVersion,
199 uint32_t previousRecordSize,
206 void initDescriptionHeader(
207 uint32_t formatVersion,
208 uint32_t descriptionRecordSize,
209 uint32_t previousRecordSize);
213 bool isSanityCheckOk()
const;