diff options
author | eportnov <eportnov@ibs.ru> | 2022-09-12 16:46:49 +0300 |
---|---|---|
committer | eportnov <eportnov@ibs.ru> | 2022-09-12 16:46:49 +0300 |
commit | df33492b80495fd36a1a488c0b0a39753f1df415 (patch) | |
tree | c465900180840832e241ca5419dd90b429459588 /src/service/smtp.hpp | |
parent | 9fa4addff6f90a8b5697a594e034f5517d64dd25 (diff) | |
parent | cdb7ae4c729b6a6c51b57eeefd21574952a4b767 (diff) | |
download | obmc-sila-smtp-df33492b80495fd36a1a488c0b0a39753f1df415.tar.xz |
Merge branch 'feature/refactor'
Diffstat (limited to 'src/service/smtp.hpp')
-rw-r--r-- | src/service/smtp.hpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/service/smtp.hpp b/src/service/smtp.hpp new file mode 100644 index 0000000..c311645 --- /dev/null +++ b/src/service/smtp.hpp @@ -0,0 +1,35 @@ +#pragma once + +#include <boost/asio/io_service.hpp> + +#include <sdbusplus/asio/connection.hpp> +#include <sdbusplus/asio/object_server.hpp> + +#include "settings.hpp" + +namespace smtp::service +{ + using ConnectionPtr = std::shared_ptr<sdbusplus::asio::connection>; + using InterfacePtr = std::shared_ptr<sdbusplus::asio::dbus_interface>; + using ObjectServerPtr = std::shared_ptr<sdbusplus::asio::object_server>; + + class Smtp + { + public: + Smtp( ConnectionPtr connection ); + ~Smtp() = default; + private: + void FillStorageByDefault(); + void CreateService( ConnectionPtr bus ); + void CreateInterface( ConnectionPtr connection ); + void AddProperties(); + void AddMethods(); + bool RefreshSettings( bool is_need_auth, bool is_need_ssl, + std::string const& user, std::string const& password, + std::string const& host, std::string const& port ); + + InterfacePtr mInterface; + ObjectServerPtr mObjectServer; + Settings mSettingsStorage; + }; +} |