Older/WebApplication/Application.h
amass 4b90a75a51
All checks were successful
Deploy / Build (push) Successful in 7m46s
add login cookie verify.
2024-12-26 23:10:41 +08:00

66 lines
1.5 KiB
C++

#ifndef __WEBAPPLICATION_H__
#define __WEBAPPLICATION_H__
#include "Singleton.h"
#include <Wt/WApplication.h>
#include <memory>
namespace Wt {
class WServer;
class WApplication;
class WEnvironment;
namespace Auth {
class AuthService;
class PasswordService;
} // namespace Auth
}; // namespace Wt
class Session;
class LoginPage;
class NavigationBar;
namespace WebToolkit {
class Application : public Wt::WApplication {
public:
Application(const Wt::WEnvironment &env, bool embedded);
~Application();
protected:
void authEvent();
void handlePathChange(const std::string &path);
private:
std::unique_ptr<Session> m_session;
std::string m_externalPath;
Wt::WContainerWidget *m_root = nullptr;
NavigationBar *m_navigationBar = nullptr;
std::unique_ptr<LoginPage> m_loginPage;
LoginPage *m_loginPageRef = nullptr;
};
class Server {
friend class Amass::Singleton<Server>;
public:
~Server();
void initializeAuthenticationService();
Wt::Auth::AuthService &authService();
const Wt::Auth::PasswordService &passwordService();
protected:
Server(uint16_t port, const std::string &applicationRoot, const std::string &documentRoot);
std::unique_ptr<Wt::WApplication> createApplication(const Wt::WEnvironment &env, bool embedded);
private:
std::unique_ptr<Wt::WServer> m_server;
std::unique_ptr<Wt::Auth::AuthService> m_authService;
std::unique_ptr<Wt::Auth::PasswordService> m_passwordService;
};
} // namespace WebToolkit
#endif // __WEBAPPLICATION_H__