diff options
author | claiff <claiff@mail.ru> | 2022-10-18 12:19:24 +0300 |
---|---|---|
committer | claiff <claiff@mail.ru> | 2022-10-18 12:21:54 +0300 |
commit | 416a20b211539c8db06c26a2297de9109ef69f32 (patch) | |
tree | ac8056f021ffcd8b1dead8a6a1f796602674ed05 /src/service | |
parent | 04e97b30880c1c3252fe900ccac268267539e424 (diff) | |
download | obmc-sila-smtp-416a20b211539c8db06c26a2297de9109ef69f32.tar.xz |
add smtp queue messages
Diffstat (limited to 'src/service')
-rw-r--r-- | src/service/smtp.cpp | 15 | ||||
-rw-r--r-- | src/service/smtp.hpp | 3 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/service/smtp.cpp b/src/service/smtp.cpp index 3c71161..6c2f1ad 100644 --- a/src/service/smtp.cpp +++ b/src/service/smtp.cpp @@ -14,6 +14,10 @@ namespace smtp::service CreateMessengerInterface( connection ); CreateSettingsManagerInterface( connection ); CreateMailManagerInterface( connection ); + + message::Sender sender{mSettingsStorage, mMailTo, mMessageQueue}; + std::thread sender_message( &message::Sender::Send, std::move(sender) ); + sender_message.detach(); } // @@ -33,9 +37,9 @@ namespace smtp::service static constexpr char SMTP_INTERFACE_NAME[] = "xyz.openbmc_project.Messenger"; mObjectServer = std::make_shared<sdbusplus::asio::object_server>( connection ); - mMessengerInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME ); + mMessengerInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME ); - AddMessengerMethods(); + AddMessengerMethods(); mMessengerInterface->initialize(); } @@ -70,10 +74,9 @@ namespace smtp::service { static constexpr char SMTP_SEND_MESSAGE_METHOD_NAME[] = "SendMail"; - mMessengerInterface->register_method( SMTP_SEND_MESSAGE_METHOD_NAME, [this]( std::string const& mail_from, - std::string const& theme, - std::string const& text ) - { return message::Sender{ mSettingsStorage, mMailTo }.Send( mail_from, theme, text );}); + mMessengerInterface->register_method( SMTP_SEND_MESSAGE_METHOD_NAME, [this]( std::string const& theme, + std::string const& text ) + { mMessageQueue.Push({theme, text});}); } void Smtp::AddSettingsManagerMethods() diff --git a/src/service/smtp.hpp b/src/service/smtp.hpp index 47ff209..0d8aea1 100644 --- a/src/service/smtp.hpp +++ b/src/service/smtp.hpp @@ -7,6 +7,7 @@ #include "management/mail.hpp" #include "management/settings.hpp" +#include "message/thread_safe_queue.hpp" namespace smtp::service { @@ -35,5 +36,7 @@ namespace smtp::service ObjectServerPtr mObjectServer; manage::Settings mSettingsStorage; manage::Mail mMailTo; + + message::ThreadSafeQueue mMessageQueue; }; } |