SNode.C
|
#include <SocketContext.h>
Public Member Functions | |
SocketContext (core::socket::stream::SocketConnection *socketConnection) | |
~SocketContext () override | |
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 |
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 |
Protected Member Functions | |
void | onWriteError (int errnum) override |
void | onReadError (int errnum) override |
![]() | |
SocketContext ()=default | |
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 |
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 > | |
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 core::socket::stream::SocketConnection::getConnectionName(), 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().
|
overridevirtual |
Reimplemented from core::socket::SocketContext.
Reimplemented in web::http::client::SocketContext.
Definition at line 66 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), and socketConnection.
|
privatevirtual |
Definition at line 152 of file SocketContext.cpp.
References alreadyTotalProcessed, alreadyTotalQueued, core::socket::stream::SocketConnection::getConnectionName(), 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 99 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::close(), and socketConnection.
Referenced by iot::mqtt::SocketContext::close(), web::http::client::Request::executeUpgrade(), iot::mqtt_fast::SocketContext::onReceivedFromPeer(), web::http::client::Request::onSourceError(), web::http::server::Response::onSourceError(), and web::http::client::Request::upgrade().
|
privatevirtual |
Definition at line 161 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), getOnlineDuration(), getOnlineSince(), getTotalProcessed(), getTotalQueued(), onDisconnected(), and socketConnection.
Referenced by core::socket::stream::SocketConnection::disconnectCurrentSocketContext().
|
staticprivate |
Definition at line 186 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 122 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 119 of file SocketContext.cpp.
References onlineSinceTimePoint, and timePointToString().
Referenced by detach().
SocketConnection * core::socket::stream::SocketContext::getSocketConnection | ( | ) | const |
Definition at line 75 of file SocketContext.cpp.
References socketConnection.
Referenced by web::http::server::SocketContext::deliverRequest(), web::http::client::SocketContext::deliverResponse(), web::http::client::SocketContext::deliverResponseParseError(), iot::mqtt::SocketContext::getSocketConnection(), web::http::client::SocketContext::initiateRequest(), 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::requestDelivered(), web::http::client::SocketContext::requestPrepared(), web::http::server::SocketContext::responseCompleted(), web::http::client::SocketContext::responseDelivered(), web::http::client::Request::responseParseError(), web::http::client::SocketContext::responseStarted(), web::http::server::SocketContext::responseStarted(), web::http::client::SocketContext::SocketContext(), web::http::server::SocketContext::SocketContext(), express::middleware::StaticMiddleware::StaticMiddleware(), web::http::server::Response::upgrade(), web::http::client::Request::upgrade(), express::middleware::VerboseRequest::VerboseRequest(), and web::http::client::SocketContext::~SocketContext().
|
overridevirtual |
Implements core::socket::SocketContext.
Definition at line 115 of file SocketContext.cpp.
References alreadyTotalProcessed, core::socket::stream::SocketConnection::getTotalProcessed(), and socketConnection.
Referenced by detach().
|
overridevirtual |
Implements core::socket::SocketContext.
Definition at line 107 of file SocketContext.cpp.
References alreadyTotalQueued, core::socket::stream::SocketConnection::getTotalQueued(), and socketConnection.
Referenced by detach().
|
overridevirtual |
Implements core::socket::SocketContext.
Definition at line 111 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getTotalRead(), and socketConnection.
|
overridevirtual |
Implements core::socket::SocketContext.
Definition at line 103 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 141 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), shutdownWrite(), and socketConnection.
Referenced by core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT >::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 134 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), shutdownRead(), and socketConnection.
Referenced by core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT >::onWriteError(), and apps::http::SimpleSocketProtocol::onWriteError().
|
finalvirtual |
Implements core::socket::SocketContext.
Definition at line 91 of file SocketContext.cpp.
References 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().
|
finalvirtual |
Implements core::socket::SocketContext.
Definition at line 79 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::sendToPeer(), and socketConnection.
Referenced by web::http::client::Request::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 95 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::setTimeout(), and socketConnection.
void core::socket::stream::SocketContext::shutdownRead | ( | ) |
Definition at line 126 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 130 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::server::SocketContext::responseCompleted(), and web::http::client::SocketContext::responseStarted().
void core::socket::stream::SocketContext::streamEof | ( | ) |
Definition at line 87 of file SocketContext.cpp.
References socketConnection, and core::socket::stream::SocketConnection::streamEof().
Referenced by web::http::client::Request::onSourceEof(), web::http::server::Response::onSourceEof(), web::http::client::Request::onSourceError(), web::http::server::Response::onSourceError(), web::http::client::Request::~Request(), and web::http::server::Response::~Response().
bool core::socket::stream::SocketContext::streamToPeer | ( | core::pipe::Source * | source | ) | const |
Definition at line 83 of file SocketContext.cpp.
References socketConnection, and core::socket::stream::SocketConnection::streamToPeer().
Referenced by web::http::client::Request::onSourceConnect(), and web::http::server::Response::onSourceConnect().
|
virtual |
Definition at line 70 of file SocketContext.cpp.
References core::socket::stream::SocketConnection::getConnectionName(), socketConnection, and core::socket::stream::SocketConnection::switchSocketContext().
Referenced by web::http::server::Response::sendCompleted(), and web::http::client::Request::upgrade().
|
staticprivate |
Definition at line 171 of file SocketContext.cpp.
Referenced by getOnlineSince().
|
friend |
Definition at line 126 of file SocketContext.h.
|
friend |
Definition at line 125 of file SocketContext.h.
|
private |
Definition at line 120 of file SocketContext.h.
Referenced by attach(), and getTotalProcessed().
|
private |
Definition at line 119 of file SocketContext.h.
Referenced by attach(), and getTotalQueued().
|
private |
Definition at line 118 of file SocketContext.h.
|
private |
Definition at line 122 of file SocketContext.h.
Referenced by getOnlineDuration(), getOnlineSince(), and SocketContext().
|
private |
Definition at line 116 of file SocketContext.h.
Referenced by attach(), close(), detach(), getSocketConnection(), getTotalProcessed(), getTotalQueued(), getTotalRead(), getTotalSent(), onReadError(), onWriteError(), readFromPeer(), sendToPeer(), setTimeout(), shutdownRead(), shutdownWrite(), SocketContext(), streamEof(), streamToPeer(), switchSocketContext(), and ~SocketContext().