SNode.C
|
#include <SocketContext.h>
Public Member Functions | |
SocketContext (core::socket::stream::SocketConnection *socketConnection, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &onRequestReady) | |
![]() | |
SocketContext (core::socket::stream::SocketConnection *socketConnection) | |
void | sendToPeer (const char *chunk, std::size_t chunkLen) const final |
bool | streamToPeer (core::pipe::Source *source) const |
void | streamEof () |
std::size_t | readFromPeer (char *chunk, std::size_t chunklen) const final |
void | setTimeout (const utils::Timeval &timeout) final |
void | shutdownRead () |
void | shutdownWrite (bool forceClose=false) |
void | close () override |
SocketConnection * | getSocketConnection () const |
virtual void | switchSocketContext (SocketContext *newSocketContext) |
void | sendToPeer (const std::string &data) const |
virtual void | sendToPeer (const char *chunk, std::size_t chunkLen) const=0 |
![]() | |
SocketContext (const SocketContext &)=delete | |
SocketContext (SocketContext &&)=delete | |
SocketContext & | operator= (const SocketContext &)=delete |
SocketContext & | operator= (SocketContext &&)=delete |
void | sendToPeer (const std::string &data) const |
Private Types | |
using | Super = core::socket::stream::SocketContext |
using | Request = web::http::server::Request |
using | Response = web::http::server::Response |
Private Member Functions | |
void | deliverRequest () |
void | responseStarted () |
void | responseCompleted (bool success) |
void | requestCompleted () |
void | onConnected () override |
std::size_t | onReceivedFromPeer () override |
void | onDisconnected () override |
bool | onSignal (int signum) override |
void | onWriteError (int errnum) override |
Private Attributes | |
std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> | onRequestReady |
std::list< std::shared_ptr< Request > > | pendingRequests |
std::shared_ptr< Response > | masterResponse |
RequestParser | parser |
bool | httpClose = false |
friend | Response |
Additional Inherited Members | |
![]() | |
void | onReadError (int errnum) override |
![]() | |
SocketContext ()=default | |
virtual | ~SocketContext () |
Definition at line 67 of file SocketContext.h.
|
private |
Definition at line 71 of file SocketContext.h.
Definition at line 72 of file SocketContext.h.
Definition at line 69 of file SocketContext.h.
web::http::server::SocketContext::SocketContext | ( | core::socket::stream::SocketConnection * | socketConnection, |
const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> & | onRequestReady | ||
) |
Definition at line 59 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), masterResponse, onRequestReady, parser, web::http::server::RequestParser::RequestParser(), and core::socket::stream::SocketContext::SocketContext().
Referenced by web::http::server::SocketContextFactory::create().
|
private |
Definition at line 88 of file SocketContext.cpp.
References web::http::server::Request::get(), core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::server::Request::httpMajor, web::http::server::Response::httpMajor, web::http::server::Request::httpMinor, web::http::server::Response::httpMinor, web::http::server::Response::init(), masterResponse, web::http::server::Request::method, onRequestReady, pendingRequests, web::http::server::Response::set(), and web::http::server::Request::url.
Referenced by requestCompleted().
|
overrideprivatevirtual |
Implements core::socket::stream::SocketContext.
Definition at line 159 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::server::Response::init(), and masterResponse.
|
overrideprivatevirtual |
Implements core::socket::stream::SocketContext.
Definition at line 175 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), masterResponse, and web::http::server::Response::stopResponse().
|
overrideprivatevirtual |
Implements core::socket::SocketContext.
Definition at line 165 of file SocketContext.cpp.
References httpClose, web::http::Parser::parse(), and parser.
|
overrideprivatevirtual |
Implements core::socket::SocketContext.
Definition at line 183 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), and core::socket::stream::SocketContext::getSocketConnection().
|
overrideprivatevirtual |
Reimplemented from core::socket::stream::SocketContext.
Definition at line 189 of file SocketContext.cpp.
|
private |
Definition at line 137 of file SocketContext.cpp.
References core::EventReceiver::atNextTick(), deliverRequest(), core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), httpClose, web::http::server::Request::httpMajor, web::http::server::Request::httpMinor, masterResponse, web::http::server::Request::method, pendingRequests, core::socket::stream::SocketContext::shutdownWrite(), and web::http::server::Request::url.
Referenced by responseCompleted().
|
private |
Definition at line 117 of file SocketContext.cpp.
References web::http::Close, web::http::server::Response::connectionState, web::http::Default, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), httpClose, web::http::server::Request::httpMajor, web::http::server::Response::httpMajor, web::http::server::Request::httpMinor, web::http::server::Response::httpMinor, masterResponse, web::http::server::Request::method, pendingRequests, requestCompleted(), core::socket::stream::SocketContext::shutdownWrite(), and web::http::server::Request::url.
Referenced by web::http::server::Response::sendCompleted().
|
private |
Definition at line 110 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::server::Request::httpMajor, web::http::server::Request::httpMinor, web::http::server::Request::method, pendingRequests, and web::http::server::Request::url.
Referenced by web::http::server::Response::sendHeader().
|
private |
Definition at line 97 of file SocketContext.h.
Referenced by onReceivedFromPeer(), requestCompleted(), and responseCompleted().
|
private |
Definition at line 93 of file SocketContext.h.
Referenced by deliverRequest(), onConnected(), onDisconnected(), requestCompleted(), responseCompleted(), and SocketContext().
|
private |
Definition at line 84 of file SocketContext.h.
Referenced by deliverRequest(), and SocketContext().
|
private |
Definition at line 95 of file SocketContext.h.
Referenced by onReceivedFromPeer(), and SocketContext().
|
private |
Definition at line 92 of file SocketContext.h.
Referenced by deliverRequest(), requestCompleted(), responseCompleted(), and responseStarted().
|
private |
Definition at line 99 of file SocketContext.h.