- Add call FileWriter::Flush() in Writer's dtor.

- Move version serialization in separate module.
This commit is contained in:
vng 2011-08-10 01:34:35 +03:00 committed by Alex Zolotarev
parent 1255968f94
commit 54d6315fd7
4 changed files with 33 additions and 11 deletions

View file

@ -16,6 +16,8 @@ FileWriter::FileWriter(string const & fileName, FileWriter::Op op)
FileWriter::~FileWriter()
{
if (m_pFileData)
Flush();
}
int64_t FileWriter::Pos() const

View file

@ -15,13 +15,13 @@
#include "../platform/platform.hpp"
#include "../version/version.hpp"
#include "../version/ver_serialization.hpp"
#include "../coding/file_container.hpp"
#include "../base/string_utils.hpp"
#include "../base/logging.hpp"
#include "../base/timer.hpp"
namespace
{
@ -106,19 +106,12 @@ namespace feature
{
FileWriter w = m_writer.GetWriter(HEADER_FILE_TAG);
m_header.Save(w);
w.Flush();
}
// write version information
{
static uint32_t generatorStartTime = my::TodayAsYYMMDD();
FileWriter w = m_writer.GetWriter(VERSION_FILE_TAG);
WriteVarUint(w, Version::BUILD);
WriteVarUint(w, Version::GIT_HASH);
// actual date of data generation
WriteVarUint(w, generatorStartTime);
ver::WriteVersion(w);
}
// assume like we close files

View file

@ -0,0 +1,22 @@
#pragma once
#include "version.hpp"
#include "../coding/write_to_sink.hpp"
#include "../base/timer.hpp"
namespace ver
{
template <class TSink> void WriteVersion(TSink & sink)
{
// static is used for equal time stamp for all "mwm" files in one generation process
static uint32_t generatorStartTime = my::TodayAsYYMMDD();
WriteToSink(sink, static_cast<uint32_t>(Version::BUILD));
WriteToSink(sink, static_cast<uint32_t>(Version::GIT_HASH));
// actual date of data generation
WriteToSink(sink, generatorStartTime);
}
}

View file

@ -26,4 +26,9 @@ CONFIG(release, debug|release)|CONFIG(production) {
QMAKE_EXTRA_TARGETS += versiontarget
}
SOURCES += empty_stub.cpp
HEADERS += \
version.hpp \
ver_serialization.hpp \
SOURCES += \
empty_stub.cpp \