| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- #ifndef HTTP_HTTPSERVERIMPL_H
- #define HTTP_HTTPSERVERIMPL_H
- #include "HttpConnection.h"
- #include "HttpRequestHandler.h"
- #include <asio.hpp>
- #include <functional>
- #include <memory>
- #include <thread>
- #include <vector>
- namespace Http {
- class HttpServerImpl
- {
- public:
- HttpServerImpl(unsigned short port, HttpServer::CallbackMethod callback);
- ~HttpServerImpl();
- void Wait();
- private:
- void StartAccept();
- void HandleAccept(const asio::error_code& ec);
- void HandleStop();
- private:
- std::size_t m_threadPoolSize;
- std::vector<std::shared_ptr<std::thread> > m_threads;
- asio::io_service m_ioService;
- asio::signal_set m_signals;
- asio::ip::tcp::acceptor m_acceptor;
- std::shared_ptr<HttpConnection> m_connection;
- HttpRequestHandler m_requestHandler;
- };
- } // namespace Http
- #endif // HTTP_HTTPSERVERIMPL_H
|