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”). This class requires compiling MRPT with wxWidgets. If wxWidgets is not available then the class is actually mapped to the standard CFileOutputStream
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.