diff options
author | Arsentiy Milchakov <a.milchakov@corp.mail.ru> | 2016-08-09 14:26:59 +0300 |
---|---|---|
committer | Arsentiy Milchakov <a.milchakov@corp.mail.ru> | 2016-08-09 14:39:27 +0300 |
commit | cfafe65ea046427b9c47b87752b91e854dbcf635 (patch) | |
tree | 4409b63fe563bbfdb7e8fcfc3187b7c7960604cd /editor | |
parent | 73994023b9a409878496c9a3ca4aee959c532eb4 (diff) |
review fixes
Diffstat (limited to 'editor')
-rw-r--r-- | editor/editor.pro | 8 | ||||
-rw-r--r-- | editor/editor_storage.cpp | 34 | ||||
-rw-r--r-- | editor/editor_storage.hpp | 25 |
3 files changed, 30 insertions, 37 deletions
diff --git a/editor/editor.pro b/editor/editor.pro index 40cc940436..b3b6e432fa 100644 --- a/editor/editor.pro +++ b/editor/editor.pro @@ -12,19 +12,20 @@ SOURCES += \ changeset_wrapper.cpp \ editor_config.cpp \ editor_notes.cpp \ + editor_storage.cpp \ opening_hours_ui.cpp \ osm_auth.cpp \ osm_feature_matcher.cpp \ server_api.cpp \ ui2oh.cpp \ user_stats.cpp \ - xml_feature.cpp \ - editor_storage.cpp + xml_feature.cpp HEADERS += \ changeset_wrapper.hpp \ editor_config.hpp \ editor_notes.hpp \ + editor_storage.hpp \ opening_hours_ui.hpp \ osm_auth.hpp \ osm_feature_matcher.hpp \ @@ -32,5 +33,4 @@ HEADERS += \ ui2oh.hpp \ user_stats.hpp \ xml_feature.hpp \ - yes_no_unknown.hpp \ - editor_storage.hpp + yes_no_unknown.hpp diff --git a/editor/editor_storage.cpp b/editor/editor_storage.cpp index 96dc771b32..8f2a878430 100644 --- a/editor/editor_storage.cpp +++ b/editor/editor_storage.cpp @@ -8,31 +8,31 @@ #include "std/string.hpp" -#include "3party/pugixml/src/pugixml.hpp" - using namespace pugi; namespace { -constexpr char const * kEditorXMLFileName = "edits.xml"; +char const * kEditorXMLFileName = "edits.xml"; + string GetEditorFilePath() { return GetPlatform().WritablePathForFile(kEditorXMLFileName); } } // namespace namespace editor { -bool StorageLocal::Save(xml_document const & doc) +// StorageLocal ------------------------------------------------------------------------------------ +bool LocalStorage::Save(xml_document const & doc) { auto const editorFilePath = GetEditorFilePath(); return my::WriteToTempAndRenameToFile(editorFilePath, [&doc](string const & fileName) { - return doc.save_file(fileName.data(), " "); + return doc.save_file(fileName.data(), " " /* indent */); }); } -bool StorageLocal::Load(xml_document & doc) +bool LocalStorage::Load(xml_document & doc) { auto const editorFilePath = GetEditorFilePath(); auto const result = doc.load_file(editorFilePath.c_str()); - // Note: status_file_not_found is ok if user has never made any edits. + // Note: status_file_not_found is ok if a user has never made any edits. if (result != status_ok && result != status_file_not_found) { LOG(LERROR, ("Can't load map edits from disk:", editorFilePath)); @@ -42,30 +42,26 @@ bool StorageLocal::Load(xml_document & doc) return true; } -void StorageLocal::Reset() +void LocalStorage::Reset() { my::DeleteFileX(GetEditorFilePath()); } - -StorageMemory::StorageMemory() - : m_doc(make_unique <xml_document> ()) -{} - -bool StorageMemory::Save(xml_document const & doc) +// StorageMemory ----------------------------------------------------------------------------------- +bool InMemoryStorage::Save(xml_document const & doc) { - m_doc->reset(doc); + m_doc.reset(doc); return true; } -bool StorageMemory::Load(xml_document & doc) +bool InMemoryStorage::Load(xml_document & doc) { - doc.reset(*m_doc); + doc.reset(m_doc); return true; } -void StorageMemory::Reset() +void InMemoryStorage::Reset() { - m_doc->reset(); + m_doc.reset(); } } // namespace editor diff --git a/editor/editor_storage.hpp b/editor/editor_storage.hpp index d712b6b53c..269c6754a5 100644 --- a/editor/editor_storage.hpp +++ b/editor/editor_storage.hpp @@ -1,11 +1,6 @@ #pragma once -#include "std/unique_ptr.hpp" - -namespace pugi -{ -class xml_document; -} +#include "3party/pugixml/src/pugixml.hpp" namespace editor { @@ -13,31 +8,33 @@ namespace editor class StorageBase { public: - virtual ~StorageBase() {} + virtual ~StorageBase() = default; + virtual bool Save(pugi::xml_document const & doc) = 0; virtual bool Load(pugi::xml_document & doc) = 0; virtual void Reset() = 0; }; -// Class which save/load edits to/from local file. -class StorageLocal : public StorageBase +// Class which saves/loads edits to/from local file. +class LocalStorage : public StorageBase { public: + // StorageBase overrides: bool Save(pugi::xml_document const & doc) override; bool Load(pugi::xml_document & doc) override; void Reset() override; }; -// Class which save/load edits to/from xml_document class instance. -class StorageMemory : public StorageBase +// Class which saves/loads edits to/from xml_document class instance. +class InMemoryStorage : public StorageBase { public: - StorageMemory(); + // StorageBase overrides: bool Save(pugi::xml_document const & doc) override; bool Load(pugi::xml_document & doc) override; void Reset() override; private: - unique_ptr<pugi::xml_document> m_doc; + pugi::xml_document m_doc; }; -} +} // namespace editor |