28 #ifndef WEBSOCKETPP_CLIENT_ENDPOINT_HPP 29 #define WEBSOCKETPP_CLIENT_ENDPOINT_HPP 31 #include <websocketpp/endpoint.hpp> 32 #include <websocketpp/uri.hpp> 34 #include <websocketpp/logger/levels.hpp> 36 #include <websocketpp/common/system_error.hpp> 46 template <
typename config>
70 friend class connection<
config>;
72 explicit client() : endpoint_type(
false)
74 endpoint_type::m_alog->write(log::alevel::devel,
"client constructor");
90 if (location->get_secure() && !transport_type::is_secure()) {
91 ec = error::make_error_code(error::endpoint_not_secure);
92 return connection_ptr();
95 connection_ptr con = endpoint_type::create_connection();
98 ec = error::make_error_code(error::con_creation_failed);
102 con->set_uri(location);
104 ec = lib::error_code();
120 uri_ptr location = lib::make_shared<uri>(u);
122 if (!location->get_valid()) {
123 ec = error::make_error_code(error::invalid_uri);
124 return connection_ptr();
127 return get_connection(location, ec);
141 transport_type::async_connect(
142 lib::static_pointer_cast<transport_con_type>(con),
145 &type::handle_connect,
148 lib::placeholders::_1
156 void handle_connect(connection_ptr con, lib::error_code
const & ec) {
160 endpoint_type::m_elog->write(log::elevel::rerror,
161 "handle_connect error: "+ec.message());
163 endpoint_type::m_alog->write(log::alevel::connect,
164 "Successful connection");
connection_type::ptr connection_ptr
Type of a shared pointer to the connections this server will create.
connection_ptr get_connection(std::string const &u, lib::error_code &ec)
Get a new connection (string version)
endpoint< connection_type, config > endpoint_type
Type of the endpoint component of this server.
lib::weak_ptr< void > connection_hdl
A handle to uniquely identify a connection.
connection_ptr connect(connection_ptr con)
Begin the connection process for the given connection.
transport_con_type::ptr transport_con_ptr
Type of a shared pointer to the connection transport component.
transport_type::transport_con_type transport_con_type
Type of the connection transport component.
client< config > type
Type of this endpoint.
config::concurrency_type concurrency_type
Type of the endpoint concurrency component.
connection< config > connection_type
Type of the connections this server will create.
config::transport_type transport_type
Type of the endpoint transport component.
connection_ptr get_connection(uri_ptr location, lib::error_code &ec)
Get a new connection.