17 #ifndef INDEXEDFILE_READER_V201_V301_CLASS_HEADER
18 #define INDEXEDFILE_READER_V201_V301_CLASS_HEADER
49 virtual void read(
void* destination, uint64_t count) = 0;
56 virtual void seek(uint64_t offset) = 0;
66 class IndexedFileReaderImpl;
67 std::unique_ptr<IndexedFileReaderImpl> _d;
73 int64_t _end_of_data_marker;
74 bool _file_pos_invalid;
76 void* _current_chunk_data;
81 int64_t _index_table_index;
82 FilePos _file_pos_current_chunk;
87 bool _compatibility_v110;
89 mutable std::map<std::string, FileExtension> _extension_info_v110_by_name;
90 a_util::filesystem::Path _filename;
125 virtual void open(
const a_util::filesystem::Path& filename,
137 virtual void open(
const std::shared_ptr<SourceFile>& source_file, uint32_t flags = 0);
190 int64_t
seek(uint16_t stream_id,
337 const void** info_data,
338 size_t* info_size)
const;
448 std::vector<uint8_t>& data);
Definition: indexreadtable_v201_v301.h:32
Definition: indexedfilereader_v201_v301.h:64
void readCurrentChunkData(void *buffer)
int64_t getStreamTableIndexCount(uint16_t stream_id) const
int64_t getChunkCount() const
void readNextChunkInfo(ChunkHeader **chunk_header)
int64_t lookupChunkRef(uint16_t stream_id, int64_t position, TimeFormat time_format) const
bool streamExists(uint16_t stream_id) const
Checks if stream with given id exists.
uint32_t getVersionId() const
bool findExtension(const char *identifier, FileExtension **extension_info, void **data) const
int64_t getCurrentPos(TimeFormat time_format) const
size_t getExtensionCount() const
timestamp_t getTimeOffset() const
static constexpr auto read_cache_default
Definition: indexedfilereader_v201_v301.h:107
void queryChunkInfo(ChunkHeader **chunk_header)
timestamp_t getDuration() const
static constexpr size_t read_cache_deactivated
Definition: indexedfilereader_v201_v301.h:111
int64_t getFilePos() const
std::string getStreamName(uint16_t stream_id) const
timestamp_t getLastTime(uint16_t stream_id) const
int64_t getStreamIndexCount(uint16_t stream_id) const
timestamp_t getFirstTime(uint16_t stream_id) const
bool getLastChunkWithFlagBefore(uint64_t chunk_index, uint16_t stream_id, uint16_t flag, ChunkHeader &header, std::vector< uint8_t > &data)
virtual void open(const a_util::filesystem::Path &filename, const std::optional< size_t > &read_cache_size=IndexedFileReader::read_cache_default, uint32_t flags=0)
void readCurrentChunkHeader()
void readChunk(void **data, uint32_t flags=0)
virtual void open(const std::shared_ptr< SourceFile > &source_file, uint32_t flags=0)
int64_t setCurrentPos(int64_t position, TimeFormat time_format)
void readNextChunk(ChunkHeader **chunk_header, void **data, uint32_t flags=0, uint32_t stream_id=0)
void getExtension(size_t index, FileExtension **extension_info, void **data) const
void readDataBlock(void *buffer, size_t buffer_size)
int64_t seek(uint16_t stream_id, int64_t position, TimeFormat time_format, uint32_t flags=0)
virtual void initialize()
void getAdditionalStreamInfo(uint16_t stream_id, const void **info_data, size_t *info_size) const
Definition: indexedfile_v201_v301.h:86
Definition: indexedfilereader_v201_v301.h:36
virtual void read(void *destination, uint64_t count)=0
virtual ~SourceFile()=default
virtual void seek(uint64_t offset)=0
TimeFormat
Definition: indexedfile_types_v201_v301.h:57
namespace for IFHD File library
Definition: indexedfile_types.h:30
utils5ext::FilePos FilePos
file pos type
Definition: indexedfile_types.h:54
Header for a file extensions.
Definition: indexedfile_types_v201_v301.h:161