class mrpt::io::CFileGZOutputStream
Saves data to a file and transparently compress the data using the given compression level.
The generated files are in gzip format (“file.gz”).
See also:
#include <mrpt/io/CFileGZOutputStream.h> class CFileGZOutputStream: public mrpt::io::CStream { public: // structs struct Impl; // construction CFileGZOutputStream(const std::string& fileName, const OpenMode mode = OpenMode::TRUNCATE, int compressionLevel = 1); CFileGZOutputStream(); CFileGZOutputStream(const CFileGZOutputStream&); // methods CFileGZOutputStream& operator = (const CFileGZOutputStream&); virtual std::string getStreamDescription() const; bool open( const std::string& fileName, int compress_level = 1, mrpt::optional_ref<std::string> error_msg = std::nullopt, const OpenMode mode = OpenMode::TRUNCATE ); void close(); bool fileOpenCorrectly() const; bool is_open(); virtual uint64_t getPosition() const; std::string filePathAtUse() const; virtual uint64_t Seek(int64_t, CStream::TSeekOrigin = sFromBeginning); virtual uint64_t getTotalBytesCount() const; virtual size_t Read(void* Buffer, size_t Count); virtual size_t Write(const void* Buffer, size_t Count); };
Inherited Members
public: // methods virtual size_t Read(void* Buffer, size_t Count) = 0; virtual size_t Write(const void* Buffer, size_t Count) = 0; virtual uint64_t getTotalBytesCount() const = 0; virtual uint64_t getPosition() const = 0;
Construction
CFileGZOutputStream( const std::string& fileName, const OpenMode mode = OpenMode::TRUNCATE, int compressionLevel = 1 )
Constructor: opens an output file with the given compression level (Default= 1, the minimum, fastest).
Parameters:
fileName |
The file to be open in this stream |
append |
If set to true, the file will be opened for writing and the current cursor position set at the end of the file. Otherwise, previous contents will be lost. |
std::exception |
if the file cannot be opened. |
CFileGZOutputStream()
Constructor, without opening the file.
See also:
Methods
virtual std::string getStreamDescription() const
Returns a human-friendly description of the stream, e.g.
a filename.
bool open( const std::string& fileName, int compress_level = 1, mrpt::optional_ref<std::string> error_msg = std::nullopt, const OpenMode mode = OpenMode::TRUNCATE )
Open a file for write, choosing the compression level.
Parameters:
fileName |
The file to be open in this stream |
compress_level |
0:no compression, 1:fastest, 9:best |
Returns:
true on success, false on any error.
void close()
Close the file.
bool fileOpenCorrectly() const
Returns true if the file was open without errors.
bool is_open()
Returns true if the file was open without errors.
virtual uint64_t getPosition() const
Method for getting the current cursor position, where 0 is the first byte and TotalBytesCount-1 the last one.
std::string filePathAtUse() const
Returns the path of the filename passed to open(), or empty if none.
virtual uint64_t Seek(int64_t, CStream::TSeekOrigin = sFromBeginning)
This method is not implemented in this class.
virtual uint64_t getTotalBytesCount() const
This method is not implemented in this class.
virtual size_t Read(void* Buffer, size_t Count)
Introduces a pure virtual method responsible for reading from the stream.
virtual size_t Write(const void* Buffer, size_t Count)
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.