.. _program_listing_file__tmp_ws_src_async_web_server_cpp_include_async_web_server_cpp_websocket_connection.hpp: Program Listing for File websocket_connection.hpp ================================================= |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/async_web_server_cpp/include/async_web_server_cpp/websocket_connection.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef CPP_WEB_SERVER_WEBSOCKET_CONNECTION_HPP #define CPP_WEB_SERVER_WEBSOCKET_CONNECTION_HPP #include "async_web_server_cpp/http_connection.hpp" #include "async_web_server_cpp/websocket_message.hpp" #include #include #include #include #include namespace async_web_server_cpp { class WebsocketHttpRequestHandler; class WebsocketConnection; typedef boost::shared_ptr WebsocketConnectionPtr; typedef boost::weak_ptr WebsocketConnectionWeakPtr; class WebsocketConnection : public boost::enable_shared_from_this, private boost::noncopyable { public: explicit WebsocketConnection(HttpConnectionPtr connection); typedef boost::function MessageHandler; bool sendTextMessage(const std::string& content); bool sendPingMessage(const std::string& content = ""); bool sendMessage(const WebsocketMessage& message); bool sendFrame(WebsocketFrame& frame); private: static void static_handle_read(WebsocketConnectionWeakPtr weak_this, const char* begin, const char* end); void handle_read(const char* begin, const char* end); HttpConnectionPtr connection_; void set_message_handler(MessageHandler& handler); MessageHandler handler_; WebsocketFrame frame_; WebsocketMessage message_; WebsocketFrameParser frame_parser_; WebsocketFrameBuffer frame_buffer_; friend class WebsocketHttpRequestHandler; }; } // namespace async_web_server_cpp #endif