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 | stopResponse () |
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 |
![]() | |
Sink (Sink &)=delete | |
Sink & | operator= (Sink &)=delete |
Public Attributes | |
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 |
SocketContext * | socketContext = nullptr |
core::socket::stream::SocketContext * | socketContextUpgrade = nullptr |
ConnectionState | connectionState = ConnectionState::Default |
TransferEncoding | transferEncoding = TransferEncoding::HTTP10 |
Friends | |
class | SocketContext |
Additional Inherited Members | |
![]() | |
Sink ()=default | |
Sink (Sink &&) noexcept=default | |
Sink & | operator= (Sink &&) noexcept=default |
virtual | ~Sink () |
bool | isStreaming () |
void | stop () |
Definition at line 73 of file Response.h.
|
explicit |
|
explicitdelete |
|
explicitdeletenoexcept |
|
override |
Definition at line 76 of file Response.cpp.
References core::pipe::Sink::isStreaming(), socketContext, socketContextUpgrade, and core::socket::stream::SocketContext::streamEof().
Response & web::http::server::Response::append | ( | const std::string & | field, |
const std::string & | value | ||
) |
Definition at line 108 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 184 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 178 of file Response.cpp.
References web::http::CookieOptions::CookieOptions(), and cookies.
Referenced by clearCookie(), and express::Response::cookie().
void web::http::server::Response::end | ( | ) |
Definition at line 330 of file Response.cpp.
References send().
Referenced by express::Response::end().
SocketContext * web::http::server::Response::getSocketContext | ( | ) | const |
Definition at line 457 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 453 of file Response.cpp.
References headers.
Referenced by express::Response::header().
|
privatevirtual |
Definition at line 88 of file Response.cpp.
References connectionState, contentLength, contentSent, cookies, web::http::Default, headers, web::http::HTTP10, httpMajor, httpMinor, socketContextUpgrade, statusCode, trailer, and transferEncoding.
Referenced by web::http::server::SocketContext::deliverRequest(), and web::http::server::SocketContext::onConnected().
|
overrideprivatevirtual |
Implements core::pipe::Sink.
Definition at line 416 of file Response.cpp.
References sendHeader(), socketContext, core::pipe::Source::start(), core::pipe::Source::stop(), and core::socket::stream::SocketContext::streamToPeer().
|
overrideprivatevirtual |
Implements core::pipe::Sink.
Definition at line 430 of file Response.cpp.
References sendFragment().
|
overrideprivatevirtual |
Implements core::pipe::Sink.
Definition at line 434 of file Response.cpp.
References sendCompleted(), socketContext, and core::socket::stream::SocketContext::streamEof().
|
overrideprivatevirtual |
Implements core::pipe::Sink.
Definition at line 442 of file Response.cpp.
References core::socket::stream::SocketContext::close(), sendCompleted(), socketContext, and core::socket::stream::SocketContext::streamEof().
void web::http::server::Response::send | ( | const char * | chunk, |
std::size_t | chunkLen | ||
) |
Definition at line 213 of file Response.cpp.
References 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 224 of file Response.cpp.
Referenced by end(), express::Response::send(), and sendStatus().
|
private |
Definition at line 393 of file Response.cpp.
References web::http::Chunked, contentLength, contentSent, httpMajor, httpMinor, web::http::server::SocketContext::responseCompleted(), sendFragment(), core::socket::SocketContext::sendToPeer(), socketContext, socketContextUpgrade, core::socket::stream::SocketContext::switchSocketContext(), 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 292 of file Response.cpp.
References web::http::MimeTypes::contentType(), httputils::file_mod_http_date(), httpMajor, httpMinor, core::file::FileReader::open(), core::pipe::Source::pipe(), set(), socketContext, and status().
Referenced by express::Response::sendFile().
Response & web::http::server::Response::sendFragment | ( | const char * | chunk, |
std::size_t | chunkLen | ||
) |
Definition at line 371 of file Response.cpp.
References web::http::Chunked, contentLength, contentSent, 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 389 of file Response.cpp.
References sendFragment().
Referenced by sendCompleted(), and express::Response::sendFragment().
Response & web::http::server::Response::sendHeader | ( | ) |
Definition at line 334 of file Response.cpp.
References cookies, web::http::CookieOptions::getOptions(), web::http::CookieOptions::getValue(), headers, httpMajor, httpMinor, 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 232 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 120 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 128 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 194 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 102 of file Response.cpp.
References statusCode.
Referenced by web::websocket::server::SocketContextUpgradeFactory::create(), sendFile(), sendStatus(), express::Response::status(), and upgrade().
void web::http::server::Response::stopResponse | ( | ) |
Definition at line 84 of file Response.cpp.
References core::pipe::Sink::stop().
Referenced by web::http::server::SocketContext::onDisconnected().
Response & web::http::server::Response::type | ( | const std::string & | type | ) |
Definition at line 174 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 244 of file Response.cpp.
References web::http::ciContains(), web::http::SocketContextUpgradeFactory< RequestT, ResponseT >::create(), web::http::server::Request::get(), core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::server::SocketContextUpgradeFactorySelector::instance(), web::http::SocketContextUpgradeFactory< RequestT, ResponseT >::name(), web::http::server::SocketContextUpgradeFactorySelector::select(), set(), socketContext, socketContextUpgrade, and status().
Referenced by express::Response::upgrade().
|
friend |
Definition at line 143 of file Response.h.
|
private |
Definition at line 140 of file Response.h.
Referenced by init(), web::http::server::SocketContext::responseCompleted(), and set().
|
private |
Definition at line 135 of file Response.h.
Referenced by init(), sendCompleted(), sendFragment(), and set().
|
private |
Definition at line 134 of file Response.h.
Referenced by init(), sendCompleted(), and sendFragment().
|
protected |
Definition at line 130 of file Response.h.
Referenced by cookie(), init(), and sendHeader().
|
protected |
Definition at line 129 of file Response.h.
Referenced by append(), header(), init(), sendHeader(), set(), and setTrailer().
int web::http::server::Response::httpMajor = 1 |
Definition at line 125 of file Response.h.
Referenced by web::http::server::SocketContext::deliverRequest(), init(), web::http::server::SocketContext::responseCompleted(), sendCompleted(), sendFile(), and sendHeader().
int web::http::server::Response::httpMinor = 1 |
Definition at line 126 of file Response.h.
Referenced by web::http::server::SocketContext::deliverRequest(), init(), web::http::server::SocketContext::responseCompleted(), sendCompleted(), sendFile(), and sendHeader().
|
private |
Definition at line 137 of file Response.h.
Referenced by getSocketContext(), onSourceConnect(), onSourceEof(), onSourceError(), Response(), sendCompleted(), sendFile(), sendFragment(), sendHeader(), upgrade(), and ~Response().
|
private |
Definition at line 138 of file Response.h.
Referenced by init(), sendCompleted(), upgrade(), and ~Response().
int web::http::server::Response::statusCode = 200 |
Definition at line 124 of file Response.h.
Referenced by init(), sendHeader(), and status().
|
protected |
Definition at line 131 of file Response.h.
Referenced by init(), sendCompleted(), and setTrailer().
|
private |
Definition at line 141 of file Response.h.
Referenced by init(), sendCompleted(), sendFragment(), and set().