summaryrefslogtreecommitdiff
path: root/src/file/settings
diff options
context:
space:
mode:
authorclaiff <claiff@mail.ru>2022-10-06 12:26:45 +0300
committerclaiff <claiff@mail.ru>2022-10-06 12:26:45 +0300
commitda5f91a0ce15351a82beb061c3ccc965164529bc (patch)
tree1f4cd2d1e2f8cf2442d055c519d06c6e0692febc /src/file/settings
parent8edef99a5b52643e0b919c424357752cbbc9a8dd (diff)
downloadobmc-sila-smtp-da5f91a0ce15351a82beb061c3ccc965164529bc.tar.xz
create settings on startbugfix/proxy_file_reader
Diffstat (limited to 'src/file/settings')
-rw-r--r--src/file/settings/checker_decorator.cpp12
-rw-r--r--src/file/settings/checker_decorator.hpp10
-rw-r--r--src/file/settings/file_decorator.cpp13
-rw-r--r--src/file/settings/file_decorator.hpp16
-rw-r--r--src/file/settings/settings.cpp4
-rw-r--r--src/file/settings/settings.hpp12
-rw-r--r--src/file/settings/types/ifile_manipulator.hpp6
7 files changed, 40 insertions, 33 deletions
diff --git a/src/file/settings/checker_decorator.cpp b/src/file/settings/checker_decorator.cpp
index ef560ad..a7ccda1 100644
--- a/src/file/settings/checker_decorator.cpp
+++ b/src/file/settings/checker_decorator.cpp
@@ -16,18 +16,22 @@ namespace smtp::file::settings
//Public methods
//
- manage::SettingsFileDataType CheckerDecorator::Read() const
+ general::SettingsFileDataType CheckerDecorator::Read() const
{
- manage::SettingsFileDataType result;
+ general::SettingsFileDataType result;
if(!mBase)
{
return result;
}
result = mBase->Read();
- return mRegistratorErrors.Check( result ) ? result : manage::SettingsFileDataType{};
+ if(result.empty())
+ {
+ return result;
+ }
+ return mRegistratorErrors.Check( result ) ? result : general::SettingsFileDataType{};
}
- bool CheckerDecorator::Write( manage::SettingsFileDataType const& settings_fields ) const
+ bool CheckerDecorator::Write( general::SettingsFileDataType const& settings_fields ) const
{
if( !mBase )
{
diff --git a/src/file/settings/checker_decorator.hpp b/src/file/settings/checker_decorator.hpp
index ecaba5a..c596fb6 100644
--- a/src/file/settings/checker_decorator.hpp
+++ b/src/file/settings/checker_decorator.hpp
@@ -1,20 +1,20 @@
#pragma once
-#include "management/general.hpp"
+#include "general/struct.hpp"
#include "checker/registrator_settings.hpp"
#include "types/ifile_manipulator.hpp"
-#include "message/builder/types/idecorator.hpp"
+#include "general/idecorator.hpp"
namespace smtp::file::settings
{
- class CheckerDecorator : public smtp::message::builder::types::IDecorator< types::IFileManipulator>
+ class CheckerDecorator : public general::IDecorator< types::IFileManipulator>
{
public:
explicit CheckerDecorator( checker::RegistratorSettings const& registrator_errors );
~CheckerDecorator() = default;
- manage::SettingsFileDataType Read() const override;
- bool Write( manage::SettingsFileDataType const& data ) const override;
+ general::SettingsFileDataType Read() const override;
+ bool Write( general::SettingsFileDataType const& data ) const override;
private:
checker::RegistratorSettings mRegistratorErrors;
};
diff --git a/src/file/settings/file_decorator.cpp b/src/file/settings/file_decorator.cpp
index 38b42ce..1b05f72 100644
--- a/src/file/settings/file_decorator.cpp
+++ b/src/file/settings/file_decorator.cpp
@@ -12,8 +12,9 @@ namespace smtp::file::settings
//Constructors
//
- FileDecorator::FileDecorator( std::string const& path_file )
+ FileDecorator::FileDecorator( std::string const& path_file, errors::Registrator const& registrator_errors )
: mPathFile( path_file )
+ , mRegistratorErrors( registrator_errors )
{
}
@@ -22,14 +23,14 @@ namespace smtp::file::settings
//Public methods
//
- manage::SettingsFileDataType FileDecorator::Read() const
+ general::SettingsFileDataType FileDecorator::Read() const
{
static const std::string METHOD_NAME = "Read settings";
std::ifstream settings_file{mPathFile, std::fstream::in};
if( !settings_file.is_open() )
{
- logger::LoggerSet::GetInstance()->LogError( METHOD_NAME, "Unable to open file to read " + mPathFile );
+ mRegistratorErrors.Process( errors::types::SettingsType::Server );
return {};
}
auto result = GetDataFromFile( settings_file );
@@ -38,7 +39,7 @@ namespace smtp::file::settings
return result;
}
- bool FileDecorator::Write( manage::SettingsFileDataType const& data ) const
+ bool FileDecorator::Write( general::SettingsFileDataType const& data ) const
{
static const std::string METHOD_NAME = "Write settings";
@@ -61,10 +62,10 @@ namespace smtp::file::settings
//Private methods
//
- manage::SettingsFileDataType FileDecorator::GetDataFromFile( std::ifstream& settings_file ) const
+ general::SettingsFileDataType FileDecorator::GetDataFromFile( std::ifstream& settings_file ) const
{
std::string line{};
- manage::SettingsFileDataType result;
+ general::SettingsFileDataType result;
parser::Settings parser;
while( std::getline( settings_file, line ))
diff --git a/src/file/settings/file_decorator.hpp b/src/file/settings/file_decorator.hpp
index 5896aed..93c8c20 100644
--- a/src/file/settings/file_decorator.hpp
+++ b/src/file/settings/file_decorator.hpp
@@ -1,22 +1,24 @@
#pragma once
-#include "management/general.hpp"
+#include "general/struct.hpp"
#include "types/ifile_manipulator.hpp"
-#include "message/builder/types/idecorator.hpp"
+#include "general/idecorator.hpp"
+#include "file/errors/registrator.hpp"
namespace smtp::file::settings
{
- class FileDecorator : public smtp::message::builder::types::IDecorator< types::IFileManipulator>
+ class FileDecorator : public general::IDecorator< types::IFileManipulator>
{
public:
- explicit FileDecorator( std::string const& path_file );
+ explicit FileDecorator( std::string const& path_file, errors::Registrator const& registrator_errors );
~FileDecorator() = default;
- manage::SettingsFileDataType Read() const override;
- bool Write( manage::SettingsFileDataType const& data ) const override;
+ general::SettingsFileDataType Read() const override;
+ bool Write( general::SettingsFileDataType const& data ) const override;
private:
- manage::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const;
+ general::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const;
std::string mPathFile;
+ errors::Registrator mRegistratorErrors;
};
}
diff --git a/src/file/settings/settings.cpp b/src/file/settings/settings.cpp
index 48232e6..0815f11 100644
--- a/src/file/settings/settings.cpp
+++ b/src/file/settings/settings.cpp
@@ -17,13 +17,13 @@ namespace smtp::file::settings
//Public methods
//
- manage::SettingsFields Settings::Read() const
+ general::SettingsFields Settings::Read() const
{
auto parsed_store = mFileManipulator->Read();
return converter::FileToStruct{}.Convert( parsed_store );
}
- bool Settings::Write( manage::SettingsFields const& settings_fields ) const
+ bool Settings::Write( general::SettingsFields const& settings_fields ) const
{
auto parsed_data = converter::StructToFile{}.Convert( settings_fields );
return mFileManipulator->Write( parsed_data );
diff --git a/src/file/settings/settings.hpp b/src/file/settings/settings.hpp
index 60634fe..9e05f24 100644
--- a/src/file/settings/settings.hpp
+++ b/src/file/settings/settings.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "management/general.hpp"
+#include "general/struct.hpp"
#include "types/ifile_manipulator.hpp"
namespace smtp::file::settings
@@ -11,12 +11,12 @@ namespace smtp::file::settings
explicit Settings( types::IFileManipulatorPtr const& file_manipulator );
~Settings() = default;
- manage::SettingsFields Read() const;
- bool Write( manage::SettingsFields const& settings_fields ) const;
+ general::SettingsFields Read() const;
+ bool Write( general::SettingsFields const& settings_fields ) const;
private:
- manage::SettingsFileDataType GetParsedStore() const;
- manage::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const;
- bool SetParsedData( manage::SettingsFileDataType const& parsed_data ) const;
+ general::SettingsFileDataType GetParsedStore() const;
+ general::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const;
+ bool SetParsedData( general::SettingsFileDataType const& parsed_data ) const;
std::string BuildParam( std::pair < std::string, std::string > const& data ) const;
std::string mPathFile;
diff --git a/src/file/settings/types/ifile_manipulator.hpp b/src/file/settings/types/ifile_manipulator.hpp
index 6de0bf3..312aece 100644
--- a/src/file/settings/types/ifile_manipulator.hpp
+++ b/src/file/settings/types/ifile_manipulator.hpp
@@ -2,7 +2,7 @@
#include <memory>
-#include "management/general.hpp"
+#include "general/struct.hpp"
namespace smtp::file::settings::types
{
@@ -11,8 +11,8 @@ namespace smtp::file::settings::types
public:
virtual ~IFileManipulator() = default;
- virtual manage::SettingsFileDataType Read() const = 0;
- virtual bool Write( manage::SettingsFileDataType const& data ) const = 0;
+ virtual general::SettingsFileDataType Read() const = 0;
+ virtual bool Write( general::SettingsFileDataType const& data ) const = 0;
};
using IFileManipulatorPtr = std::shared_ptr<IFileManipulator>;
}