Clio develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
util::requests::WsConnectionBuilder Class Reference

Builder for WebSocket connections. More...

#include <WsConnection.hpp>

Public Member Functions

 WsConnectionBuilder (std::string host, std::string port)
 Create a new connection builder.
 
WsConnectionBuilderaddHeader (HttpHeader header)
 Add a header to the request.
 
WsConnectionBuilderaddHeaders (std::vector< HttpHeader > headers)
 Add multiple headers to the request.
 
WsConnectionBuildersetTarget (std::string target)
 Set the target of the request.
 
WsConnectionBuildersetConnectionTimeout (std::chrono::steady_clock::duration timeout)
 Set the timeout for connection establishing operations. Default is 5 seconds.
 
WsConnectionBuildersetWsHandshakeTimeout (std::chrono::steady_clock::duration timeout)
 Set the timeout for WebSocket handshake. Default is 5 seconds.
 
std::expected< WsConnectionPtr, RequestErrorsslConnect (boost::asio::yield_context yield) const
 Connect to the host using SSL asynchronously.
 
std::expected< WsConnectionPtr, RequestErrorplainConnect (boost::asio::yield_context yield) const
 Connect to the host without SSL asynchronously.
 
std::expected< WsConnectionPtr, RequestErrorconnect (boost::asio::yield_context yield) const
 Connect to the host trying SSL first then plain if SSL fails.
 
template<typename StreamDataType >
std::expected< WsConnectionPtr, RequestErrorconnectImpl (StreamDataType &&streamData, asio::yield_context yield) const
 Connect to the host using web socket asynchronously.
 

Static Public Attributes

static constexpr std::chrono::seconds kDEFAULT_TIMEOUT {5}
 

Detailed Description

Builder for WebSocket connections.

Constructor & Destructor Documentation

◆ WsConnectionBuilder()

util::requests::WsConnectionBuilder::WsConnectionBuilder ( std::string host,
std::string port )

Create a new connection builder.

Parameters
hostHost to connect to
portPort to connect to

Member Function Documentation

◆ addHeader()

WsConnectionBuilder & util::requests::WsConnectionBuilder::addHeader ( HttpHeader header)

Add a header to the request.

Parameters
headerheader to add
Returns
Reference to self

◆ addHeaders()

WsConnectionBuilder & util::requests::WsConnectionBuilder::addHeaders ( std::vector< HttpHeader > headers)

Add multiple headers to the request.

Parameters
headersheaders to add
Returns
Reference to self

◆ connect()

std::expected< WsConnectionPtr, RequestError > util::requests::WsConnectionBuilder::connect ( boost::asio::yield_context yield) const

Connect to the host trying SSL first then plain if SSL fails.

Parameters
yieldyield context
Returns
WebSocket connection or error

◆ connectImpl()

template<typename StreamDataType >
std::expected< WsConnectionPtr, RequestError > util::requests::WsConnectionBuilder::connectImpl ( StreamDataType && streamData,
asio::yield_context yield ) const

Connect to the host using web socket asynchronously.

Template Parameters
StreamDataTypeThe type of the stream data
Parameters
streamDataThe stream data
yieldThe coroutine context
Returns
WebSocket connection or error

◆ plainConnect()

std::expected< WsConnectionPtr, RequestError > util::requests::WsConnectionBuilder::plainConnect ( boost::asio::yield_context yield) const

Connect to the host without SSL asynchronously.

Parameters
yieldyield context
Returns
WebSocket connection or error

◆ setConnectionTimeout()

WsConnectionBuilder & util::requests::WsConnectionBuilder::setConnectionTimeout ( std::chrono::steady_clock::duration timeout)

Set the timeout for connection establishing operations. Default is 5 seconds.

Parameters
timeouttimeout to set
Returns
Reference to self

◆ setTarget()

WsConnectionBuilder & util::requests::WsConnectionBuilder::setTarget ( std::string target)

Set the target of the request.

Parameters
targettarget to set
Returns
Reference to self

◆ setWsHandshakeTimeout()

WsConnectionBuilder & util::requests::WsConnectionBuilder::setWsHandshakeTimeout ( std::chrono::steady_clock::duration timeout)

Set the timeout for WebSocket handshake. Default is 5 seconds.

Parameters
timeouttimeout to set
Returns
Reference to self

◆ sslConnect()

std::expected< WsConnectionPtr, RequestError > util::requests::WsConnectionBuilder::sslConnect ( boost::asio::yield_context yield) const

Connect to the host using SSL asynchronously.

Parameters
yieldyield context
Returns
WebSocket connection or error

Member Data Documentation

◆ kDEFAULT_TIMEOUT

std::chrono::seconds util::requests::WsConnectionBuilder::kDEFAULT_TIMEOUT {5}
staticconstexpr

Default timeout for connecting


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