Electroneum
Public Member Functions | Private Member Functions | Private Attributes | List of all members
crow::Server< Handler, Adaptor, Middlewares > Class Template Reference

#include <http_server.h>

Public Member Functions

 Server (Handler *handler, std::string bindaddr, uint16_t port, std::tuple< Middlewares... > *middlewares=nullptr, uint16_t concurrency=1, typename Adaptor::context *adaptor_ctx=nullptr)
 
void run ()
 
void stop ()
 

Private Member Functions

asio::io_service & pick_io_service ()
 
void do_accept ()
 

Private Attributes

asio::io_service io_service_
 
std::vector< std::unique_ptr< asio::io_service > > io_service_pool_
 
std::vector< detail::dumb_timer_queue * > timer_queue_pool_
 
std::vector< std::function< std::string()> > get_cached_date_str_pool_
 
tcp::acceptor acceptor_
 
boost::asio::signal_set signals_
 
Handler * handler_
 
uint16_t concurrency_ {1}
 
std::string server_name_ = "Crow/0.1"
 
uint16_t port_
 
std::string bindaddr_
 
unsigned int roundrobin_index_ {}
 
std::tuple< Middlewares... > * middlewares_
 
Adaptor::context * adaptor_ctx_
 

Constructor & Destructor Documentation

◆ Server()

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
crow::Server< Handler, Adaptor, Middlewares >::Server ( Handler *  handler,
std::string  bindaddr,
uint16_t  port,
std::tuple< Middlewares... > *  middlewares = nullptr,
uint16_t  concurrency = 1,
typename Adaptor::context *  adaptor_ctx = nullptr 
)
inline

Member Function Documentation

◆ do_accept()

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
void crow::Server< Handler, Adaptor, Middlewares >::do_accept ( )
inlineprivate

◆ pick_io_service()

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
asio::io_service& crow::Server< Handler, Adaptor, Middlewares >::pick_io_service ( )
inlineprivate

◆ run()

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
void crow::Server< Handler, Adaptor, Middlewares >::run ( )
inline

◆ stop()

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
void crow::Server< Handler, Adaptor, Middlewares >::stop ( )
inline

Member Data Documentation

◆ acceptor_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
tcp::acceptor crow::Server< Handler, Adaptor, Middlewares >::acceptor_
private

◆ adaptor_ctx_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
Adaptor::context* crow::Server< Handler, Adaptor, Middlewares >::adaptor_ctx_
private

◆ bindaddr_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
std::string crow::Server< Handler, Adaptor, Middlewares >::bindaddr_
private

◆ concurrency_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
uint16_t crow::Server< Handler, Adaptor, Middlewares >::concurrency_ {1}
private

◆ get_cached_date_str_pool_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
std::vector<std::function<std::string()> > crow::Server< Handler, Adaptor, Middlewares >::get_cached_date_str_pool_
private

◆ handler_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
Handler* crow::Server< Handler, Adaptor, Middlewares >::handler_
private

◆ io_service_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
asio::io_service crow::Server< Handler, Adaptor, Middlewares >::io_service_
private

◆ io_service_pool_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
std::vector<std::unique_ptr<asio::io_service> > crow::Server< Handler, Adaptor, Middlewares >::io_service_pool_
private

◆ middlewares_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
std::tuple<Middlewares...>* crow::Server< Handler, Adaptor, Middlewares >::middlewares_
private

◆ port_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
uint16_t crow::Server< Handler, Adaptor, Middlewares >::port_
private

◆ roundrobin_index_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
unsigned int crow::Server< Handler, Adaptor, Middlewares >::roundrobin_index_ {}
private

◆ server_name_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
std::string crow::Server< Handler, Adaptor, Middlewares >::server_name_ = "Crow/0.1"
private

◆ signals_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
boost::asio::signal_set crow::Server< Handler, Adaptor, Middlewares >::signals_
private

◆ timer_queue_pool_

template<typename Handler , typename Adaptor = SocketAdaptor, typename ... Middlewares>
std::vector<detail::dumb_timer_queue*> crow::Server< Handler, Adaptor, Middlewares >::timer_queue_pool_
private

The documentation for this class was generated from the following file: