2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
42#ifndef WEB_HTTP_MIMETYPES_H
43#define WEB_HTTP_MIMETYPES_H
45#ifndef DOXYGEN_SHOULD_SKIP_THIS
69 static std::string
contentType(
const std::string& file);
76 static std::map<std::string, std::string>
mimeType;
static FileReader * open(const std::string &path, const std::function< void(int)> &callback)
void sendToPeer(const std::string &data) const
const std::string & getConnectionName() const
SocketConnection * getSocketConnection() const
void switchSocketContext(SocketContext *newSocketContext)
void sendToPeer(const char *chunk, std::size_t chunkLen) const final
void shutdownWrite(bool forceClose=false)
bool streamToPeer(core::pipe::Source *source) const
static std::string contentType(const std::string &file)
MimeTypes operator=(const MimeTypes &)=delete
MimeTypes(const MimeTypes &)=delete
static std::map< std::string, std::string > mimeType
core::socket::stream::SocketContext * create(core::socket::stream::SocketConnection *socketConnection) final
virtual std::string name()=0
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)
bool executeUpgrade(const std::string &url, const std::string &protocols, const std::function< void(bool)> &onStatus)
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)
MasterRequest & sendHeader()
void onSourceData(const char *chunk, std::size_t chunkLen) override
void onSourceConnect(core::pipe::Source *source) override
bool requestEventSource(const std::string &url, const std::function< std::size_t()> &onServerSentEvent, const std::function< void()> &onOpen, const std::function< void()> &onError)
MasterRequest(MasterRequest &&) noexcept
std::function< void(const std::shared_ptr< Request > &, const std::string &message)> onResponseParseError
void requestPrepared(const std::shared_ptr< MasterRequest > &request)
void deliverResponseParseError(const std::shared_ptr< MasterRequest > &request, const std::string &message)
std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> onResponseReceived
void deliverResponse(const std::shared_ptr< MasterRequest > &request, const std::shared_ptr< Response > &response)
void onSourceError(int errnum) override
bool upgrade(const std::string &url, const std::string &protocols, const std::function< void(bool)> &onUpgradeInitiate, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, bool)> &onResponseReceived, const std::function< void(const std::shared_ptr< Request > &, const std::string &)> &onResponseParseError)
bool executeSendFragment(const char *chunk, std::size_t chunkLen)
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)
std::size_t contentLengthSent
std::list< RequestCommand * > requestCommands
void onSourceEof() override
~MasterRequest() override
MasterRequest(SocketContext *socketContext, const std::string &hostFieldValue)
MasterRequest & sendFragment(const std::string &data)
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)
MasterRequest & sendFragment(const char *chunk, std::size_t chunkLen)
bool executeSendFile(const std::string &file, const std::function< void(int)> &onStatus)
bool initiate(const std::shared_ptr< MasterRequest > &request)
virtual bool execute(const std::shared_ptr< MasterRequest > &request)=0
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
CiStringMap< std::string > headers
Request & set(const std::string &field, const std::string &value, bool overwrite=true)
TransferEncoding transferEncoding
void setMasterRequest(const std::shared_ptr< MasterRequest > &masterRequest)
const CiStringMap< std::string > & getCookies() const
Request(Request &&request) noexcept
ConnectionState connectionState
CiStringMap< std::string > cookies
Request & cookie(const std::string &name, const std::string &value)
CiStringMap< std::string > trailer
const CiStringMap< std::string > & getQueries() const
Request & query(const std::string &key, const std::string &value)
Request(SocketContext *socketContext, const std::string &host)
std::weak_ptr< MasterRequest > masterRequest
Request & setTrailer(const std::string &field, const std::string &value, bool overwrite=true)
Request & cookie(const std::map< std::string, std::string > &cookies)
SocketContext * getSocketContext() const
std::string header(const std::string &field) const
CiStringMap< std::string > queries
Request & set(const std::map< std::string, std::string > &headers, bool overwrite=true)
std::size_t contentLength
web::http::client::SocketContext * socketContext
std::string hostFieldValue
const CiStringMap< std::string > & getTrailer() const
Request & append(const std::string &field, const std::string &value)
Request & host(const std::string &hostFieldValue)
std::shared_ptr< MasterRequest > getMasterRequest() const
Request & type(const std::string &type)
const CiStringMap< std::string > & getHeaders() const
void upgrade(const std::shared_ptr< Response > &response, const std::function< void(const std::string &)> &status)
CiStringMap< std::string > headers
CiStringMap< CookieOptions > cookies
const std::string & get(const std::string &key, int i=0) const
SocketContextUpgradeFactory * select(Request &req, Response &res) override
static SocketContextUpgradeFactorySelector * instance()
SocketContextUpgradeFactory * select(const std::string &protocols, Request &req)
void checkRefCount() final
void setSseEventReceiver(const std::function< std::size_t()> &onServerSentEvent)
void requestPrepared(const std::shared_ptr< MasterRequest > &request)
void requestDelivered(bool success)
EndCommand(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)
SendFileCommand(const std::string &file, const std::function< void(int)> &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)
SendFragmentCommand(const char *chunk, std::size_t chunkLen)
SseCommand(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)
UpgradeCommand(const std::string &url, const std::string &protocols, const std::function< void(bool)> &onUpgradeInitiate, 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)
std::string to_http_date(struct tm *tm)
std::string toString(const std::string &version, const std::string &statusCode, const std::string &reason, const web::http::CiStringMap< std::string > &header, const web::http::CiStringMap< web::http::CookieOptions > &cookies, const std::vector< char > &body)
std::string url_encode(const std::string &text)
std::string file_mod_http_date(const std::string &filePath)
std::string toString(const std::string &method, const std::string &url, const std::string &version, const web::http::CiStringMap< std::string > &queries, const web::http::CiStringMap< std::string > &header, const web::http::CiStringMap< std::string > &trailer, const web::http::CiStringMap< std::string > &cookies, const std::vector< char > &body)
bool ciEquals(const std::string &str1, const std::string &str2)
bool ciContains(const std::string &str1, const std::string &str2)
#define to_hex_str(int_val)