rippled
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Private Attributes | List of all members
xrpl::HTTPClientImp Class Reference
Inheritance diagram for xrpl::HTTPClientImp:
Inheritance graph
[legend]
Collaboration diagram for xrpl::HTTPClientImp:
Collaboration graph
[legend]

Classes

struct  Query
 

Public Member Functions

 HTTPClientImp (boost::asio::io_context &io_context, unsigned short const port, std::size_t maxResponseSize, beast::Journal &j)
 
void makeGet (std::string const &strPath, boost::asio::streambuf &sb, std::string const &strHost)
 
void request (bool bSSL, std::deque< std::string > deqSites, std::function< void(boost::asio::streambuf &sb, std::string const &strHost)> build, std::chrono::seconds timeout, std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)> complete)
 
void get (bool bSSL, std::deque< std::string > deqSites, std::string const &strPath, std::chrono::seconds timeout, std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)> complete)
 
void httpsNext ()
 
void handleDeadline (boost::system::error_code const &ecResult)
 
void handleShutdown (boost::system::error_code const &ecResult)
 
void handleResolve (boost::system::error_code const &ecResult, boost::asio::ip::tcp::resolver::results_type result)
 
void handleConnect (boost::system::error_code const &ecResult)
 
void handleRequest (boost::system::error_code const &ecResult)
 
void handleWrite (boost::system::error_code const &ecResult, std::size_t bytes_transferred)
 
void handleHeader (boost::system::error_code const &ecResult, std::size_t bytes_transferred)
 
void handleData (boost::system::error_code const &ecResult, std::size_t bytes_transferred)
 
void invokeComplete (boost::system::error_code const &ecResult, int iStatus=0, std::string const &strData="")
 
shared_from_this (T... args)
 
weak_from_this (T... args)
 

Static Public Member Functions

static void initializeSSLContext (std::string const &sslVerifyDir, std::string const &sslVerifyFile, bool sslVerify, beast::Journal j)
 
static void get (bool bSSL, boost::asio::io_context &io_context, std::deque< std::string > deqSites, unsigned short const port, std::string const &strPath, std::size_t responseMax, std::chrono::seconds timeout, std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)> complete, beast::Journal &j)
 
static void get (bool bSSL, boost::asio::io_context &io_context, std::string strSite, unsigned short const port, std::string const &strPath, std::size_t responseMax, std::chrono::seconds timeout, std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)> complete, beast::Journal &j)
 
static void request (bool bSSL, boost::asio::io_context &io_context, std::string strSite, unsigned short const port, std::function< void(boost::asio::streambuf &sb, std::string const &strHost)> build, std::size_t responseMax, std::chrono::seconds timeout, std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)> complete, beast::Journal &j)
 

Static Public Attributes

static constexpr auto maxClientHeaderBytes = kilobytes(32)
 

Private Types

using pointer = std::shared_ptr< HTTPClient >
 

Private Attributes

bool mSSL
 
AutoSocket mSocket
 
boost::asio::ip::tcp::resolver mResolver
 
std::shared_ptr< QuerymQuery
 
boost::asio::streambuf mRequest
 
boost::asio::streambuf mHeader
 
boost::asio::streambuf mResponse
 
std::string mBody
 
unsigned short const mPort
 
std::size_t const maxResponseSize_
 
int mStatus
 
std::function< void(boost::asio::streambuf &sb, std::string const &strHost)> mBuild
 
std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)> mComplete
 
boost::asio::basic_waitable_timer< std::chrono::steady_clockmDeadline
 
boost::system::error_code mShutdown
 
std::deque< std::stringmDeqSites
 
std::chrono::seconds mTimeout
 
beast::Journal j_
 

Detailed Description

Definition at line 35 of file libxrpl/net/HTTPClient.cpp.

Member Typedef Documentation

◆ pointer

Definition at line 432 of file libxrpl/net/HTTPClient.cpp.

Constructor & Destructor Documentation

◆ HTTPClientImp()

xrpl::HTTPClientImp::HTTPClientImp ( boost::asio::io_context &  io_context,
unsigned short const  port,
std::size_t  maxResponseSize,
beast::Journal j 
)

