rippled
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Types | Private Attributes | List of all members
ripple::HTTPClientImp Class Reference
Inheritance diagram for ripple::HTTPClientImp:
Inheritance graph
[legend]
Collaboration diagram for ripple::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 54 of file libxrpl/net/HTTPClient.cpp.

Member Typedef Documentation

◆ pointer

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

Constructor & Destructor Documentation

◆ HTTPClientImp()

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

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

Member Function Documentation

◆ makeGet()

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

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

◆ request() [1/2]

void ripple::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 95 of file libxrpl/net/HTTPClient.cpp.

◆ get() [1/3]

void ripple::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 118 of file libxrpl/net/HTTPClient.cpp.

◆ httpsNext()

void ripple::HTTPClientImp::httpsNext ( )

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

◆ handleDeadline()

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

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

◆ handleShutdown()

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

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

◆ handleResolve()

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

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

◆ handleConnect()

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

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

◆ handleRequest()

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

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

◆ handleWrite()

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

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

◆ handleHeader()

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

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

◆ handleData()

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

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

◆ invokeComplete()

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

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

◆ initializeSSLContext()

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

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

◆ get() [2/3]

void ripple::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 563 of file libxrpl/net/HTTPClient.cpp.

◆ get() [3/3]

void ripple::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 583 of file libxrpl/net/HTTPClient.cpp.

◆ request() [2/2]

void ripple::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 605 of file libxrpl/net/HTTPClient.cpp.

Member Data Documentation

◆ mSSL

bool ripple::HTTPClientImp::mSSL
private

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

◆ mSocket

AutoSocket ripple::HTTPClientImp::mSocket
private

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

◆ mResolver

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

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

◆ mQuery

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

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

◆ mRequest

boost::asio::streambuf ripple::HTTPClientImp::mRequest
private

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

◆ mHeader

boost::asio::streambuf ripple::HTTPClientImp::mHeader
private

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

◆ mResponse

boost::asio::streambuf ripple::HTTPClientImp::mResponse
private

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

◆ mBody

std::string ripple::HTTPClientImp::mBody
private

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

◆ mPort

unsigned short const ripple::HTTPClientImp::mPort
private

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

◆ maxResponseSize_

std::size_t const ripple::HTTPClientImp::maxResponseSize_
private

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

◆ mStatus

int ripple::HTTPClientImp::mStatus
private

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

◆ mBuild

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

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

◆ mComplete

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

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

◆ mDeadline

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

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

◆ mShutdown

boost::system::error_code ripple::HTTPClientImp::mShutdown
private

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

◆ mDeqSites

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

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

◆ mTimeout

std::chrono::seconds ripple::HTTPClientImp::mTimeout
private

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

◆ j_

beast::Journal ripple::HTTPClientImp::j_
private

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

◆ maxClientHeaderBytes

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

Definition at line 43 of file HTTPClient.h.