Server.h 676 B

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef SERVER_H
  2. #define SERVER_H
  3. #include "Connection.h"
  4. #include "Util/Util.h"
  5. #include <asio.hpp>
  6. #include <memory>
  7. #include <string>
  8. namespace MailServer {
  9. class Server
  10. {
  11. public:
  12. Server(asio::io_service& ioService, unsigned short port, const std::string& path, const std::string& url);
  13. private:
  14. void StartSignalWait();
  15. void HandleSignalWait();
  16. void StartAccept();
  17. void HandleAccept(const asio::error_code& ec);
  18. asio::io_service& m_ioService;
  19. asio::signal_set m_signal;
  20. asio::ip::tcp::acceptor m_acceptor;
  21. asio::ip::tcp::socket m_socket;
  22. std::shared_ptr<Connection> m_connection;
  23. Util::Context m_context;
  24. };
  25. } // namespace MailServer
  26. #endif // SERVER_H