SNode.C
|
#include <SocketContext.h>
Public Member Functions | |
SocketContext (core::socket::stream::SocketConnection *socketConnection, const std::function< void(const std::shared_ptr< Request > &)> &onRequestBegin, const std::function< void(const std::shared_ptr< Request > &)> &onRequestEnd, bool pipelinedRequests) | |
~SocketContext () override | |
![]() | |
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 | |
enum | Flags { NONE = 0b00000000 , HTTP10 = 0b00000001 , HTTP11 = 0b00000010 , KEEPALIVE = 0b00000100 , CLOSE = 0b00001000 } |
using | Super = core::socket::stream::SocketContext |
using | Request = web::http::client::Request |
using | Response = web::http::client::Response |
Private Member Functions | |
void | requestPrepared (Request &&request) |
void | initiateRequest (Request &request) |
void | requestDelivered (Request &&request, bool success) |
void | responseStarted () |
void | deliverResponse (Response &&response) |
void | deliverResponseParseError (int status, const std::string &reason) |
void | responseDelivered (bool httpClose) |
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 > &)> | onRequestBegin |
std::function< void(const std::shared_ptr< Request > &)> | onRequestEnd |
std::list< Request > | pendingRequests |
std::list< Request > | deliveredRequests |
bool | pipelinedRequests = false |
std::shared_ptr< Request > | currentRequest = nullptr |
std::shared_ptr< Request > | masterRequest |
ResponseParser | parser |
int | flags = Flags::NONE |
Friends | |
class | web::http::client::Request |
Additional Inherited Members | |
![]() | |
void | onReadError (int errnum) override |
![]() | |
SocketContext ()=default | |
Definition at line 65 of file SocketContext.h.
|
private |
Definition at line 69 of file SocketContext.h.
Definition at line 70 of file SocketContext.h.
Definition at line 67 of file SocketContext.h.
|
private |
web::http::client::SocketContext::SocketContext | ( | core::socket::stream::SocketConnection * | socketConnection, |
const std::function< void(const std::shared_ptr< Request > &)> & | onRequestBegin, | ||
const std::function< void(const std::shared_ptr< Request > &)> & | onRequestEnd, | ||
bool | pipelinedRequests | ||
) |
Definition at line 61 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConfiguredServer(), core::socket::stream::SocketContext::getSocketConnection(), masterRequest, onRequestBegin, onRequestEnd, parser, pipelinedRequests, web::http::client::ResponseParser::ResponseParser(), responseStarted(), and core::socket::stream::SocketContext::SocketContext().
Referenced by web::http::client::SocketContextFactory::create().
|
overridevirtual |
Reimplemented from core::socket::SocketContext.
Definition at line 87 of file SocketContext.cpp.
References deliveredRequests, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, web::http::client::Request::method, pendingRequests, and web::http::client::Request::url.
|
private |
Definition at line 223 of file SocketContext.cpp.
References web::http::Close, web::http::client::Response::connectionState, web::http::Default, deliveredRequests, web::http::client::Request::deliverResponse(), core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Response::httpMajor, web::http::client::Request::httpMinor, web::http::client::Response::httpMinor, web::http::client::Request::method, responseDelivered(), and web::http::client::Request::url.
Referenced by onDisconnected().
|
private |
Definition at line 249 of file SocketContext.cpp.
References deliveredRequests, web::http::client::Request::deliverResponseParseError(), core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, web::http::client::Request::method, core::socket::stream::SocketContext::shutdownWrite(), and web::http::client::Request::url.
|
private |
Definition at line 134 of file SocketContext.cpp.
References core::EventReceiver::atNextTick(), currentRequest, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, web::http::client::Request::initiate(), initiateRequest(), masterRequest, web::http::client::Request::method, pendingRequests, and web::http::client::Request::url.
Referenced by initiateRequest(), requestDelivered(), requestPrepared(), and responseDelivered().
|
overrideprivatevirtual |
Implements core::socket::stream::SocketContext.
Definition at line 293 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), masterRequest, and onRequestBegin.
|
overrideprivatevirtual |
Implements core::socket::stream::SocketContext.
Definition at line 309 of file SocketContext.cpp.
References deliveredRequests, deliverResponse(), core::socket::stream::SocketConnection::getConnectionName(), web::http::client::ResponseParser::getResponse(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, masterRequest, onRequestEnd, and parser.
|
overrideprivatevirtual |
Implements core::socket::SocketContext.
Definition at line 299 of file SocketContext.cpp.
References deliveredRequests, web::http::Parser::parse(), and parser.
|
overrideprivatevirtual |
Implements core::socket::SocketContext.
Definition at line 322 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 328 of file SocketContext.cpp.
|
private |
Definition at line 168 of file SocketContext.cpp.
References core::EventReceiver::atNextTick(), currentRequest, deliveredRequests, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, initiateRequest(), masterRequest, web::http::client::Request::method, pendingRequests, pipelinedRequests, core::socket::stream::SocketContext::shutdownWrite(), and web::http::client::Request::url.
Referenced by web::http::client::Request::requestDelivered().
|
private |
Definition at line 103 of file SocketContext.cpp.
References web::http::ciContains(), CLOSE, currentRequest, flags, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::header(), HTTP10, HTTP11, web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, initiateRequest(), KEEPALIVE, web::http::client::Request::method, NONE, pendingRequests, and web::http::client::Request::url.
Referenced by web::http::client::Request::requestPrepared().
|
private |
Definition at line 267 of file SocketContext.cpp.
References core::EventReceiver::atNextTick(), currentRequest, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, initiateRequest(), masterRequest, web::http::client::Request::method, pendingRequests, pipelinedRequests, and web::http::client::Request::url.
Referenced by deliverResponse().
|
private |
Definition at line 206 of file SocketContext.cpp.
References deliveredRequests, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, web::http::client::Request::method, core::socket::stream::SocketContext::shutdownWrite(), and web::http::client::Request::url.
Referenced by SocketContext().
|
friend |
Definition at line 117 of file SocketContext.h.
|
private |
Definition at line 103 of file SocketContext.h.
Referenced by initiateRequest(), requestDelivered(), requestPrepared(), and responseDelivered().
|
private |
Definition at line 99 of file SocketContext.h.
Referenced by deliverResponse(), deliverResponseParseError(), onDisconnected(), onReceivedFromPeer(), requestDelivered(), responseStarted(), and ~SocketContext().
|
private |
Definition at line 115 of file SocketContext.h.
Referenced by requestPrepared().
|
private |
Definition at line 104 of file SocketContext.h.
Referenced by initiateRequest(), onConnected(), onDisconnected(), requestDelivered(), responseDelivered(), and SocketContext().
|
private |
Definition at line 89 of file SocketContext.h.
Referenced by onConnected(), and SocketContext().
|
private |
Definition at line 90 of file SocketContext.h.
Referenced by onDisconnected(), and SocketContext().
|
private |
Definition at line 106 of file SocketContext.h.
Referenced by onDisconnected(), onReceivedFromPeer(), and SocketContext().
|
private |
Definition at line 98 of file SocketContext.h.
Referenced by initiateRequest(), requestDelivered(), requestPrepared(), responseDelivered(), and ~SocketContext().
|
private |
Definition at line 101 of file SocketContext.h.
Referenced by requestDelivered(), responseDelivered(), and SocketContext().