Definition at line 38 of file libxrpl/net/HTTPClient.cpp.

Member Function Documentation

◆ makeGet()

void xrpl::HTTPClientImp::makeGet ( std::string const &  strPath,
boost::asio::streambuf &  sb,
std::string const &  strHost 
)

Definition at line 56 of file libxrpl/net/HTTPClient.cpp.

◆ request() [1/2]

void xrpl::HTTPClientImp::request ( bool  bSSL,
std::deque< std::string deqSites,
std::function< void(boost::asio::streambuf &sb, std::string const &strHost)>  build,
std::chrono::seconds  timeout,
std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)>  complete 
)

Definition at line 72 of file libxrpl/net/HTTPClient.cpp.

◆ get() [1/3]

void xrpl::HTTPClientImp::get ( bool  bSSL,
std::deque< std::string deqSites,
std::string const &  strPath,
std::chrono::seconds  timeout,
std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)>  complete 
)

Definition at line 92 of file libxrpl/net/HTTPClient.cpp.

◆ httpsNext()

void xrpl::HTTPClientImp::httpsNext ( )

Definition at line 114 of file libxrpl/net/HTTPClient.cpp.

◆ handleDeadline()

void xrpl::HTTPClientImp::handleDeadline ( boost::system::error_code const &  ecResult)

Definition at line 151 of file libxrpl/net/HTTPClient.cpp.

◆ handleShutdown()

void xrpl::HTTPClientImp::handleShutdown ( boost::system::error_code const &  ecResult)

Definition at line 185 of file libxrpl/net/HTTPClient.cpp.

◆ handleResolve()

void xrpl::HTTPClientImp::handleResolve ( boost::system::error_code const &  ecResult,
boost::asio::ip::tcp::resolver::results_type  result 
)

Definition at line 194 of file libxrpl/net/HTTPClient.cpp.

◆ handleConnect()

void xrpl::HTTPClientImp::handleConnect ( boost::system::error_code const &  ecResult)

Definition at line 219 of file libxrpl/net/HTTPClient.cpp.

◆ handleRequest()

void xrpl::HTTPClientImp::handleRequest ( boost::system::error_code const &  ecResult)

Definition at line 258 of file libxrpl/net/HTTPClient.cpp.

◆ handleWrite()

void xrpl::HTTPClientImp::handleWrite ( boost::system::error_code const &  ecResult,
std::size_t  bytes_transferred 
)

Definition at line 283 of file libxrpl/net/HTTPClient.cpp.

◆ handleHeader()

void xrpl::HTTPClientImp::handleHeader ( boost::system::error_code const &  ecResult,
std::size_t  bytes_transferred 
)

Definition at line 307 of file libxrpl/net/HTTPClient.cpp.

◆ handleData()

void xrpl::HTTPClientImp::handleData ( boost::system::error_code const &  ecResult,
std::size_t  bytes_transferred 
)

Definition at line 367 of file libxrpl/net/HTTPClient.cpp.

◆ invokeComplete()

void xrpl::HTTPClientImp::invokeComplete ( boost::system::error_code const &  ecResult,
int  iStatus = 0,
std::string const &  strData = "" 
)

Definition at line 395 of file libxrpl/net/HTTPClient.cpp.

◆ initializeSSLContext()

void xrpl::HTTPClient::initializeSSLContext ( std::string const &  sslVerifyDir,
std::string const &  sslVerifyFile,
bool  sslVerify,
beast::Journal  j 
)
staticinherited

Definition at line 20 of file libxrpl/net/HTTPClient.cpp.

◆ get() [2/3]

void xrpl::HTTPClient::get ( bool  bSSL,
boost::asio::io_context &  io_context,
std::deque< std::string deqSites,
unsigned short const  port,
std::string const &  strPath,
std::size_t  responseMax,
std::chrono::seconds  timeout,
std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)>  complete,
beast::Journal j 
)
staticinherited

Definition at line 469 of file libxrpl/net/HTTPClient.cpp.

◆ get() [3/3]

void xrpl::HTTPClient::get ( bool  bSSL,
boost::asio::io_context &  io_context,
std::string  strSite,
unsigned short const  port,
std::string const &  strPath,
std::size_t  responseMax,
std::chrono::seconds  timeout,
std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)>  complete,
beast::Journal j 
)
staticinherited

