#pragma once #include #include #include #include "settings.hpp" namespace smtp::service { using ConnectionPtr = std::shared_ptr; using InterfacePtr = std::shared_ptr; using ObjectServerPtr = std::shared_ptr; 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; }; }