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 502 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 39 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 57 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 76 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 99 of file libxrpl/net/HTTPClient.cpp.

◆ httpsNext()

void xrpl::HTTPClientImp::httpsNext ( )

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

◆ handleDeadline()

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

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

◆ handleShutdown()

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

Definition at line 211 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 221 of file libxrpl/net/HTTPClient.cpp.

◆ handleConnect()

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

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

◆ handleRequest()

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

Definition at line 298 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 326 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 355 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 427 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 459 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 544 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 564 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 586 of file libxrpl/net/HTTPClient.cpp.

Member Data Documentation

◆ mSSL

bool xrpl::HTTPClientImp::mSSL
private

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

◆ mSocket

AutoSocket xrpl::HTTPClientImp::mSocket
private

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

◆ mResolver

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

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

◆ mQuery

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

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

◆ mRequest

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

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

◆ mHeader

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

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

◆ mResponse

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

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

◆ mBody

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

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

◆ mPort

unsigned short const xrpl::HTTPClientImp::mPort
private

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

◆ maxResponseSize_

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

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

◆ mStatus

int xrpl::HTTPClientImp::mStatus
private

Definition at line 522 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 524 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 529 of file libxrpl/net/HTTPClient.cpp.

◆ mDeadline

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

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

◆ mShutdown

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

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

◆ mDeqSites

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

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

◆ mTimeout

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

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

◆ j_

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

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

◆ maxClientHeaderBytes

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

Definition at line 24 of file HTTPClient.h.