17#ifndef INDEX_READ_TABLE_V201_V301_CLASS_HEADER
18#define INDEX_READ_TABLE_V201_V301_CLASS_HEADER
36 IndexTable():index_table_offset(0), index_count(0), last_index(0), index_offset(0) {}
38 uint64_t index_table_offset;
41 timestamp_t last_index;
43 uint64_t index_offset;
46 struct MasterIndexTable:
public IndexTable
49 master_chunk_ref_table(
nullptr)
55 struct StreamIndexTable:
public IndexTable
58 stream_info_header(
nullptr),
59 stream_ref_table(
nullptr),
60 additional_stream_info(
nullptr)
65 void* additional_stream_info;
68 typedef std::vector<StreamIndexTable> StreamIndexTableVector;
71 MasterIndexTable _master_index_table;
74 StreamIndexTable _stream_index_tables[max_indexed_streams + 1];
184 int64_t* chunk_index,
185 int64_t* chunk_offset);
210 int64_t* chunk_offset, int64_t* end_chunk_index,
211 int64_t* master_index)
const;
222 uint16_t chunk_flags, uint64_t* master_index);
240 void setIndexOffsetInfos(uint16_t stream_id,
251 void addStreamIndexTableEntry(uint16_t stream_id,
StreamRef* stream_ref,
253 void* additional_stream_info,
261 void addMasterIndexTableEntry(
void* ref_tbl, uint64_t count);
274 void getStreamRef(uint16_t stream_id, uint32_t stream_idx,
Definition indexreadtable_v201_v301.h:32
bool findNearestEntryWithFlags(uint16_t stream_id, uint64_t chunk_index, uint16_t chunk_flags, uint64_t *master_index)
const StreamInfoHeader * getStreamInfo(uint16_t stream_id) const
void fillChunkHeaderFromIndex(uint32_t master_idx, ChunkHeader *header, int64_t *chunk_index, int64_t *chunk_offset)
bool validateRawMasterIndex(int32_t ref_master_table_index)
bool streamExists(uint16_t stream_id) const
Checks either a stream exists or not.
void validatePosition(uint16_t stream_id, int64_t pos, TimeFormat time_format) const
void create(IndexedFile *indexed_file)
std::string getStreamName(uint16_t stream_id) const
int64_t getItemCount(uint16_t stream_id) const
void adjustChunkHeader(ChunkHeader *header)
const void * getAdditionalStreamInfo(uint16_t stream_id) const
void lookupChunkRef(uint16_t stream_id, int64_t pos, TimeFormat time_format, int64_t *chunk_index, int64_t *chunk_offset, int64_t *end_chunk_index, int64_t *master_index) const
timestamp_t getFirstTime(uint16_t stream_id) const
timestamp_t getLastTime(uint16_t stream_id) const
Definition indexedfile_v201_v301.h:86
namespace for indexed file definitions in version 2.0, 2.1, 3.0 and 3.1
Definition indexedfile_types_v201_v301.h:28
TimeFormat
Definition indexedfile_types_v201_v301.h:57
namespace for IFHD File library
Definition indexedfile_types.h:30
Additional index table information.
Definition indexedfile_types_v201_v301.h:271
header for a chunk reference
Definition indexedfile_types_v201_v301.h:215
Definition indexedfile_types_v201_v301.h:244