summaryrefslogtreecommitdiff
path: root/src/service
diff options
context:
space:
mode:
authorclaiff <claiff@mail.ru>2022-10-18 12:19:24 +0300
committerclaiff <claiff@mail.ru>2022-10-18 12:21:54 +0300
commit416a20b211539c8db06c26a2297de9109ef69f32 (patch)
treeac8056f021ffcd8b1dead8a6a1f796602674ed05 /src/service
parent04e97b30880c1c3252fe900ccac268267539e424 (diff)
downloadobmc-sila-smtp-416a20b211539c8db06c26a2297de9109ef69f32.tar.xz
add smtp queue messages
Diffstat (limited to 'src/service')
-rw-r--r--src/service/smtp.cpp15
-rw-r--r--src/service/smtp.hpp3
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;
};
}