|
SNode.C
|
#include <SocketContext.h>
Public Member Functions | |
| SocketContext (core::socket::stream::SocketConnection *socketConnection, const std::function< void(const std::shared_ptr< MasterRequest > &)> &onHttpConnected, const std::function< void(const std::shared_ptr< MasterRequest > &)> &onHttpDisconnected, const std::string &hostHeader, bool pipelinedRequests) | |
| ~SocketContext () override | |
Public Member Functions inherited from core::socket::stream::SocketContext | |
| 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 |
| std::size_t | getTotalSent () const override |
| std::size_t | getTotalQueued () const override |
| std::size_t | getTotalRead () const override |
| std::size_t | getTotalProcessed () const override |
| std::string | getOnlineSince () const override |
| std::string | getOnlineDuration () const override |
| SocketConnection * | getSocketConnection () const |
| void | switchSocketContext (SocketContext *newSocketContext) |
| virtual std::size_t | readFromPeer (char *chunk, std::size_t chunklen) const=0 |
| void | sendToPeer (const std::string &data) const |
| virtual void | sendToPeer (const char *chunk, std::size_t chunkLen) const=0 |
Public Member Functions inherited from core::socket::SocketContext | |
| 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 | Response = web::http::client::Response |
Private Member Functions | |
| void | requestPrepared (const std::shared_ptr< MasterRequest > &request) |
| void | initiateRequest () |
| void | requestDelivered (bool success) |
| void | responseStarted () |
| void | deliverResponse (const std::shared_ptr< Response > &response) |
| void | deliverResponseParseError (int status, const std::string &reason) |
| void | requestCompleted (const std::shared_ptr< Response > &response) |
| void | setSseEventReceiver (const std::function< std::size_t()> &onServerSentEvent) |
| 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< MasterRequest > &)> | onHttpConnected |
| std::function< void(const std::shared_ptr< MasterRequest > &)> | onHttpDisconnected |
| std::function< std::size_t()> | onServerSentEvent = nullptr |
| std::list< std::shared_ptr< MasterRequest > > | pendingRequests |
| std::list< std::shared_ptr< MasterRequest > > | deliveredRequests |
| bool | pipelinedRequests = false |
| std::shared_ptr< MasterRequest > | masterRequest |
| ResponseParser | parser |
| int | flags = Flags::NONE |
| bool | httpClose = false |
Friends | |
| class | web::http::client::MasterRequest |
Additional Inherited Members | |
Protected Member Functions inherited from core::socket::stream::SocketContext | |
| void | onReadError (int errnum) override |
| void | readFromPeer (std::size_t available) |
Protected Member Functions inherited from core::socket::SocketContext | |
| SocketContext ()=default | |
Definition at line 65 of file SocketContext.h.
Definition at line 68 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< MasterRequest > &)> & | onHttpConnected, | ||
| const std::function< void(const std::shared_ptr< MasterRequest > &)> & | onHttpDisconnected, | ||
| const std::string & | hostHeader, | ||
| bool | pipelinedRequests | ||
| ) |
Definition at line 63 of file SocketContext.cpp.
References masterRequest, onHttpConnected, onHttpDisconnected, 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 227 of file SocketContext.cpp.
References web::http::client::Request::count, deliveredRequests, web::http::client::MasterRequest::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, web::http::client::Response::reason, requestCompleted(), web::http::client::Response::statusCode, and web::http::client::Request::url.
Referenced by onDisconnected().
|
private |
Definition at line 252 of file SocketContext.cpp.
References web::http::client::Request::count, deliveredRequests, web::http::client::MasterRequest::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 146 of file SocketContext.cpp.
References core::EventReceiver::atNextTick(), web::http::client::Request::count, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::httpMajor, web::http::client::Request::httpMinor, web::http::client::MasterRequest::initiate(), initiateRequest(), masterRequest, web::http::client::Request::method, pendingRequests, and web::http::client::Request::url.
Referenced by initiateRequest(), requestCompleted(), requestDelivered(), and requestPrepared().
|
overrideprivatevirtual |
Implements core::socket::stream::SocketContext.
Definition at line 311 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), masterRequest, and onHttpConnected.
|
overrideprivatevirtual |
Implements core::socket::stream::SocketContext.
Definition at line 331 of file SocketContext.cpp.
References deliveredRequests, deliverResponse(), core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Response::httpMajor, web::http::client::Response::httpMinor, web::http::client::Response::httpVersion, masterRequest, onHttpDisconnected, web::http::client::Response::reason, web::http::client::Response::Response(), and web::http::client::Response::statusCode.
|
overrideprivatevirtual |
Implements core::socket::SocketContext.
Definition at line 317 of file SocketContext.cpp.
References deliveredRequests, httpClose, onServerSentEvent, web::http::Parser::parse(), and parser.
|
overrideprivatevirtual |
Implements core::socket::SocketContext.
Definition at line 348 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 354 of file SocketContext.cpp.
|
private |
Definition at line 279 of file SocketContext.cpp.
References core::EventReceiver::atNextTick(), web::http::Close, web::http::client::Response::connectionState, web::http::client::Request::count, web::http::Default, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), httpClose, web::http::client::Request::httpMajor, web::http::client::Response::httpMajor, web::http::client::Request::httpMinor, web::http::client::Response::httpMinor, initiateRequest(), masterRequest, web::http::client::Request::method, pendingRequests, pipelinedRequests, and web::http::client::Request::url.
Referenced by deliverResponse().
|
private |
Definition at line 180 of file SocketContext.cpp.
References core::EventReceiver::atNextTick(), web::http::client::Request::count, 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::MasterRequest::requestDelivered().
|
private |
Definition at line 103 of file SocketContext.cpp.
References web::http::ciContains(), CLOSE, web::http::client::Request::count, flags, core::socket::stream::SocketConnection::getConnectionName(), web::http::client::Request::getCookies(), web::http::client::Request::getHeaders(), web::http::client::Request::getQueries(), core::socket::stream::SocketContext::getSocketConnection(), web::http::client::Request::getTrailer(), 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, httputils::toString(), and web::http::client::Request::url.
Referenced by web::http::client::MasterRequest::requestPrepared().
|
private |
Definition at line 219 of file SocketContext.cpp.
References deliveredRequests, core::socket::stream::SocketConnection::getConnectionName(), core::socket::stream::SocketContext::getSocketConnection(), and core::socket::stream::SocketContext::shutdownWrite().
Referenced by SocketContext().
|
private |
Definition at line 305 of file SocketContext.cpp.
References core::socket::stream::SocketContext::getSocketConnection(), onServerSentEvent, and core::socket::stream::SocketConnection::setWriteTimeout().
Referenced by web::http::client::MasterRequest::requestEventSource().
|
friend |
Definition at line 121 of file SocketContext.h.
|
private |
Definition at line 102 of file SocketContext.h.
Referenced by deliverResponse(), deliverResponseParseError(), onDisconnected(), onReceivedFromPeer(), requestDelivered(), responseStarted(), and ~SocketContext().
|
private |
Definition at line 117 of file SocketContext.h.
Referenced by requestPrepared().
|
private |
Definition at line 119 of file SocketContext.h.
Referenced by onReceivedFromPeer(), and requestCompleted().
|
private |
Definition at line 106 of file SocketContext.h.
Referenced by initiateRequest(), onConnected(), onDisconnected(), requestCompleted(), requestDelivered(), and SocketContext().
|
private |
Definition at line 90 of file SocketContext.h.
Referenced by onConnected(), and SocketContext().
|
private |
Definition at line 91 of file SocketContext.h.
Referenced by onDisconnected(), and SocketContext().
|
private |
Definition at line 99 of file SocketContext.h.
Referenced by onReceivedFromPeer(), and setSseEventReceiver().
|
private |
Definition at line 108 of file SocketContext.h.
Referenced by onReceivedFromPeer(), and SocketContext().
|
private |
Definition at line 101 of file SocketContext.h.
Referenced by initiateRequest(), requestCompleted(), requestDelivered(), requestPrepared(), and ~SocketContext().
|
private |
Definition at line 104 of file SocketContext.h.
Referenced by requestCompleted(), requestDelivered(), and SocketContext().