#ifndef __WEBAPPLICATION_H__ #define __WEBAPPLICATION_H__ #include "Singleton.h" #include namespace Wt { class WServer; class WApplication; class WEnvironment; namespace Dbo { class SqlConnectionPool; } namespace Auth { class AuthService; class PasswordService; } // namespace Auth }; // namespace Wt class WebApplication { friend class Amass::Singleton; public: ~WebApplication(); void initializeAuthenticationService(); const Wt::Auth::AuthService &authService(); const Wt::Auth::PasswordService &passwordService(); protected: WebApplication(uint16_t port); static std::unique_ptr createConnectionPool(const std::string &sqlite3); std::unique_ptr createApplication(const Wt::WEnvironment &env, bool embedded); private: std::unique_ptr m_server; std::unique_ptr m_sqlConnectionPool; std::unique_ptr m_authService; std::unique_ptr m_passwordService; }; #endif // __WEBAPPLICATION_H__