Go to the documentation of this file.
37 if (!
open(fileName, 1, err_msg))
39 "Error trying to open file: '%s', error: '%s'", fileName.c_str(),
45 const string& fileName,
int compress_level,
50 if (
m_f->f) gzclose(
m_f->f);
53 m_f->f = gzopen(fileName.c_str(),
format(
"wb%i", compress_level).c_str());
54 if (
m_f->f ==
nullptr && error_msg)
55 error_msg.value().get() = std::string(strerror(errno));
56 return m_f->f !=
nullptr;
82 return gzwrite(
m_f->f,
const_cast<void*
>(Buffer), Count);
91 return gztell(
m_f->f);
96 return m_f->f !=
nullptr;
TSeekOrigin
Used in CStream::Seek.
bool open(const std::string &fileName, int compress_level=1, mrpt::optional_ref< std::string > error_msg=std::nullopt)
Open a file for write, choosing the compression level.
size_t Write(const void *Buffer, size_t Count) override
Introduces a pure virtual method responsible for writing to the stream.
uint64_t getPosition() const override
Method for getting the current cursor position, where 0 is the first byte and TotalBytesCount-1 the l...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define THROW_EXCEPTION(msg)
Saves data to a file and transparently compress the data using the given compression level.
CFileGZOutputStream()
Constructor, without opening the file.
uint64_t getTotalBytesCount() const override
This method is not implemented in this class.
bool fileOpenCorrectly() const
Returns true if the file was open without errors.
void close()
Close the file.
pimpl< T > make_impl(Args &&... args)
uint64_t Seek(int64_t, CStream::TSeekOrigin=sFromBeginning) override
This method is not implemented in this class.
size_t Read(void *Buffer, size_t Count) override
Introduces a pure virtual method responsible for reading from the stream.
std::optional< std::reference_wrapper< T > > optional_ref
Shorter name for std::optional<std::reference_wrapper<T>>
std::string std::string format(std::string_view fmt, ARGS &&... args)
~CFileGZOutputStream() override
Destructor.
Page generated by Doxygen 1.8.17 for MRPT 2.0.4 at Fri Jul 17 08:43:33 UTC 2020 | |