Definition at line 485 of file libxrpl/net/HTTPClient.cpp.

◆ request() [2/2]

void xrpl::HTTPClient::request ( bool  bSSL,
boost::asio::io_context &  io_context,
std::string  strSite,
unsigned short const  port,
std::function< void(boost::asio::streambuf &sb, std::string const &strHost)>  build,
std::size_t  responseMax,
std::chrono::seconds  timeout,
std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)>  complete,
beast::Journal j 
)
staticinherited

Definition at line 503 of file libxrpl/net/HTTPClient.cpp.

Member Data Documentation

◆ mSSL

bool xrpl::HTTPClientImp::mSSL
private

Definition at line 434 of file libxrpl/net/HTTPClient.cpp.

◆ mSocket

AutoSocket xrpl::HTTPClientImp::mSocket
private

Definition at line 435 of file libxrpl/net/HTTPClient.cpp.

◆ mResolver

boost::asio::ip::tcp::resolver xrpl::HTTPClientImp::mResolver
private

Definition at line 436 of file libxrpl/net/HTTPClient.cpp.

◆ mQuery

std::shared_ptr<Query> xrpl::HTTPClientImp::mQuery
private

Definition at line 444 of file libxrpl/net/HTTPClient.cpp.

◆ mRequest

boost::asio::streambuf xrpl::HTTPClientImp::mRequest
private

Definition at line 446 of file libxrpl/net/HTTPClient.cpp.

◆ mHeader

boost::asio::streambuf xrpl::HTTPClientImp::mHeader
private

Definition at line 447 of file libxrpl/net/HTTPClient.cpp.

◆ mResponse

boost::asio::streambuf xrpl::HTTPClientImp::mResponse
private

Definition at line 448 of file libxrpl/net/HTTPClient.cpp.

◆ mBody

std::string xrpl::HTTPClientImp::mBody
private

Definition at line 449 of file libxrpl/net/HTTPClient.cpp.

◆ mPort

unsigned short const xrpl::HTTPClientImp::mPort
private

Definition at line 450 of file libxrpl/net/HTTPClient.cpp.

◆ maxResponseSize_

std::size_t const xrpl::HTTPClientImp::maxResponseSize_
private

Definition at line 451 of file libxrpl/net/HTTPClient.cpp.

◆ mStatus

int xrpl::HTTPClientImp::mStatus
private

Definition at line 452 of file libxrpl/net/HTTPClient.cpp.

◆ mBuild

std::function<void(boost::asio::streambuf& sb, std::string const& strHost)> xrpl::HTTPClientImp::mBuild
private

Definition at line 453 of file libxrpl/net/HTTPClient.cpp.

◆ mComplete

std::function<bool(boost::system::error_code const& ecResult, int iStatus, std::string const& strData)> xrpl::HTTPClientImp::mComplete
private

Definition at line 454 of file libxrpl/net/HTTPClient.cpp.

◆ mDeadline

boost::asio::basic_waitable_timer<std::chrono::steady_clock> xrpl::HTTPClientImp::mDeadline
private

Definition at line 456 of file libxrpl/net/HTTPClient.cpp.

◆ mShutdown

boost::system::error_code xrpl::HTTPClientImp::mShutdown
private

Definition at line 459 of file libxrpl/net/HTTPClient.cpp.

◆ mDeqSites

std::deque<std::string> xrpl::HTTPClientImp::mDeqSites
private

Definition at line 461 of file libxrpl/net/HTTPClient.cpp.

◆ mTimeout

std::chrono::seconds xrpl::HTTPClientImp::mTimeout
private

Definition at line 462 of file libxrpl/net/HTTPClient.cpp.

◆ j_

beast::Journal xrpl::HTTPClientImp::j_
private

Definition at line 463 of file libxrpl/net/HTTPClient.cpp.

◆ maxClientHeaderBytes

constexpr auto xrpl::HTTPClient::maxClientHeaderBytes = kilobytes(32)
staticconstexprinherited

Definition at line 23 of file HTTPClient.h.