2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20#ifndef WEB_HTTP_CLIENT_SOCKETCONTEXTUPGRADEFACTORY_H
21#define WEB_HTTP_CLIENT_SOCKETCONTEXTUPGRADEFACTORY_H
23#include "web/http/SocketContextUpgradeFactory.h"
26namespace web::http::
client {
31#ifndef DOXYGEN_SHOULD_SKIP_THIS
37namespace web::http::
client {
39 class SocketContextUpgradeFactory
40 :
public web::http::SocketContextUpgradeFactory<web::http::client::Request, web::http::client::Response> {
43 using Reponse = web::http::
client::Response;
46 SocketContextUpgradeFactory();
48 using web::http::SocketContextUpgradeFactory<Request, Response>::prepare;
49 virtual void prepare(
Request& request) = 0;
52 void checkRefCount() final;
54 static void link(
const std::string& upgradeContextName, SocketContextUpgradeFactory* (*linkedPlugin)());
56 friend class SocketContextUpgradeFactorySelector;
61extern template class web::http::SocketContextUpgradeFactory<web::http::
client::
Request, web::http::
client::Response>;
Request & set(const std::string &field, const std::string &value, bool overwrite=true)
void onSourceEof() override
Request & cookie(const std::string &name, const std::string &value)
Request(Request &&) noexcept
void onSourceError(int errnum) override
std::string header(const std::string &field)
Request & sendFragment(const std::string &data)
bool sendFile(const std::string &file, const std::function< void(int errnum)> &onStatus, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &onResponseReceived, const std::function< void(const std::shared_ptr< Request > &, const std::string &)> &onResponseParseError=responseParseError)
Request & query(const std::string &key, const std::string &value)
bool upgrade(const std::string &url, const std::string &protocols, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &onResponseReceived, const std::function< void(const std::shared_ptr< Request > &, const std::string &)> &onResponseParseError=responseParseError)
void onSourceData(const char *chunk, std::size_t chunkLen) override
bool executeSendFragment(const char *chunk, std::size_t chunkLen)
const CiStringMap< std::string > & getQueries() const
const CiStringMap< std::string > & getCookies() const
Request & setTrailer(const std::string &field, const std::string &value, bool overwrite=true)
Request & cookie(const std::map< std::string, std::string > &cookies)
web::http::client::SocketContext * getSocketContext() const
void setMasterRequest(const std::shared_ptr< Request > &masterRequest)
Request & set(const std::map< std::string, std::string > &headers, bool overwrite=true)
Request & append(const std::string &field, const std::string &value)
Request & sendFragment(const char *chunk, std::size_t chunkLen)
bool send(const char *chunk, std::size_t chunkLen, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &onResponseReceived, const std::function< void(const std::shared_ptr< Request > &, const std::string &)> &onResponseParseError=responseParseError)
const CiStringMap< std::string > & getHeaders() const
Request & host(const std::string &hostFieldValue)
bool send(const std::string &chunk, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &onResponseReceived, const std::function< void(const std::shared_ptr< Request > &, const std::string &)> &onResponseParseError=responseParseError)
Request & type(const std::string &type)
bool end(const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &onResponseReceived, const std::function< void(const std::shared_ptr< Request > &, const std::string &)> &onResponseParseError=responseParseError)
void deliverResponseParseError(const std::shared_ptr< Request > &request, const std::string &message)
bool executeSendFile(const std::string &file, const std::function< void(int)> &onStatus)
bool executeUpgrade(const std::string &url, const std::string &protocols)
#define to_hex_str(int_val)