|
SNode.C
|
#include <Response.h>
Public Member Functions | |
| Response (SocketContext *socketContext) | |
| Response (Response &)=delete | |
| Response (Response &&) noexcept=delete | |
| Response & | operator= (Response &)=delete |
| Response & | operator= (Response &&) noexcept=delete |
| ~Response () override | |
| void | disconnect () |
| bool | isConnected () const |
| Response & | status (int statusCode) |
| Response & | append (const std::string &field, const std::string &value) |
| Response & | set (const std::string &field, const std::string &value, bool overwrite=true) |
| Response & | set (const std::map< std::string, std::string > &headers, bool overwrite=true) |
| Response & | type (const std::string &type) |
| Response & | cookie (const std::string &name, const std::string &value, const std::map< std::string, std::string > &options={}) |
| Response & | clearCookie (const std::string &name, const std::map< std::string, std::string > &options={}) |
| Response & | setTrailer (const std::string &field, const std::string &value, bool overwrite=true) |
| void | send (const char *chunk, std::size_t chunkLen) |
| void | send (const std::string &chunk) |
| void | sendStatus (int statusCode) |
| void | upgrade (const std::shared_ptr< Request > &request, const std::function< void(const std::string &)> &status) |
| void | sendFile (const std::string &file, const std::function< void(int)> &callback) |
| void | end () |
| Response & | sendHeader () |
| Response & | sendFragment (const char *chunk, std::size_t chunkLen) |
| Response & | sendFragment (const std::string &chunk) |
| const std::string & | header (const std::string &field) |
| SocketContext * | getSocketContext () const |
Public Member Functions inherited from core::pipe::Sink | |
| Sink (Sink &)=delete | |
| Sink & | operator= (Sink &)=delete |
Public Attributes | |
| std::string | requestMethod = "GET" |
| int | statusCode = 200 |
| int | httpMajor = 1 |
| int | httpMinor = 1 |
Protected Attributes | |
| web::http::CiStringMap< std::string > | headers |
| web::http::CiStringMap< web::http::CookieOptions > | cookies |
| web::http::CiStringMap< std::string > | trailer |
Private Member Functions | |
| virtual void | init () |
| void | sendCompleted () |
| void | onSourceConnect (core::pipe::Source *source) override |
| void | onSourceData (const char *chunk, std::size_t chunkLen) override |
| void | onSourceEof () override |
| void | onSourceError (int errnum) override |
Private Attributes | |
| std::size_t | contentSent = 0 |
| std::size_t | contentLength = 0 |
| web::http::server::SocketContext * | socketContext = nullptr |
| ConnectionState | connectionState = ConnectionState::Default |
| TransferEncoding | transferEncoding = TransferEncoding::HTTP10 |
Friends | |
| class | SocketContext |
Additional Inherited Members | |
Protected Member Functions inherited from core::pipe::Sink | |
| Sink ()=default | |
| Sink (Sink &&) noexcept=default | |
| Sink & | operator= (Sink &&) noexcept=default |
| virtual | ~Sink () |
| bool | isStreaming () |
| void | stop () |
Definition at line 69 of file Response.h.
|
explicit |
Definition at line 72 of file Response.cpp.
References socketContext.
|
explicitdelete |
|
explicitdeletenoexcept |
|
override |
Definition at line 76 of file Response.cpp.
References isConnected(), core::pipe::Sink::isStreaming(), socketContext, and core::socket::stream::SocketContext::streamEof().
| Response & web::http::server::Response::append | ( | const std::string & | field, |
| const std::string & | value | ||
| ) |
Definition at line 110 of file Response.cpp.
References headers, and set().
Referenced by express::Response::append().
| Response & web::http::server::Response::clearCookie | ( | const std::string & | name, |
| const std::map< std::string, std::string > & | options = {} |
||
| ) |
Definition at line 186 of file Response.cpp.
References cookie(), utils::system::gmtime(), and httputils::to_http_date().
Referenced by express::Response::clearCookie().
| Response & web::http::server::Response::cookie | ( | const std::string & | name, |
| const std::string & | value, | ||
| const std::map< std::string, std::string > & | options = {} |
||
| ) |
Definition at line 180 of file Response.cpp.
References web::http::CookieOptions::CookieOptions(), and cookies.
Referenced by clearCookie(), and express::Response::cookie().
| void web::http::server::Response::disconnect | ( | ) |
Definition at line 82 of file Response.cpp.
References socketContext, and core::pipe::Sink::stop().
Referenced by web::http::server::SocketContext::onDisconnected().
| void web::http::server::Response::end | ( | ) |
Definition at line 363 of file Response.cpp.
References send().
Referenced by express::Response::end().
| SocketContext * web::http::server::Response::getSocketContext | ( | ) | const |
Definition at line 485 of file Response.cpp.
References socketContext.
Referenced by express::Response::getSocketContext().
| const std::string & web::http::server::Response::header | ( | const std::string & | field | ) |
Definition at line 481 of file Response.cpp.
References headers.
Referenced by express::Response::header(), and upgrade().
|
privatevirtual |
Definition at line 91 of file Response.cpp.
References connectionState, contentLength, contentSent, cookies, web::http::Default, headers, web::http::HTTP10, httpMajor, httpMinor, statusCode, trailer, and transferEncoding.
Referenced by web::http::server::SocketContext::deliverRequest().
| bool web::http::server::Response::isConnected | ( | ) | const |
Definition at line 87 of file Response.cpp.
References socketContext.
Referenced by express::Response::isConnected(), onSourceConnect(), onSourceEof(), onSourceError(), send(), sendCompleted(), sendFile(), sendFragment(), sendHeader(), upgrade(), and ~Response().
|
overrideprivatevirtual |
Implements core::pipe::Sink.
Definition at line 444 of file Response.cpp.
References isConnected(), sendHeader(), socketContext, core::pipe::Source::start(), core::pipe::Source::stop(), and core::socket::stream::SocketContext::streamToPeer().
|
overrideprivatevirtual |
Implements core::pipe::Sink.
Definition at line 458 of file Response.cpp.
References sendFragment().
|
overrideprivatevirtual |
Implements core::pipe::Sink.
Definition at line 462 of file Response.cpp.
References isConnected(), sendCompleted(), socketContext, and core::socket::stream::SocketContext::streamEof().
|
overrideprivatevirtual |
Implements core::pipe::Sink.
Definition at line 470 of file Response.cpp.
References core::socket::stream::SocketContext::close(), isConnected(), sendCompleted(), socketContext, and core::socket::stream::SocketContext::streamEof().
| void web::http::server::Response::send | ( | const char * | chunk, |
| std::size_t | chunkLen | ||
| ) |
Definition at line 215 of file Response.cpp.
References isConnected(), sendCompleted(), sendFragment(), sendHeader(), and set().
Referenced by express::Response::send(), and send().
| void web::http::server::Response::send | ( | const std::string & | chunk | ) |
Definition at line 228 of file Response.cpp.
Referenced by web::http::server::SocketContext::deliverRequest(), end(), express::Response::send(), and sendStatus().
|
private |
Definition at line 426 of file Response.cpp.
References web::http::Chunked, contentLength, contentSent, httpMajor, httpMinor, isConnected(), web::http::server::SocketContext::responseCompleted(), sendFragment(), core::socket::SocketContext::sendToPeer(), socketContext, trailer, and transferEncoding.
Referenced by onSourceEof(), onSourceError(), and send().
| void web::http::server::Response::sendFile | ( | const std::string & | file, |
| const std::function< void(int)> & | callback | ||
| ) |
Definition at line 324 of file Response.cpp.
References web::http::MimeTypes::contentType(), httputils::file_mod_http_date(), httpMajor, httpMinor, isConnected(), core::file::FileReader::open(), core::pipe::Source::pipe(), set(), and status().
Referenced by express::Response::sendFile().
| Response & web::http::server::Response::sendFragment | ( | const char * | chunk, |
| std::size_t | chunkLen | ||
| ) |
Definition at line 404 of file Response.cpp.
References web::http::Chunked, web::http::ciContains(), contentLength, contentSent, headers, isConnected(), core::socket::stream::SocketContext::sendToPeer(), core::socket::SocketContext::sendToPeer(), socketContext, and transferEncoding.
Referenced by onSourceData(), send(), express::Response::sendFragment(), and sendFragment().
| Response & web::http::server::Response::sendFragment | ( | const std::string & | chunk | ) |
Definition at line 422 of file Response.cpp.
References sendFragment().
Referenced by sendCompleted(), and express::Response::sendFragment().
| Response & web::http::server::Response::sendHeader | ( | ) |
Definition at line 367 of file Response.cpp.
References cookies, web::http::CookieOptions::getOptions(), web::http::CookieOptions::getValue(), headers, httpMajor, httpMinor, isConnected(), web::http::StatusCode::reason(), web::http::server::SocketContext::responseStarted(), core::socket::SocketContext::sendToPeer(), set(), socketContext, statusCode, and httputils::to_http_date().
Referenced by onSourceConnect(), send(), and express::Response::sendHeader().
| void web::http::server::Response::sendStatus | ( | int | statusCode | ) |
Definition at line 236 of file Response.cpp.
References web::http::StatusCode::reason(), send(), and status().
| Response & web::http::server::Response::set | ( | const std::map< std::string, std::string > & | headers, |
| bool | overwrite = true |
||
| ) |
Definition at line 122 of file Response.cpp.
References set().
Referenced by express::Response::set().
| Response & web::http::server::Response::set | ( | const std::string & | field, |
| const std::string & | value, | ||
| bool | overwrite = true |
||
| ) |
Definition at line 130 of file Response.cpp.
References web::http::Chunked, web::http::ciContains(), web::http::ciEquals(), web::http::Close, connectionState, contentLength, headers, web::http::Identity, web::http::Keep, and transferEncoding.
Referenced by append(), web::websocket::server::SocketContextUpgradeFactory::create(), web::http::server::SocketContext::deliverRequest(), send(), send(), sendFile(), sendHeader(), set(), express::Response::set(), setTrailer(), type(), and upgrade().
| Response & web::http::server::Response::setTrailer | ( | const std::string & | field, |
| const std::string & | value, | ||
| bool | overwrite = true |
||
| ) |
Definition at line 196 of file Response.cpp.
References headers, set(), and trailer.
Referenced by express::Response::setTrailer().
| Response & web::http::server::Response::status | ( | int | statusCode | ) |
Definition at line 104 of file Response.cpp.
References statusCode.
Referenced by web::websocket::server::SocketContextUpgradeFactory::create(), web::http::server::SocketContext::deliverRequest(), sendFile(), sendStatus(), express::Response::status(), and upgrade().
| Response & web::http::server::Response::type | ( | const std::string & | type | ) |
Definition at line 176 of file Response.cpp.
References set().
Referenced by express::Response::type().
| void web::http::server::Response::upgrade | ( | const std::shared_ptr< Request > & | request, |
| const std::function< void(const std::string &)> & | status | ||
| ) |
Sequence diagram of res.upgrade(req).
Definition at line 248 of file Response.cpp.
References web::http::ciContains(), web::http::server::Request::cookies, cookies, web::http::SocketContextUpgradeFactory< RequestT, ResponseT >::create(), web::http::server::Request::get(), core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), header(), web::http::server::Request::headers, headers, web::http::server::Request::httpMajor, httpMajor, web::http::server::Request::httpMinor, httpMinor, web::http::server::SocketContextUpgradeFactorySelector::instance(), isConnected(), web::http::server::Request::method, web::http::SocketContextUpgradeFactory< RequestT, ResponseT >::name(), web::http::server::Request::queries, web::http::StatusCode::reason(), web::http::server::SocketContextUpgradeFactorySelector::select(), set(), socketContext, status(), statusCode, core::socket::stream::SocketContext::switchSocketContext(), httputils::toString(), httputils::toString(), and web::http::server::Request::url.
Referenced by express::Response::upgrade().
|
friend |
Definition at line 140 of file Response.h.
|
private |
Definition at line 137 of file Response.h.
Referenced by init(), web::http::server::SocketContext::requestCompleted(), and set().
|
private |
Definition at line 133 of file Response.h.
Referenced by init(), sendCompleted(), sendFragment(), and set().
|
private |
Definition at line 132 of file Response.h.
Referenced by init(), sendCompleted(), and sendFragment().
|
protected |
Definition at line 128 of file Response.h.
Referenced by cookie(), init(), sendHeader(), and upgrade().
|
protected |
Definition at line 127 of file Response.h.
Referenced by append(), header(), init(), sendFragment(), sendHeader(), set(), setTrailer(), and upgrade().
| int web::http::server::Response::httpMajor = 1 |
Definition at line 123 of file Response.h.
Referenced by web::http::server::SocketContext::deliverRequest(), init(), web::http::server::SocketContext::requestCompleted(), web::http::server::SocketContext::responseStarted(), sendCompleted(), sendFile(), sendHeader(), and upgrade().
| int web::http::server::Response::httpMinor = 1 |
Definition at line 124 of file Response.h.
Referenced by web::http::server::SocketContext::deliverRequest(), init(), web::http::server::SocketContext::requestCompleted(), web::http::server::SocketContext::responseStarted(), sendCompleted(), sendFile(), sendHeader(), and upgrade().
| std::string web::http::server::Response::requestMethod = "GET" |
Definition at line 121 of file Response.h.
Referenced by web::http::server::SocketContext::deliverRequest().
|
private |
Definition at line 135 of file Response.h.
Referenced by disconnect(), getSocketContext(), isConnected(), onSourceConnect(), onSourceEof(), onSourceError(), Response(), sendCompleted(), sendFragment(), sendHeader(), upgrade(), and ~Response().
| int web::http::server::Response::statusCode = 200 |
Definition at line 122 of file Response.h.
Referenced by init(), web::http::server::SocketContext::requestCompleted(), web::http::server::SocketContext::responseCompleted(), web::http::server::SocketContext::responseStarted(), sendHeader(), status(), and upgrade().
|
protected |
Definition at line 129 of file Response.h.
Referenced by init(), sendCompleted(), and setTrailer().
|
private |
Definition at line 138 of file Response.h.
Referenced by init(), sendCompleted(), sendFragment(), and set().