#pragma once #include #include #include #include "settings_storage.hpp" namespace smtp { using ConnectionPtr = std::shared_ptr; using InterfacePtr = std::shared_ptr; using ObjectServerPtr = std::shared_ptr; class SmtpService { public: SmtpService( ConnectionPtr connection ); ~SmtpService() = default; private: void FillStorageByDefault(); void CreateService( ConnectionPtr bus ); void CreateInterface( ConnectionPtr connection ); void AddProperties(); void AddMethods(); bool RefreshSettings(std::string const& user, std::string const& password, std::string const& host, std::string const& port); InterfacePtr mInterface; ObjectServerPtr mObjectServer; SettingsStorage mStorage; }; }