Sese Framework  3.0.0
A cross-platform framework
Loading...
Searching...
No Matches
sese::net::http::HttpClient::Impl Class Reference

HTTP/1.1 client based on ASIO. More...

Inheritance diagram for sese::net::http::HttpClient::Impl:
sese::io::InputStream sese::io::OutputStream sese::net::http::HttpClient::SSLImpl

Public Member Functions

 Impl (const IPAddress::Ptr &addr, Request::Ptr req)
 
 ~Impl () override
 
bool request ()
 
void reset ()
 Reset body-related settings.
 
virtual bool handshake ()
 
virtual bool shutdown ()
 
bool writeHeader (io::ByteBuilder &builder)
 
bool writeBodyByCallback ()
 
bool writeBodyByData ()
 
bool writeBodyByAuto ()
 
bool readBodyByCallback (size_t expect)
 
bool readBodyByData (size_t expect)
 
int64_t read (void *buf, size_t len) override
 
int64_t write (const void *buf, size_t len) override
 
int getLastError () const
 
std::string getLastErrorString () const
 
- Public Member Functions inherited from sese::io::InputStream
virtual ~InputStream () noexcept=default
 
- Public Member Functions inherited from sese::io::OutputStream
virtual ~OutputStream () noexcept=default
 
int64_t write (const std::string_view &buffer)
 
int64_t write (const text::StringView &buffer)
 
template<typename T >
int64_t write (std::vector< T > &buffer)
 
template<typename T , size_t N>
int64_t write (std::array< T, N > &buffer)
 

Public Attributes

IPAddress::Ptr address
 
CookieMap::Ptr cookies
 
asio::error_code code {}
 
asio::io_context ioContext
 
asio::ip::tcp::socket socket
 
bool first = true
 
Request::Ptr req = nullptr
 
Response::Ptr resp = nullptr
 
size_t expect_total = 0
 
io::PeekableStreamread_data = nullptr
 
OutputStream * write_data = nullptr
 
WriteCallback write_callback
 
ReadCallback read_callback
 

Additional Inherited Members

- Public Types inherited from sese::io::InputStream
typedef std::shared_ptr< InputStreamPtr
 
- Public Types inherited from sese::io::OutputStream
typedef std::shared_ptr< OutputStreamPtr
 

Detailed Description

HTTP/1.1 client based on ASIO.

Constructor & Destructor Documentation

◆ Impl()

sese::net::http::HttpClient::Impl::Impl ( const IPAddress::Ptr & addr,
Request::Ptr req )
inline

References address, cookies, req, reset(), and resp.

◆ ~Impl()

sese::net::http::HttpClient::Impl::~Impl ( )
inlineoverride

References socket.

Member Function Documentation

◆ getLastError()

int sese::net::http::HttpClient::Impl::getLastError ( ) const
inline

References code.

◆ getLastErrorString()

std::string sese::net::http::HttpClient::Impl::getLastErrorString ( ) const
inline

References code.

◆ handshake()

virtual bool sese::net::http::HttpClient::Impl::handshake ( )
inlinevirtual

Reimplemented in sese::net::http::HttpClient::SSLImpl.

Referenced by request().

◆ read()

int64_t sese::net::http::HttpClient::Impl::read ( void * buf,
size_t len )
inlineoverridevirtual

Implements sese::io::InputStream.

Reimplemented in sese::net::http::HttpClient::SSLImpl.

References code, read(), and socket.

Referenced by read(), readBodyByCallback(), and readBodyByData().

◆ readBodyByCallback()

bool sese::net::http::HttpClient::Impl::readBodyByCallback ( size_t expect)
inline

References MTU_VALUE, read(), and write_callback.

Referenced by request().

◆ readBodyByData()

bool sese::net::http::HttpClient::Impl::readBodyByData ( size_t expect)
inline

References MTU_VALUE, read(), and write_data.

Referenced by request().

◆ request()

◆ reset()

void sese::net::http::HttpClient::Impl::reset ( )
inline

Reset body-related settings.

References expect_total, read_callback, read_data, req, resp, write_callback, and write_data.

Referenced by Impl(), and request().

◆ shutdown()

virtual bool sese::net::http::HttpClient::Impl::shutdown ( )
inlinevirtual

Reimplemented in sese::net::http::HttpClient::SSLImpl.

Referenced by request().

◆ write()

int64_t sese::net::http::HttpClient::Impl::write ( const void * buf,
size_t len )
inlineoverridevirtual

◆ writeBodyByAuto()

bool sese::net::http::HttpClient::Impl::writeBodyByAuto ( )
inline

References MTU_VALUE, req, and write().

Referenced by request().

◆ writeBodyByCallback()

bool sese::net::http::HttpClient::Impl::writeBodyByCallback ( )
inline

References expect_total, MTU_VALUE, read_callback, and write().

Referenced by request().

◆ writeBodyByData()

bool sese::net::http::HttpClient::Impl::writeBodyByData ( )
inline

◆ writeHeader()

bool sese::net::http::HttpClient::Impl::writeHeader ( io::ByteBuilder & builder)
inline

Member Data Documentation

◆ address

IPAddress::Ptr sese::net::http::HttpClient::Impl::address

Referenced by Impl(), and request().

◆ code

◆ cookies

CookieMap::Ptr sese::net::http::HttpClient::Impl::cookies

Referenced by Impl().

◆ expect_total

size_t sese::net::http::HttpClient::Impl::expect_total = 0

◆ first

bool sese::net::http::HttpClient::Impl::first = true

Referenced by request().

◆ ioContext

asio::io_context sese::net::http::HttpClient::Impl::ioContext

◆ read_callback

ReadCallback sese::net::http::HttpClient::Impl::read_callback

Referenced by request(), reset(), and writeBodyByCallback().

◆ read_data

io::PeekableStream* sese::net::http::HttpClient::Impl::read_data = nullptr

Referenced by reset(), and writeBodyByData().

◆ req

Request::Ptr sese::net::http::HttpClient::Impl::req = nullptr

Referenced by Impl(), request(), reset(), and writeBodyByAuto().

◆ resp

Response::Ptr sese::net::http::HttpClient::Impl::resp = nullptr

Referenced by Impl(), request(), and reset().

◆ socket

asio::ip::tcp::socket sese::net::http::HttpClient::Impl::socket

Referenced by read(), request(), write(), and ~Impl().

◆ write_callback

WriteCallback sese::net::http::HttpClient::Impl::write_callback

Referenced by readBodyByCallback(), request(), and reset().

◆ write_data

OutputStream* sese::net::http::HttpClient::Impl::write_data = nullptr

Referenced by readBodyByData(), and reset().


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