summaryrefslogtreecommitdiff
path: root/src/message
diff options
context:
space:
mode:
Diffstat (limited to 'src/message')
-rw-r--r--src/message/builder/cc.cpp2
-rw-r--r--src/message/builder/cc.hpp10
-rw-r--r--src/message/builder/date.hpp4
-rw-r--r--src/message/builder/from.hpp4
-rw-r--r--src/message/builder/mail_to.cpp2
-rw-r--r--src/message/builder/mail_to.hpp10
-rw-r--r--src/message/builder/subject.hpp4
-rw-r--r--src/message/builder/text.hpp4
-rw-r--r--src/message/builder/types/idecorator.hpp82
9 files changed, 20 insertions, 102 deletions
diff --git a/src/message/builder/cc.cpp b/src/message/builder/cc.cpp
index 3cf3276..b186167 100644
--- a/src/message/builder/cc.cpp
+++ b/src/message/builder/cc.cpp
@@ -2,7 +2,7 @@
namespace smtp::message::builder
{
- Cc::Cc( manage::MailsSet const& mail_to )
+ Cc::Cc( general::MailsSet const& mail_to )
: mMailTo( mail_to )
{
diff --git a/src/message/builder/cc.hpp b/src/message/builder/cc.hpp
index 9eee0a7..e990310 100644
--- a/src/message/builder/cc.hpp
+++ b/src/message/builder/cc.hpp
@@ -1,21 +1,21 @@
#pragma once
-#include "types/idecorator.hpp"
+#include "general/idecorator.hpp"
#include "types/imessage_builder.hpp"
-#include "management/general.hpp"
+#include "general/struct.hpp"
namespace smtp::message::builder
{
- class Cc : public types::IDecorator<types::IMessageBuilder>
+ class Cc : public general::IDecorator<types::IMessageBuilder>
{
public:
- explicit Cc( manage::MailsSet const& mail_to );
+ explicit Cc( general::MailsSet const& mail_to );
~Cc() override = default;
std::string Get() const override;
private:
bool IsFirstElement( std::string const& cc ) const;
- manage::MailsSet const& mMailTo;
+ general::MailsSet const& mMailTo;
};
}
diff --git a/src/message/builder/date.hpp b/src/message/builder/date.hpp
index 31908ac..38e9bc2 100644
--- a/src/message/builder/date.hpp
+++ b/src/message/builder/date.hpp
@@ -1,11 +1,11 @@
#pragma once
-#include "types/idecorator.hpp"
+#include "general/idecorator.hpp"
#include "types/imessage_builder.hpp"
namespace smtp::message::builder
{
- class Date : public types::IDecorator<types::IMessageBuilder>
+ class Date : public general::IDecorator<types::IMessageBuilder>
{
public:
Date() = default;
diff --git a/src/message/builder/from.hpp b/src/message/builder/from.hpp
index d1f0b21..8f67c46 100644
--- a/src/message/builder/from.hpp
+++ b/src/message/builder/from.hpp
@@ -1,11 +1,11 @@
#pragma once
-#include "types/idecorator.hpp"
+#include "general/idecorator.hpp"
#include "types/imessage_builder.hpp"
namespace smtp::message::builder
{
- class From : public types::IDecorator<types::IMessageBuilder>
+ class From : public general::IDecorator<types::IMessageBuilder>
{
public:
explicit From( std::string const& mail_to );
diff --git a/src/message/builder/mail_to.cpp b/src/message/builder/mail_to.cpp
index 3ef7e0e..342829c 100644
--- a/src/message/builder/mail_to.cpp
+++ b/src/message/builder/mail_to.cpp
@@ -2,7 +2,7 @@
namespace smtp::message::builder
{
- MailTo::MailTo( manage::MailsSet const& mails )
+ MailTo::MailTo( general::MailsSet const& mails )
: mMailTo( mails )
{
diff --git a/src/message/builder/mail_to.hpp b/src/message/builder/mail_to.hpp
index 626f210..7d2fa32 100644
--- a/src/message/builder/mail_to.hpp
+++ b/src/message/builder/mail_to.hpp
@@ -1,21 +1,21 @@
#pragma once
-#include "types/idecorator.hpp"
+#include "general/idecorator.hpp"
#include "types/imessage_builder.hpp"
-#include "management/general.hpp"
+#include "general/struct.hpp"
namespace smtp::message::builder
{
- class MailTo : public types::IDecorator<types::IMessageBuilder>
+ class MailTo : public general::IDecorator<types::IMessageBuilder>
{
public:
- explicit MailTo( manage::MailsSet const& mails );
+ explicit MailTo( general::MailsSet const& mails );
~MailTo() override = default;
std::string Get() const override;
private:
std::string GetFirstMail() const;
- manage::MailsSet const& mMailTo;
+ general::MailsSet const& mMailTo;
};
}
diff --git a/src/message/builder/subject.hpp b/src/message/builder/subject.hpp
index 8153bc8..22e5b3b 100644
--- a/src/message/builder/subject.hpp
+++ b/src/message/builder/subject.hpp
@@ -1,11 +1,11 @@
#pragma once
-#include "types/idecorator.hpp"
+#include "general/idecorator.hpp"
#include "types/imessage_builder.hpp"
namespace smtp::message::builder
{
- class Subject : public types::IDecorator<types::IMessageBuilder>
+ class Subject : public general::IDecorator<types::IMessageBuilder>
{
public:
explicit Subject( std::string const& subject );
diff --git a/src/message/builder/text.hpp b/src/message/builder/text.hpp
index 9715656..8deb14a 100644
--- a/src/message/builder/text.hpp
+++ b/src/message/builder/text.hpp
@@ -1,11 +1,11 @@
#pragma once
-#include "types/idecorator.hpp"
+#include "general/idecorator.hpp"
#include "types/imessage_builder.hpp"
namespace smtp::message::builder
{
- class Text : public types::IDecorator<types::IMessageBuilder>
+ class Text : public general::IDecorator<types::IMessageBuilder>
{
public:
explicit Text( std::string const& text );
diff --git a/src/message/builder/types/idecorator.hpp b/src/message/builder/types/idecorator.hpp
deleted file mode 100644
index 19284ac..0000000
--- a/src/message/builder/types/idecorator.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#pragma once
-
-#include <memory>
-
-namespace smtp::message::builder::types
-{
-
-/**
- * @brief Базовый интерфейс описания декоратора
- * @details См. https://refactoring.guru/ru/design-patterns/decorator
- * @tparam T Тип декорируемого класса, T должен обладать возможностью наследования (в том числе виртуальный деструктор)
- */
- template < typename T, typename TPointerType = std::shared_ptr<T> > class IDecorator : public T
- {
- public:
- using PointerType = TPointerType;
- using Type = IDecorator<T, TPointerType>;
-
- ~IDecorator() override = default;
-
- /**
- * @brief Установить указатель на декорируемый класс
- * @details По возможности используйте метод Apply() как наиболее универсальный
- * @param base Указатель на декорируемый класс
- */
- void SetBase( PointerType const& base ) noexcept
- {
- mBase = base;
- }
-
- void SetBase( PointerType&& base ) noexcept
- {
- mBase = std::move( base );
- }
-
- /**
- * @brief Установить указатель на декорируемый класс (цепочка обязанностей)
- * @details См. https://refactoring.guru/ru/design-patterns/chain-of-responsibility/cpp/example
- * @details Цепь вызовов: декоратор1 -> декоратор2 -> базовый класс
- * @param base_or_decorator Указатель на декорируемый класс или целевой декоратор
- */
- Type& Apply( PointerType const& base_or_decorator ) noexcept
- {
- if( !base_or_decorator )
- {
- return *this;
- }
-
- SetBase( base_or_decorator );
- return GetApplyResult();
- }
-
- Type& Apply( PointerType&& base_or_decorator ) noexcept
- {
- if( !base_or_decorator )
- {
- return *this;
- }
-
- SetBase( std::move( base_or_decorator ) );
- return GetApplyResult();
- }
-
- private:
- Type& GetApplyResult() noexcept
- {
- auto as_decorator = dynamic_cast< Type * >( mBase.get() );
- if( as_decorator )
- {
- return *as_decorator;
- }
-
- return *this;
- }
-
- protected:
- PointerType mBase;
- };
-
- template < typename T, typename TDeleter = std::default_delete<T> > using IDecoratorUnique = IDecorator<T, std::unique_ptr<T, TDeleter> >;
-
-} // namespace sbis::devices::generic::types