2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20#ifndef WEB_HTTP_CLIENT_SOCKETCONTEXTUPGRADEFACTORYSELECTOR_H
21#define WEB_HTTP_CLIENT_SOCKETCONTEXTUPGRADEFACTORYSELECTOR_H
23#include "web/http/SocketContextUpgradeFactorySelector.h"
24#include "web/http/client/SocketContextUpgradeFactory.h"
28#ifndef DOXYGEN_SHOULD_SKIP_THIS
32namespace web::http::
client {
34 class SocketContextUpgradeFactorySelector
35 :
public web::http::SocketContextUpgradeFactorySelector<web::http::client::SocketContextUpgradeFactory> {
37 using Super = web::http::SocketContextUpgradeFactorySelector<web::http::
client::SocketContextUpgradeFactory>;
42 SocketContextUpgradeFactory* load(
const std::string& socketContextUpgradeName)
override;
45 static SocketContextUpgradeFactorySelector* instance();
47 SocketContextUpgradeFactory* select(
const std::string& protocols,
Request& req);
48 SocketContextUpgradeFactory* select(
Request& req, Response& res) override;
53extern template class web::http::SocketContextUpgradeFactorySelector<web::http::
client::SocketContextUpgradeFactory>;
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)