Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2011-09-08 16:12:36 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:23:25 +0300
commitbd75e193c049cd8c73289765ff4d28d5da357492 (patch)
tree8d9a0dddb290504c02084147b064f499bdf56d7d /coding/file_writer.cpp
parent0c3352b86446d6a2d148029dd6c7351c712d6555 (diff)
Fix using of FilesContainerR, FilesContainerW.
Note! FilesContainerW::GetWriter can reallocate file on disk.
Diffstat (limited to 'coding/file_writer.cpp')
-rw-r--r--coding/file_writer.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/coding/file_writer.cpp b/coding/file_writer.cpp
index 5194eb9b5c..10388d7c9b 100644
--- a/coding/file_writer.cpp
+++ b/coding/file_writer.cpp
@@ -4,20 +4,26 @@
#include "../../base/start_mem_debug.hpp"
-FileWriter::FileWriter(FileWriter const & rhs) : Writer(*this)
+FileWriter::FileWriter(FileWriter const & rhs)
+: Writer(*this), m_bTruncOnClose(rhs.m_bTruncOnClose)
{
m_pFileData.swap(const_cast<FileWriter &>(rhs).m_pFileData);
}
-FileWriter::FileWriter(string const & fileName, FileWriter::Op op)
- : m_pFileData(new fdata_t(fileName, static_cast<fdata_t::Op>(op)))
+FileWriter::FileWriter(string const & fileName, FileWriter::Op op, bool bTruncOnClose)
+: m_pFileData(new fdata_t(fileName, static_cast<fdata_t::Op>(op))), m_bTruncOnClose(bTruncOnClose)
{
}
FileWriter::~FileWriter()
{
if (m_pFileData)
+ {
Flush();
+
+ if (m_bTruncOnClose)
+ m_pFileData->Truncate(Pos());
+ }
}
int64_t FileWriter::Pos() const
@@ -51,11 +57,6 @@ void FileWriter::Flush()
m_pFileData->Flush();
}
-void FileWriter::Truncate(uint64_t sz)
-{
- m_pFileData->Truncate(sz);
-}
-
void FileWriter::DeleteFileX(string const & fName)
{
my::DeleteFileX(fName);