![]() |
VRS
A file format for sensor data.
|
Abstract class to handle the interpretation of a record format's content block. More...
#include <ContentBlockReader.h>
Public Member Functions | |
virtual | ~ContentBlockReader () |
Virtual destructor, since this is an abstract class. | |
virtual bool | readBlock (const CurrentRecord &, RecordFormatStreamPlayer &)=0 |
Static Public Member Functions | |
static unique_ptr< ContentBlockReader > | build (const RecordFormat &recordFormat, size_t blockIndex, unique_ptr< DataLayout > &&blockLayout) |
Protected Member Functions | |
ContentBlockReader (const RecordFormat &recordFormat, size_t blockIndex) | |
bool | findNextContentBlockSpec (const CurrentRecord &record, RecordFormatStreamPlayer &player) |
size_t | findContentBlockSize (const CurrentRecord &record, RecordFormatStreamPlayer &player) |
uint32_t | findAudioSampleCount (const CurrentRecord &record, RecordFormatStreamPlayer &player) |
Protected Attributes | |
const RecordFormat & | recordFormat_ |
const size_t | blockIndex_ |
unique_ptr< datalayout_conventions::NextContentBlockSpec > | contentBlockSpec_ |
Abstract class to handle the interpretation of a record format's content block.
Specialized versions of this class will handle specific types of content blocks.
|
static |
Factory style constructor, which will determine what ContentBlockReader object needs to be created to handle the referenced block.
recordFormat | RecordFormat of the record. |
blockIndex | Index of the block to build a ContentBlockReader for. |
blockLayout | optional DataLayout, if the block is a DataLayout block. |
|
pure virtual |
Method called by RecordFormatStreamPlayer when a content block needs to be read. To be implemented by each specialized ContentBlockReader class, which can then interpret the data of the format it expects.
Implemented in vrs::ImageBlockReader, vrs::AudioBlockReader, vrs::CustomBlockReader, vrs::UnsupportedBlockReader, vrs::EmptyBlockReader, and vrs::DataLayoutBlockReader.