|
SNode.C
|
#include <SocketContext.h>
Public Member Functions | |
| 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 |
Protected Member Functions | |
| void | onWriteError (int errnum) override |
| void | onReadError (int errnum) override |
| void | readFromPeer (std::size_t available) |
Protected Member Functions inherited from core::socket::SocketContext | |
| SocketContext ()=default | |
| virtual | ~SocketContext () |
| virtual std::size_t | onReceivedFromPeer ()=0 |
| virtual bool | onSignal (int sig)=0 |
Private Types | |
| using | Super = core::socket::SocketContext |
Private Member Functions | |
| virtual void | onConnected ()=0 |
| virtual void | onDisconnected ()=0 |
| virtual void | attach () |
| virtual void | detach () |
Static Private Member Functions | |
| static std::string | timePointToString (const std::chrono::time_point< std::chrono::system_clock > &timePoint) |
| static std::string | durationToString (const std::chrono::time_point< std::chrono::system_clock > &bevore, const std::chrono::time_point< std::chrono::system_clock > &later=std::chrono::system_clock::now()) |
Private Attributes | |
| core::socket::stream::SocketConnection * | socketConnection |
| core::socket::stream::SocketContext * | newSocketContext = nullptr |
| std::string | onlineSince |
| std::size_t | alreadyTotalQueued = 0 |
| std::size_t | alreadyTotalProcessed = 0 |
| std::chrono::time_point< std::chrono::system_clock > | onlineSinceTimePoint |
Friends | |
| template<typename PhysicalSocketT , class SocketReaderT , class SocketWriterT , typename ConfigT > | |
| class | SocketConnectionT |
| class | SocketConnection |
Definition at line 66 of file SocketContext.h.
Definition at line 68 of file SocketContext.h.
|
explicit |
Definition at line 60 of file SocketContext.cpp.
References onlineSinceTimePoint, and socketConnection.
Referenced by apps::echo::model::EchoSocketContext::EchoSocketContext(), apps::http::SimpleSocketProtocol::SimpleSocketProtocol(), iot::mqtt_fast::SocketContext::SocketContext(), web::http::client::SocketContext::SocketContext(), web::http::server::SocketContext::SocketContext(), and iot::mqtt::SocketContext::SocketContext().
|
privatevirtual |
Definition at line 178 of file SocketContext.cpp.
References alreadyTotalProcessed, alreadyTotalQueued, core::socket::stream::SocketConnection::getTotalProcessed(), core::socket::stream::SocketConnection::getTotalQueued(), onConnected(), and socketConnection.
Referenced by core::socket::stream::SocketConnection::setSocketContext().
|
overridevirtual |
Implements core::socket::SocketContext.
Reimplemented in iot::mqtt::SocketContext.
Definition at line 125 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::close(), and socketConnection.
Referenced by iot::mqtt::SocketContext::close(), web::http::client::MasterRequest::executeUpgrade(), iot::mqtt_fast::SocketContext::onReceivedFromPeer(), web::http::client::MasterRequest::onSourceError(), web::http::server::Response::onSourceError(), readFromPeer(), and web::http::client::Request::upgrade().
|
privatevirtual |
Definition at line 185 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), getOnlineDuration(), getOnlineSince(), getTotalProcessed(), getTotalQueued(), onDisconnected(), and socketConnection.
Referenced by core::socket::stream::SocketConnection::setSocketContext(), and core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::unobservedEvent().
|
staticprivate |
Definition at line 212 of file SocketContext.cpp.
Referenced by getOnlineDuration().
|
overridevirtual |
Implements core::socket::SocketContext.
Reimplemented in web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >, web::websocket::SocketContextUpgrade< SubProtocol, web::http::client::Request, web::http::client::Response >, and web::websocket::SocketContextUpgrade< SubProtocol, web::http::server::Request, web::http::server::Response >.
Definition at line 148 of file SocketContext.cpp.
References durationToString(), and onlineSinceTimePoint.
Referenced by detach().
|
overridevirtual |
Implements core::socket::SocketContext.
Reimplemented in web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >, web::websocket::SocketContextUpgrade< SubProtocol, web::http::client::Request, web::http::client::Response >, and web::websocket::SocketContextUpgrade< SubProtocol, web::http::server::Request, web::http::server::Response >.
Definition at line 145 of file SocketContext.cpp.
References onlineSinceTimePoint, and timePointToString().
Referenced by detach().
| SocketConnection * core::socket::stream::SocketContext::getSocketConnection | ( | ) | const |
Definition at line 70 of file SocketContext.cpp.
References socketConnection.
Referenced by web::http::server::SocketContext::deliverRequest(), web::http::client::SocketContext::deliverResponse(), web::http::client::SocketContext::deliverResponseParseError(), express::dispatcher::ApplicationDispatcher::dispatch(), express::dispatcher::MiddlewareDispatcher::dispatch(), express::dispatcher::RouterDispatcher::dispatch(), web::http::client::MasterRequest::executeUpgrade(), iot::mqtt::SocketContext::getSocketConnection(), web::http::client::SocketContext::initiateRequest(), main(), web::http::client::SocketContext::onConnected(), web::http::server::SocketContext::onConnected(), web::http::client::SocketContext::onDisconnected(), web::http::server::SocketContext::onDisconnected(), web::http::client::SocketContext::onSignal(), web::http::server::SocketContext::onSignal(), web::http::server::SocketContext::requestCompleted(), web::http::client::SocketContext::requestCompleted(), web::http::client::SocketContext::requestDelivered(), web::http::client::MasterRequest::requestEventSource(), web::http::client::SocketContext::requestPrepared(), web::http::server::SocketContext::responseCompleted(), web::http::client::SocketContext::responseStarted(), web::http::server::SocketContext::responseStarted(), web::http::client::SocketContext::setSseEventReceiver(), web::http::server::SocketContext::SocketContext(), express::middleware::StaticMiddleware::StaticMiddleware(), web::http::server::Response::upgrade(), web::http::client::Request::upgrade(), web::http::client::MasterRequest::upgrade(), express::middleware::VerboseRequest::VerboseRequest(), and web::http::client::SocketContext::~SocketContext().
|
overridevirtual |
Implements core::socket::SocketContext.
Definition at line 141 of file SocketContext.cpp.
References alreadyTotalProcessed, core::socket::stream::SocketConnection::getTotalProcessed(), and socketConnection.
Referenced by detach().
|
overridevirtual |
Implements core::socket::SocketContext.
Definition at line 133 of file SocketContext.cpp.
References alreadyTotalQueued, core::socket::stream::SocketConnection::getTotalQueued(), and socketConnection.
Referenced by detach().
|
overridevirtual |
Implements core::socket::SocketContext.
Definition at line 137 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getTotalRead(), and socketConnection.
|
overridevirtual |
Implements core::socket::SocketContext.
Definition at line 129 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getTotalSent(), and socketConnection.
|
privatepure virtual |
Implemented in apps::echo::model::EchoSocketContext, apps::http::SimpleSocketProtocol, apps::http::SimpleSocketProtocol, iot::mqtt::SocketContext, web::http::client::SocketContext, web::http::server::SocketContext, web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >, web::websocket::SocketContextUpgrade< SubProtocol, web::http::client::Request, web::http::client::Response >, and web::websocket::SocketContextUpgrade< SubProtocol, web::http::server::Request, web::http::server::Response >.
Referenced by attach().
|
privatepure virtual |
Implemented in apps::echo::model::EchoSocketContext, apps::http::SimpleSocketProtocol, apps::http::SimpleSocketProtocol, iot::mqtt::SocketContext, web::http::client::SocketContext, web::http::server::SocketContext, web::websocket::SocketContextUpgrade< SubProtocolT, RequestT, ResponseT >, web::websocket::SocketContextUpgrade< SubProtocol, web::http::client::Request, web::http::client::Response >, and web::websocket::SocketContextUpgrade< SubProtocol, web::http::server::Request, web::http::server::Response >.
Referenced by detach().
|
overrideprotectedvirtual |
Implements core::socket::SocketContext.
Definition at line 167 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), shutdownWrite(), and socketConnection.
Referenced by core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::onReadError(), and apps::http::SimpleSocketProtocol::onReadError().
|
overrideprotectedvirtual |
Implements core::socket::SocketContext.
Reimplemented in web::http::client::SocketContext, and web::http::server::SocketContext.
Definition at line 160 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), shutdownRead(), and socketConnection.
Referenced by core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::onWriteError(), and apps::http::SimpleSocketProtocol::onWriteError().
|
finalvirtual |
Implements core::socket::SocketContext.
Definition at line 108 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), newSocketContext, core::socket::stream::SocketConnection::readFromPeer(), and socketConnection.
Referenced by apps::echo::model::EchoSocketContext::onReceivedFromPeer(), web::http::decoder::Fields::read(), web::http::decoder::HTTP10Response::read(), web::http::decoder::Identity::read(), web::http::decoder::Chunked::Chunk::read(), web::http::Parser::readStartLine(), and iot::mqtt::SocketContext::recv().
|
virtual |
Implements core::socket::SocketContext.
|
protected |
Definition at line 86 of file SocketContext.cpp.
References close(), core::socket::stream::SocketConnection::getConnectionName(), newSocketContext, core::socket::SocketContext::onReceivedFromPeer(), core::socket::stream::SocketConnection::setSocketContext(), and socketConnection.
Referenced by core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::onReceivedFromPeer().
|
finalvirtual |
Implements core::socket::SocketContext.
Definition at line 74 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::sendToPeer(), and socketConnection.
Referenced by web::http::client::MasterRequest::executeSendFragment(), apps::echo::model::EchoSocketContext::onReceivedFromPeer(), iot::mqtt::SocketContext::send(), iot::mqtt_fast::SocketContext::send(), and web::http::server::Response::sendFragment().
|
virtual |
Implements core::socket::SocketContext.
| void core::socket::SocketContext::sendToPeer | ( | const std::string & | data | ) | const |
Definition at line 75 of file SocketContext.cpp.
|
finalvirtual |
Implements core::socket::SocketContext.
Definition at line 121 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::setTimeout(), and socketConnection.
| void core::socket::stream::SocketContext::shutdownRead | ( | ) |
Definition at line 152 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::shutdownRead(), and socketConnection.
Referenced by apps::http::SimpleSocketProtocol::onWriteError(), and onWriteError().
| void core::socket::stream::SocketContext::shutdownWrite | ( | bool | forceClose = false | ) |
Definition at line 156 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::shutdownWrite(), and socketConnection.
Referenced by web::http::client::SocketContext::deliverResponseParseError(), iot::mqtt::SocketContext::end(), apps::http::SimpleSocketProtocol::onReadError(), onReadError(), web::http::server::SocketContext::requestCompleted(), web::http::client::SocketContext::requestDelivered(), web::http::client::MasterRequest::requestEventSource(), web::http::server::SocketContext::responseCompleted(), and web::http::client::SocketContext::responseStarted().
| void core::socket::stream::SocketContext::streamEof | ( | ) |
Definition at line 82 of file SocketContext.cpp.
References socketConnection, and core::socket::stream::SocketConnection::streamEof().
Referenced by web::http::client::MasterRequest::onSourceEof(), web::http::server::Response::onSourceEof(), web::http::client::MasterRequest::onSourceError(), web::http::server::Response::onSourceError(), web::http::client::MasterRequest::~MasterRequest(), and web::http::server::Response::~Response().
| bool core::socket::stream::SocketContext::streamToPeer | ( | core::pipe::Source * | source | ) | const |
Definition at line 78 of file SocketContext.cpp.
References socketConnection, and core::socket::stream::SocketConnection::streamToPeer().
Referenced by web::http::client::MasterRequest::onSourceConnect(), and web::http::server::Response::onSourceConnect().
| void core::socket::stream::SocketContext::switchSocketContext | ( | SocketContext * | newSocketContext | ) |
Definition at line 65 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), newSocketContext, and socketConnection.
Referenced by web::http::server::Response::upgrade(), and web::http::client::Request::upgrade().
|
staticprivate |
Definition at line 197 of file SocketContext.cpp.
Referenced by getOnlineSince().
|
friend |
Definition at line 130 of file SocketContext.h.
|
friend |
Definition at line 129 of file SocketContext.h.
|
private |
Definition at line 124 of file SocketContext.h.
Referenced by attach(), and getTotalProcessed().
|
private |
Definition at line 123 of file SocketContext.h.
Referenced by attach(), and getTotalQueued().
|
private |
Definition at line 120 of file SocketContext.h.
Referenced by readFromPeer(), readFromPeer(), and switchSocketContext().
|
private |
Definition at line 122 of file SocketContext.h.
|
private |
Definition at line 126 of file SocketContext.h.
Referenced by getOnlineDuration(), getOnlineSince(), and SocketContext().
|
private |
Definition at line 118 of file SocketContext.h.
Referenced by attach(), close(), detach(), getSocketConnection(), getTotalProcessed(), getTotalQueued(), getTotalRead(), getTotalSent(), onReadError(), onWriteError(), readFromPeer(), readFromPeer(), sendToPeer(), setTimeout(), shutdownRead(), shutdownWrite(), SocketContext(), streamEof(), streamToPeer(), and switchSocketContext().