Class BufferReader
Defined in File reader.hpp
Inheritance Relationships
Base Type
public mcap::ICompressedReader(Class ICompressedReader)
Class Documentation
-
class BufferReader : public mcap::ICompressedReader
A “null” compressed reader that directly passes through uncompressed data. No internal buffers are allocated.
Public Functions
-
virtual void reset(const std::byte *data, uint64_t size, uint64_t uncompressedSize) override
Reset the reader state, clearing any internal buffers and state, and initialize with new compressed data.
- Parameters:
data – Compressed data to read from.
size – Size of the compressed data in bytes.
uncompressedSize – Size of the data in bytes after decompression. A buffer of this size will be allocated for the uncompressed data.
-
virtual uint64_t read(std::byte **output, uint64_t offset, uint64_t size) override
This method is called by MCAP reader classes when they need to read a portion of the file.
- Parameters:
output – A pointer to a pointer to the buffer to write to. This method is expected to either maintain an internal buffer, read data into it, and update this pointer to point at the internal buffer, or update this pointer to point directly at the source data if possible. The pointer and data must remain valid and unmodified until the next call to read().
offset – The offset in bytes from the beginning of the file to read.
size – The number of bytes to read.
- Returns:
uint64_t Number of bytes actually read. This may be less than the requested size if the end of the file is reached. The output pointer must be readable from
outputtooutput + size. If the read fails, this method should return 0.
-
virtual uint64_t size() const override
Returns the size of the file in bytes.
- Returns:
uint64_t The total number of bytes in the MCAP file.
-
virtual Status status() const override
Report the current status of decompression. A StatusCode other than
StatusCode::Successafterreset()is called indicates the decompression was not successful and the reader is in an invalid state.
-
BufferReader() = default
-
BufferReader(const BufferReader&) = delete
-
BufferReader &operator=(const BufferReader&) = delete
-
BufferReader(BufferReader&&) = delete
-
BufferReader &operator=(BufferReader&&) = delete
-
virtual void reset(const std::byte *data, uint64_t size, uint64_t uncompressedSize) override