Guitar
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
WebClient Class Reference

#include <webclient.h>

Inheritance diagram for WebClient:
Inheritance graph
[legend]
Collaboration diagram for WebClient:
Collaboration graph
[legend]

Classes

struct  ContentDisposition
 
class  ContentType
 
struct  Part
 
struct  Private
 
struct  RequestOption
 

Public Types

enum  HttpVersion { HTTP_1_0 , HTTP_1_1 }
 

Public Member Functions

 WebClient (WebContext *webcx)
 
 ~WebClient ()
 
 WebClient (WebClient const &)=delete
 
void operator= (WebClient const &)=delete
 
void set_http_version (HttpVersion httpver)
 
InetClient::Error const & error () const override
 
int get (InetClient::Request const &req, WebClientHandler *handler)
 
int get (InetClient::Request const &req) override
 
int post (InetClient::Request const &req, InetClient::Post const *postdata, WebClientHandler *handler)
 
int post (InetClient::Request const &req, InetClient::Post const *postdata) override
 
void close () override
 
void add_header (std::string const &text)
 
InetClient::Response const & response () const override
 
std::string header_value (std::string const &name) const
 
std::string content_type () const
 
size_t content_length () const override
 
char const * content_data () const override
 
- Public Member Functions inherited from AbstractInetClient
virtual ~AbstractInetClient ()=default
 
AbstractInetClientclient ()
 
AbstractInetClient const * client () const
 

Static Public Member Functions

static void initialize ()
 
static void cleanup ()
 
static void make_application_www_form_urlencoded (char const *begin, char const *end, InetClient::Post *out)
 
static void make_multipart_form_data (const std::vector< Part > &parts, InetClient::Post *out, std::string const &boundary)
 
static void make_multipart_form_data (char const *data, size_t size, InetClient::Post *out, std::string const &boundary)
 
static std::string quick_get (const std::string &url)
 
static std::string checkip ()
 

Protected Member Functions

void reset () override
 
- Protected Member Functions inherited from AbstractInetClient
virtual AbstractInetClientclientptr ()
 

Private Member Functions

void clear_error ()
 
void set_default_header (InetClient::Request const &url, InetClient::Post const *postdata, const RequestOption &opt)
 
std::string make_http_request (InetClient::Request const &url, InetClient::Post const *postdata, const WebProxy *proxy, bool https)
 
void parse_http_header (char const *begin, char const *end, std::vector< std::string > *header)
 
void parse_http_header (char const *begin, char const *end, InetClient::Response *out)
 
bool http_get (InetClient::Request const &request_req, InetClient::Post const *postdata, RequestOption const &opt, ResponseHeader *rh, std::vector< char > *out)
 
bool https_get (InetClient::Request const &request_url, InetClient::Post const *postdata, RequestOption const &opt, ResponseHeader *rh, std::vector< char > *out)
 
bool get (InetClient::Request const &req, InetClient::Post const *post, InetClient::Response *out, WebClientHandler *handler)
 
void append (char const *ptr, size_t len, std::vector< char > *out, WebClientHandler *handler)
 
void on_end_header (const std::vector< char > *vec, WebClientHandler *handler)
 
void receive_ (const RequestOption &opt, std::function< int(char *, int)> const &, ResponseHeader *rh, std::vector< char > *out)
 
void output_debug_string (char const *str)
 
void output_debug_strings (const std::vector< std::string > &vec)
 

Static Private Member Functions

static int get_port (InetClient::URL const *url, char const *scheme, char const *protocol)
 
static void parse_header (std::vector< std::string > const *header, InetClient::Response *res)
 
static std::string header_value (std::vector< std::string > const *header, std::string const &name)
 

Private Attributes

Privatem
 

Member Enumeration Documentation

◆ HttpVersion

Enumerator
HTTP_1_0 
HTTP_1_1 

Constructor & Destructor Documentation

◆ WebClient() [1/2]

WebClient::WebClient ( WebContext webcx)
Here is the call graph for this function:

◆ ~WebClient()

WebClient::~WebClient ( )
Here is the call graph for this function:

◆ WebClient() [2/2]

WebClient::WebClient ( WebClient const &  )
delete

Member Function Documentation

◆ add_header()

void WebClient::add_header ( std::string const &  text)

◆ append()

void WebClient::append ( char const *  ptr,
size_t  len,
std::vector< char > *  out,
WebClientHandler handler 
)
private
Here is the call graph for this function:

◆ checkip()

std::string WebClient::checkip ( )
static
Here is the call graph for this function:

◆ cleanup()

void WebClient::cleanup ( )
static

◆ clear_error()

void WebClient::clear_error ( )
private

◆ close()

void WebClient::close ( )
overridevirtual

Implements AbstractInetClient.

◆ content_data()

char const * WebClient::content_data ( ) const
overridevirtual

Implements AbstractInetClient.

◆ content_length()

