Class CCompressedOutputStream

Inheritance Relationships

Base Type

Class Documentation

class CCompressedOutputStream : public mrpt::io::CStream

Saves data to a file with optional transparent compression.

Supports:

  • No compression (raw binary output)

  • Gzip compression

  • Zstandard compression

The compression type and level are specified via CompressionOptions.

Public Functions

explicit CCompressedOutputStream(const std::string &fileName, const OpenMode mode = OpenMode::TRUNCATE, const CompressionOptions &options = CompressionOptions())

Constructor: opens an output file with the given compression options.

Parameters:
  • fileName – The file to be opened in this stream

  • mode – Specify whether to truncate/create the file, or to append at the end if it exists. Note: append mode may not work correctly with all compression formats.

  • options – Compression type and level

Throws:

std::exception – if the file cannot be opened.

CCompressedOutputStream()

Constructor, without opening the file.

See also

open

CCompressedOutputStream(const CCompressedOutputStream&) = delete
CCompressedOutputStream &operator=(const CCompressedOutputStream&) = delete
~CCompressedOutputStream() override

Destructor

virtual std::string getStreamDescription() const override

Returns a human-friendly description of the stream, e.g. a filename.

bool open(const std::string &fileName, const CompressionOptions &options = CompressionOptions(), mrpt::optional_ref<std::string> error_msg = std::nullopt, const OpenMode mode = OpenMode::TRUNCATE)

Open a file for writing with the specified compression options.

Parameters:
  • fileName – The file to be opened in this stream

  • options – Compression type and level

  • error_msg – Optional output parameter for error message

  • mode – Specify whether to truncate or append

Returns:

true on success, false on any error.

void close()

Close the file

bool fileOpenCorrectly() const

Returns true if the file was opened without errors.

inline bool is_open()

Returns true if the file was opened without errors.

virtual uint64_t getPosition() const override

Method for getting the current cursor position in the compressed stream, where 0 is the first byte and TotalBytesCount-1 the last one.

For compressed files, this represents the position in the compressed output. For uncompressed files, it equals the number of bytes written.

std::string filePathAtUse() const

Returns the path of the filename passed to open(), or empty if none.

CompressionType getCompressionType() const

Returns the compression type being used.

virtual uint64_t Seek(int64_t Offset, CStream::TSeekOrigin Origin) override

This method is not implemented in this class

virtual uint64_t getTotalBytesCount() const override

This method is not implemented in this class

virtual size_t Read(void *Buffer, size_t Count) override

Introduces a pure virtual method responsible for reading from the stream.

virtual size_t Write(const void *Buffer, size_t Count) override

Introduces a pure virtual method responsible for writing to the stream. Write attempts to write up to Count bytes to Buffer, and returns the number of bytes actually written.