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

#include <http_connection.h>

Collaboration diagram for crow::Connection< Adaptor, Handler, Middlewares >:
Collaboration graph
[legend]

Public Member Functions

 Connection (boost::asio::io_service &io_service, Handler *handler, const std::string &server_name, std::tuple< Middlewares... > *middlewares, std::function< std::string()> &get_cached_date_str_f, detail::dumb_timer_queue &timer_queue, typename Adaptor::context *adaptor_ctx_)
 
 ~Connection ()
 
decltype(std::declval< Adaptor >().raw_socket()) & socket ()
 
void start ()
 
void handle_header ()
 
void handle ()
 
void complete_request ()
 

Private Member Functions

void do_read ()
 
void do_write ()
 
void check_destroy ()
 
void cancel_deadline_timer ()
 
void start_deadline ()
 

Private Attributes

Adaptor adaptor_
 
Handler * handler_
 
boost::array< char, 4096 > buffer_
 
HTTPParser< Connectionparser_
 
request req_
 
response res
 
bool close_connection_ = false
 
const std::string & server_name_
 
std::vector< boost::asio::const_buffer > buffers_
 
std::string content_length_
 
std::string date_str_
 
std::string res_body_copy_
 
detail::dumb_timer_queue::key timer_cancel_key_
 
bool is_reading {}
 
bool is_writing {}
 
bool need_to_call_after_handlers_ {}
 
bool need_to_start_read_after_complete_ {}
 
bool add_keep_alive_ {}
 
std::tuple< Middlewares... > * middlewares_
 
detail::context< Middlewares... > ctx_
 
std::function< std::string()> & get_cached_date_str
 
detail::dumb_timer_queuetimer_queue
 

Constructor & Destructor Documentation

◆ Connection()

template<typename Adaptor , typename Handler , typename ... Middlewares>
crow::Connection< Adaptor, Handler, Middlewares >::Connection ( boost::asio::io_service &  io_service,
Handler *  handler,
const std::string &  server_name,
std::tuple< Middlewares... > *  middlewares,
std::function< std::string()> &  get_cached_date_str_f,
detail::dumb_timer_queue timer_queue,
typename Adaptor::context *  adaptor_ctx_ 
)
inline

◆ ~Connection()

template<typename Adaptor , typename Handler , typename ... Middlewares>
crow::Connection< Adaptor, Handler, Middlewares >::~Connection ( )
inline

Member Function Documentation

◆ cancel_deadline_timer()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::cancel_deadline_timer ( )
inlineprivate

◆ check_destroy()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::check_destroy ( )
inlineprivate

◆ complete_request()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::complete_request ( )
inline

◆ do_read()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::do_read ( )
inlineprivate

◆ do_write()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::do_write ( )
inlineprivate

◆ handle()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::handle ( )
inline

◆ handle_header()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::handle_header ( )
inline

◆ socket()

template<typename Adaptor , typename Handler , typename ... Middlewares>
decltype(std::declval<Adaptor>().raw_socket()) & crow::Connection< Adaptor, Handler, Middlewares >::socket ( )
inline

◆ start()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::start ( )
inline

◆ start_deadline()

template<typename Adaptor , typename Handler , typename ... Middlewares>
void crow::Connection< Adaptor, Handler, Middlewares >::start_deadline ( )
inlineprivate

Member Data Documentation

◆ adaptor_

template<typename Adaptor , typename Handler , typename ... Middlewares>
Adaptor crow::Connection< Adaptor, Handler, Middlewares >::adaptor_
private

◆ add_keep_alive_

template<typename Adaptor , typename Handler , typename ... Middlewares>
bool crow::Connection< Adaptor, Handler, Middlewares >::add_keep_alive_ {}
private

◆ buffer_

template<typename Adaptor , typename Handler , typename ... Middlewares>
boost::array<char, 4096> crow::Connection< Adaptor, Handler, Middlewares >::buffer_
private

◆ buffers_

template<typename Adaptor , typename Handler , typename ... Middlewares>
std::vector<boost::asio::const_buffer> crow::Connection< Adaptor, Handler, Middlewares >::buffers_
private

◆ close_connection_

template<typename Adaptor , typename Handler , typename ... Middlewares>
bool crow::Connection< Adaptor, Handler, Middlewares >::close_connection_ = false
private

◆ content_length_

template<typename Adaptor , typename Handler , typename ... Middlewares>
std::string crow::Connection< Adaptor, Handler, Middlewares >::content_length_
private

◆ ctx_

template<typename Adaptor , typename Handler , typename ... Middlewares>
detail::context<Middlewares...> crow::Connection< Adaptor, Handler, Middlewares >::ctx_
private

◆ date_str_

template<typename Adaptor , typename Handler , typename ... Middlewares>
std::string crow::Connection< Adaptor, Handler, Middlewares >::date_str_
private

◆ get_cached_date_str

template<typename Adaptor , typename Handler , typename ... Middlewares>
std::function<std::string()>& crow::Connection< Adaptor, Handler, Middlewares >::get_cached_date_str
private

◆ handler_

template<typename Adaptor , typename Handler , typename ... Middlewares>
Handler* crow::Connection< Adaptor, Handler, Middlewares >::handler_
private

◆ is_reading

template<typename Adaptor , typename Handler , typename ... Middlewares>
bool crow::Connection< Adaptor, Handler, Middlewares >::is_reading {}
private

◆ is_writing

template<typename Adaptor , typename Handler , typename ... Middlewares>
bool crow::Connection< Adaptor, Handler, Middlewares >::is_writing {}
private

◆ middlewares_

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

◆ need_to_call_after_handlers_

template<typename Adaptor , typename Handler , typename ... Middlewares>
bool crow::Connection< Adaptor, Handler, Middlewares >::need_to_call_after_handlers_ {}
private

◆ need_to_start_read_after_complete_

template<typename Adaptor , typename Handler , typename ... Middlewares>
bool crow::Connection< Adaptor, Handler, Middlewares >::need_to_start_read_after_complete_ {}
private

◆ parser_

template<typename Adaptor , typename Handler , typename ... Middlewares>
HTTPParser<Connection> crow::Connection< Adaptor, Handler, Middlewares >::parser_
private

◆ req_

template<typename Adaptor , typename Handler , typename ... Middlewares>
request crow::Connection< Adaptor, Handler, Middlewares >::req_
private

◆ res

template<typename Adaptor , typename Handler , typename ... Middlewares>
response crow::Connection< Adaptor, Handler, Middlewares >::res
private

◆ res_body_copy_

template<typename Adaptor , typename Handler , typename ... Middlewares>
std::string crow::Connection< Adaptor, Handler, Middlewares >::res_body_copy_
private

◆ server_name_

template<typename Adaptor , typename Handler , typename ... Middlewares>
const std::string& crow::Connection< Adaptor, Handler, Middlewares >::server_name_
private

◆ timer_cancel_key_

template<typename Adaptor , typename Handler , typename ... Middlewares>
detail::dumb_timer_queue::key crow::Connection< Adaptor, Handler, Middlewares >::timer_cancel_key_
private

◆ timer_queue

template<typename Adaptor , typename Handler , typename ... Middlewares>
detail::dumb_timer_queue& crow::Connection< Adaptor, Handler, Middlewares >::timer_queue
private

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