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

#include <websocket.h>

Inheritance diagram for crow::websocket::Connection< Adaptor >:
Inheritance graph
[legend]
Collaboration diagram for crow::websocket::Connection< Adaptor >:
Collaboration graph
[legend]

Public Member Functions

 Connection (const crow::request &req, Adaptor &&adaptor, std::function< void(crow::websocket::connection &)> open_handler, std::function< void(crow::websocket::connection &, const std::string &, bool)> message_handler, std::function< void(crow::websocket::connection &, const std::string &)> close_handler, std::function< void(crow::websocket::connection &)> error_handler)
 
template<typename CompletionHandler >
void dispatch (CompletionHandler handler)
 
template<typename CompletionHandler >
void post (CompletionHandler handler)
 
void send_pong (const std::string &msg)
 
void send_binary (const std::string &msg) override
 
void send_text (const std::string &msg) override
 
void close (const std::string &msg) override
 
- Public Member Functions inherited from crow::websocket::connection
virtual ~connection ()
 

Protected Member Functions

std::string build_header (int opcode, size_t size)
 
void start (std::string &&hello)
 
void do_read ()
 
bool is_FIN ()
 
int opcode ()
 
void handle_fragment ()
 
void do_write ()
 
void check_destroy ()
 

Private Attributes

Adaptor adaptor_
 
std::vector< std::string > sending_buffers_
 
std::vector< std::string > write_buffers_
 
boost::array< char, 4096 > buffer_
 
bool is_binary_
 
std::string message_
 
std::string fragment_
 
WebSocketReadState state_ {WebSocketReadState::MiniHeader}
 
uint64_t remaining_length_ {0}
 
bool close_connection_ {false}
 
bool is_reading {false}
 
uint32_t mask_
 
uint16_t mini_header_
 
bool has_sent_close_ {false}
 
bool has_recv_close_ {false}
 
bool error_occured_ {false}
 
bool pong_received_ {false}
 
bool is_close_handler_called_ {false}
 
std::function< void(crow::websocket::connection &)> open_handler_
 
std::function< void(crow::websocket::connection &, const std::string &, bool)> message_handler_
 
std::function< void(crow::websocket::connection &, const std::string &)> close_handler_
 
std::function< void(crow::websocket::connection &)> error_handler_
 

Constructor & Destructor Documentation

◆ Connection()

template<typename Adaptor>
crow::websocket::Connection< Adaptor >::Connection ( const crow::request req,
Adaptor &&  adaptor,
std::function< void(crow::websocket::connection &)>  open_handler,
std::function< void(crow::websocket::connection &, const std::string &, bool)>  message_handler,
std::function< void(crow::websocket::connection &, const std::string &)>  close_handler,
std::function< void(crow::websocket::connection &)>  error_handler 
)
inline

Member Function Documentation

◆ build_header()

template<typename Adaptor>
std::string crow::websocket::Connection< Adaptor >::build_header ( int  opcode,
size_t  size 
)
inlineprotected

◆ check_destroy()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::check_destroy ( )
inlineprotected

◆ close()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::close ( const std::string &  msg)
inlineoverridevirtual

◆ dispatch()

template<typename Adaptor>
template<typename CompletionHandler >
void crow::websocket::Connection< Adaptor >::dispatch ( CompletionHandler  handler)
inline

◆ do_read()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::do_read ( )
inlineprotected

◆ do_write()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::do_write ( )
inlineprotected

◆ handle_fragment()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::handle_fragment ( )
inlineprotected

◆ is_FIN()

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::is_FIN ( )
inlineprotected

◆ opcode()

template<typename Adaptor>
int crow::websocket::Connection< Adaptor >::opcode ( )
inlineprotected

◆ post()

template<typename Adaptor>
template<typename CompletionHandler >
void crow::websocket::Connection< Adaptor >::post ( CompletionHandler  handler)
inline

◆ send_binary()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::send_binary ( const std::string &  msg)
inlineoverridevirtual

◆ send_pong()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::send_pong ( const std::string &  msg)
inline

◆ send_text()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::send_text ( const std::string &  msg)
inlineoverridevirtual

◆ start()

template<typename Adaptor>
void crow::websocket::Connection< Adaptor >::start ( std::string &&  hello)
inlineprotected

Member Data Documentation

◆ adaptor_

template<typename Adaptor>
Adaptor crow::websocket::Connection< Adaptor >::adaptor_
private

◆ buffer_

template<typename Adaptor>
boost::array<char, 4096> crow::websocket::Connection< Adaptor >::buffer_
private

◆ close_connection_

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::close_connection_ {false}
private

◆ close_handler_

template<typename Adaptor>
std::function<void(crow::websocket::connection&, const std::string&)> crow::websocket::Connection< Adaptor >::close_handler_
private

◆ error_handler_

template<typename Adaptor>
std::function<void(crow::websocket::connection&)> crow::websocket::Connection< Adaptor >::error_handler_
private

◆ error_occured_

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::error_occured_ {false}
private

◆ fragment_

template<typename Adaptor>
std::string crow::websocket::Connection< Adaptor >::fragment_
private

◆ has_recv_close_

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::has_recv_close_ {false}
private

◆ has_sent_close_

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::has_sent_close_ {false}
private

◆ is_binary_

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::is_binary_
private

◆ is_close_handler_called_

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::is_close_handler_called_ {false}
private

◆ is_reading

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::is_reading {false}
private

◆ mask_

template<typename Adaptor>
uint32_t crow::websocket::Connection< Adaptor >::mask_
private

◆ message_

template<typename Adaptor>
std::string crow::websocket::Connection< Adaptor >::message_
private

◆ message_handler_

template<typename Adaptor>
std::function<void(crow::websocket::connection&, const std::string&, bool)> crow::websocket::Connection< Adaptor >::message_handler_
private

◆ mini_header_

template<typename Adaptor>
uint16_t crow::websocket::Connection< Adaptor >::mini_header_
private

◆ open_handler_

template<typename Adaptor>
std::function<void(crow::websocket::connection&)> crow::websocket::Connection< Adaptor >::open_handler_
private

◆ pong_received_

template<typename Adaptor>
bool crow::websocket::Connection< Adaptor >::pong_received_ {false}
private

◆ remaining_length_

template<typename Adaptor>
uint64_t crow::websocket::Connection< Adaptor >::remaining_length_ {0}
private

◆ sending_buffers_

template<typename Adaptor>
std::vector<std::string> crow::websocket::Connection< Adaptor >::sending_buffers_
private

◆ state_

template<typename Adaptor>
WebSocketReadState crow::websocket::Connection< Adaptor >::state_ {WebSocketReadState::MiniHeader}
private

◆ write_buffers_

template<typename Adaptor>
std::vector<std::string> crow::websocket::Connection< Adaptor >::write_buffers_
private

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