size_t WebClient::content_length ( ) const
overridevirtual

Implements AbstractInetClient.

◆ content_type()

std::string WebClient::content_type ( ) const
Here is the call graph for this function:

◆ error()

InetClient::Error const & WebClient::error ( ) const
overridevirtual

Implements AbstractInetClient.

◆ get() [1/3]

int WebClient::get ( InetClient::Request const &  req)
inlineoverridevirtual

Implements AbstractInetClient.

Here is the call graph for this function:

◆ get() [2/3]

bool WebClient::get ( InetClient::Request const &  req,
InetClient::Post const *  post,
InetClient::Response out,
WebClientHandler handler 
)
private
Here is the call graph for this function:

◆ get() [3/3]

int WebClient::get ( InetClient::Request const &  req,
WebClientHandler handler 
)
Here is the call graph for this function:

◆ get_port()

int WebClient::get_port ( InetClient::URL const *  url,
char const *  scheme,
char const *  protocol 
)
staticprivate
Here is the call graph for this function:

◆ header_value() [1/2]

std::string WebClient::header_value ( std::string const &  name) const
Here is the call graph for this function:

◆ header_value() [2/2]

std::string WebClient::header_value ( std::vector< std::string > const *  header,
std::string const &  name 
)
staticprivate

◆ http_get()

bool WebClient::http_get ( InetClient::Request const &  request_req,
InetClient::Post const *  postdata,
RequestOption const &  opt,
ResponseHeader rh,
std::vector< char > *  out 
)
private
Here is the call graph for this function:

◆ https_get()

bool WebClient::https_get ( InetClient::Request const &  request_url,
InetClient::Post const *  postdata,
RequestOption const &  opt,
ResponseHeader rh,
std::vector< char > *  out 
)
private
Here is the call graph for this function:

◆ initialize()

void WebClient::initialize ( )
static
Here is the call graph for this function:

◆ make_application_www_form_urlencoded()

void WebClient::make_application_www_form_urlencoded ( char const *  begin,
char const *  end,
InetClient::Post out 
)
static

◆ make_http_request()

std::string WebClient::make_http_request ( InetClient::Request const &  url,
InetClient::Post const *  postdata,
const WebProxy proxy,
bool  https 
)
private
Here is the call graph for this function:

◆ make_multipart_form_data() [1/2]

void WebClient::make_multipart_form_data ( char const *  data,
size_t  size,
InetClient::Post out,
std::string const &  boundary 
)
static
Here is the call graph for this function:

◆ make_multipart_form_data() [2/2]

void WebClient::make_multipart_form_data ( const std::vector< Part > &  parts,
InetClient::Post out,
std::string const &  boundary 
)
static

◆ on_end_header()

void WebClient::on_end_header ( const std::vector< char > *  vec,
WebClientHandler handler 
)
private
Here is the call graph for this function:

◆ operator=()

void WebClient::operator= ( WebClient const &  )
delete

◆ output_debug_string()

void WebClient::output_debug_string ( char const *  str)
private

◆ output_debug_strings()

void WebClient::output_debug_strings ( const std::vector< std::string > &  vec)
private
Here is the call graph for this function:

◆ parse_header()

void WebClient::parse_header ( std::vector< std::string > const *  header,
InetClient::Response res 
)
staticprivate

◆ parse_http_header() [1/2]

void WebClient::parse_http_header ( char const *  begin,
char const *  end,
InetClient::Response out 
)
private
Here is the call graph for this function:

◆ parse_http_header() [2/2]

void WebClient::parse_http_header ( char const *  begin,
char const *  end,
std::vector< std::string > *  header 
)
private

◆ post() [1/2]

int WebClient::post ( InetClient::Request const &  req,
InetClient::Post const *  postdata 
)
inlineoverridevirtual

Implements AbstractInetClient.

Here is the call graph for this function:

◆ post() [2/2]

int WebClient::post ( InetClient::Request const &  req,
InetClient::Post const *  postdata,
WebClientHandler handler 
)
Here is the call graph for this function:

◆ quick_get()

std::string WebClient::quick_get ( const std::string &  url)
static
Here is the call graph for this function:

◆ receive_()

void WebClient::receive_ ( const RequestOption opt,
std::function< int(char *, int)> const &  rcv,
ResponseHeader rh,
std::vector< char > *  out 
)
private
Here is the call graph for this function:

◆ reset()

void WebClient::reset ( )
overrideprotectedvirtual

Implements AbstractInetClient.

◆ response()

InetClient::Response const & WebClient::response ( ) const
overridevirtual

Implements AbstractInetClient.

◆ set_default_header()

void WebClient::set_default_header ( InetClient::Request const &  url,
InetClient::Post const *  postdata,
const RequestOption opt 
)
private
Here is the call graph for this function:

◆ set_http_version()

void WebClient::set_http_version ( HttpVersion  httpver)

Member Data Documentation

◆ m

Private* WebClient::m
private

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