/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
android-google-915
coding/file_writer.hpp
66 строк
2 KB
Maxim Pimenov
[base] Replaced the namespace my with base.
18 сен 2018, 14:46
18 сен 2018, 14:46
412387c
Код
Авторство
О чём код?
#pragma once #include "coding/writer.hpp" #include "base/base.hpp" #include <cstddef> #include <cstdint> #include <memory> #include <string> namespace base { class FileData; } // FileWriter, not thread safe. class FileWriter : public Writer { DISALLOW_COPY(FileWriter); public: // Values actually match internal FileData::Op enum. enum Op { // Create an empty file for writing. If a file with the same name already exists // its content is erased and the file is treated as a new empty file. OP_WRITE_TRUNCATE = 1, // Open a file for update. The file is created if it does not exist. OP_WRITE_EXISTING = 2, // Append to a file. Writing operations append data at the end of the file. // The file is created if it does not exist. // Seek should not be called, if file is opened for append. OP_APPEND = 3 }; FileWriter(FileWriter && rhs); explicit FileWriter(std::string const & fileName, Op operation = OP_WRITE_TRUNCATE, bool bTruncOnClose = false); ~FileWriter() override; void Seek(uint64_t pos) override; uint64_t Pos() const override; void Write(void const * p, size_t size) override; void WritePaddingByEnd(size_t factor); void WritePaddingByPos(size_t factor); uint64_t Size() const; void Flush(); void Reserve(uint64_t size); static void DeleteFileX(std::string const & fName); std::string const & GetName() const; private: void WritePadding(uint64_t offset, uint64_t factor); std::unique_ptr<base::FileData> m_pFileData; bool m_bTruncOnClose; };