rippled
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]

Public Member Functions

 HTTPClientImp (boost::asio::io_service &io_service, const unsigned short 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(const boost::system::error_code &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(const boost::system::error_code &ecResult, int iStatus, std::string const &strData)> complete)
 
void httpsNext ()
 
void handleDeadline (const boost::system::error_code &ecResult)
 
void handleShutdown (const boost::system::error_code &ecResult)
 
void handleResolve (const boost::system::error_code &ecResult, boost::asio::ip::tcp::resolver::iterator itrEndpoint)
 
void handleConnect (const boost::system::error_code &ecResult)
 
void handleRequest (const boost::system::error_code &ecResult)
 
void handleWrite (const boost::system::error_code &ecResult, std::size_t bytes_transferred)
 
void handleHeader (const boost::system::error_code &ecResult, std::size_t bytes_transferred)
 
void handleData (const boost::system::error_code &ecResult, std::size_t bytes_transferred)
 
void invokeComplete (const boost::system::error_code &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 (Config const &config, beast::Journal j)
 
static void get (bool bSSL, boost::asio::io_service &io_service, std::deque< std::string > deqSites, const unsigned short port, std::string const &strPath, std::size_t responseMax, std::chrono::seconds timeout, std::function< bool(const boost::system::error_code &ecResult, int iStatus, std::string const &strData)> complete, beast::Journal &j)
 
static void get (bool bSSL, boost::asio::io_service &io_service, std::string strSite, const unsigned short port, std::string const &strPath, std::size_t responseMax, std::chrono::seconds timeout, std::function< bool(const boost::system::error_code &ecResult, int iStatus, std::string const &strData)> complete, beast::Journal &j)
 
static void request (bool bSSL, boost::asio::io_service &io_service, std::string strSite, const unsigned short port, std::function< void(boost::asio::streambuf &sb, std::string const &strHost)> build, std::size_t responseMax, std::chrono::seconds timeout, std::function< bool(const boost::system::error_code &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< boost::asio::ip::tcp::resolver::query > mQuery
 
boost::asio::streambuf mRequest
 
boost::asio::streambuf mHeader
 
boost::asio::streambuf mResponse
 
std::string mBody
 
const unsigned short mPort
 
const std::size_t maxResponseSize_
 
int mStatus
 
std::function< void(boost::asio::streambuf &sb, std::string const &strHost)> mBuild
 
std::function< bool(const boost::system::error_code &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 49 of file HTTPClient.cpp.

Member Typedef Documentation

◆ pointer

Definition at line 509 of file HTTPClient.cpp.

Constructor & Destructor Documentation

◆ HTTPClientImp()

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

Definition at line 53 of file 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 71 of file 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(const boost::system::error_code &ecResult, int iStatus, std::string const &strData)>  complete 
)

Definition at line 90 of file 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(const boost::system::error_code &ecResult, int iStatus, std::string const &strData)>  complete 
)

Definition at line 113 of file HTTPClient.cpp.

◆ httpsNext()

void ripple::HTTPClientImp::httpsNext ( )

Definition at line 141 of file HTTPClient.cpp.

◆ handleDeadline()

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

Definition at line 181 of file HTTPClient.cpp.

◆ handleShutdown()

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

Definition at line 220 of file HTTPClient.cpp.

◆ handleResolve()

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

Definition at line 230 of file HTTPClient.cpp.

◆ handleConnect()

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

Definition at line 263 of file HTTPClient.cpp.

◆ handleRequest()

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

Definition at line 307 of file HTTPClient.cpp.

◆ handleWrite()

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

Definition at line 335 of file HTTPClient.cpp.

◆ handleHeader()

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

Definition at line 364 of file HTTPClient.cpp.

◆ handleData()

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

Definition at line 436 of file HTTPClient.cpp.

◆ invokeComplete()

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

Definition at line 468 of file HTTPClient.cpp.

◆ initializeSSLContext()

void ripple::HTTPClient::initializeSSLContext ( Config const &  config,
beast::Journal  j 
)
staticinherited

Definition at line 38 of file HTTPClient.cpp.

◆ get() [2/3]

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

Definition at line 543 of file HTTPClient.cpp.

◆ get() [3/3]

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

Definition at line 563 of file HTTPClient.cpp.

◆ request() [2/2]

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

Definition at line 585 of file HTTPClient.cpp.

Member Data Documentation

◆ mSSL

bool ripple::HTTPClientImp::mSSL
private

Definition at line 511 of file HTTPClient.cpp.

◆ mSocket

AutoSocket ripple::HTTPClientImp::mSocket
private

Definition at line 512 of file HTTPClient.cpp.

◆ mResolver

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

Definition at line 513 of file HTTPClient.cpp.

◆ mQuery

std::shared_ptr<boost::asio::ip::tcp::resolver::query> ripple::HTTPClientImp::mQuery
private

Definition at line 514 of file HTTPClient.cpp.

◆ mRequest

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

Definition at line 515 of file HTTPClient.cpp.

◆ mHeader

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

Definition at line 516 of file HTTPClient.cpp.

◆ mResponse

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

Definition at line 517 of file HTTPClient.cpp.

◆ mBody

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

Definition at line 518 of file HTTPClient.cpp.

◆ mPort

const unsigned short ripple::HTTPClientImp::mPort
private

Definition at line 519 of file HTTPClient.cpp.

◆ maxResponseSize_

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

Definition at line 520 of file HTTPClient.cpp.

◆ mStatus

int ripple::HTTPClientImp::mStatus
private

Definition at line 521 of file HTTPClient.cpp.

◆ mBuild

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

Definition at line 523 of file HTTPClient.cpp.

◆ mComplete

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

Definition at line 528 of file HTTPClient.cpp.

◆ mDeadline

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

Definition at line 530 of file HTTPClient.cpp.

◆ mShutdown

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

Definition at line 533 of file HTTPClient.cpp.

◆ mDeqSites

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

Definition at line 535 of file HTTPClient.cpp.

◆ mTimeout

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

Definition at line 536 of file HTTPClient.cpp.

◆ j_

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

Definition at line 537 of file HTTPClient.cpp.

◆ maxClientHeaderBytes

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

Definition at line 38 of file HTTPClient.h.