SNode.C
Loading...
Searching...
No Matches
core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT > Class Template Reference

#include <SocketConnection.h>

Inheritance diagram for core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >:
Collaboration diagram for core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >:

Public Member Functions

 SocketConnectionT ()=delete
int getFd () const final
void setTimeout (const utils::Timeval &timeout) final
void setReadTimeout (const utils::Timeval &timeout) final
void setWriteTimeout (const utils::Timeval &timeout) final
const SocketAddressgetBindAddress () const final
const SocketAddressgetLocalAddress () const final
const SocketAddressgetRemoteAddress () const final
std::size_t readFromPeer (char *chunk, std::size_t chunkLen) final
void sendToPeer (const char *chunk, std::size_t chunkLen) final
bool streamToPeer (core::pipe::Source *source) final
void streamEof () final
void shutdownRead () final
void shutdownWrite () final
void close () final
ConfiggetConfig () const
std::size_t getTotalSent () const override
std::size_t getTotalQueued () const override
std::size_t getTotalRead () const override
std::size_t getTotalProcessed () const override
void sendToPeer (const std::string &data)
Public Member Functions inherited from core::socket::stream::SocketConnection
 SocketConnection (int fd, const net::config::ConfigInstance *config)
 SocketConnection (const SocketConnection &)=delete
void setSocketContext (SocketContext *socketContext)
void sendToPeer (const std::string &data)
void sentToPeer (const std::vector< uint8_t > &data)
void sentToPeer (const std::vector< char > &data)
const std::string & getInstanceName () const
const std::string & getConnectionName () const
SocketContextgetSocketContext () const
std::string getOnlineSince () const
std::string getOnlineDuration () const
const net::config::ConfigInstancegetConfigInstance () const

Protected Types

using Super = core::socket::stream::SocketConnection
using Config = ConfigT
using PhysicalSocket = PhysicalSocketT
using SocketReader = SocketReaderT
using SocketWriter = SocketWriterT
using SocketAddress = typename PhysicalSocket::SocketAddress

Protected Member Functions

 SocketConnectionT (PhysicalSocket &&physicalSocket, const std::function< void()> &onDisconnect, const std::shared_ptr< Config > &config)
 ~SocketConnectionT () override
void doWriteShutdown (const std::function< void()> &onShutdown) override
void onWriteError (int errnum)
void onReadError (int errnum)
Protected Member Functions inherited from core::socket::stream::SocketConnection
virtual ~SocketConnection ()
void setSocketContext (const std::shared_ptr< SocketContextFactory > &socketContextFactory)

Private Member Functions

void onReceivedFromPeer (std::size_t available) final
bool onSignal (int signum) final
void readTimeout () final
void writeTimeout () final
void unobservedEvent () final

Private Attributes

PhysicalSocket physicalSocket
std::function< void()> onDisconnect
SocketAddress localAddress {}
SocketAddress remoteAddress {}
std::shared_ptr< Configconfig

Additional Inherited Members

Protected Attributes inherited from core::socket::stream::SocketConnection
core::socket::stream::SocketContextsocketContext = nullptr
core::socket::stream::SocketContextnewSocketContext = nullptr
std::string instanceName
std::string connectionName
std::chrono::time_point< std::chrono::system_clock > onlineSinceTimePoint

Detailed Description

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
class core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >

Definition at line 158 of file SocketConnection.h.

Member Typedef Documentation

◆ Config

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
using core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::Config = ConfigT
protected

Definition at line 165 of file SocketConnection.h.

◆ PhysicalSocket

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
using core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::PhysicalSocket = PhysicalSocketT
protected

Definition at line 166 of file SocketConnection.h.

◆ SocketAddress

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
using core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::SocketAddress = typename PhysicalSocket::SocketAddress
protected

Definition at line 169 of file SocketConnection.h.

◆ SocketReader

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
using core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::SocketReader = SocketReaderT
protected

Definition at line 167 of file SocketConnection.h.

◆ SocketWriter

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
using core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::SocketWriter = SocketWriterT
protected

Definition at line 168 of file SocketConnection.h.

◆ Super

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
using core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::Super = core::socket::stream::SocketConnection
protected

Definition at line 163 of file SocketConnection.h.

Constructor & Destructor Documentation

◆ SocketConnectionT() [1/2]

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::SocketConnectionT ( )
delete

◆ SocketConnectionT() [2/2]

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::SocketConnectionT ( PhysicalSocket && physicalSocket,
const std::function< void()> & onDisconnect,
const std::shared_ptr< Config > & config )
protected

Definition at line 105 of file SocketConnection.hpp.

108 : SocketConnection(physicalSocket.getFd(), config.get())
109 , SocketReader(
111 [this](int errnum) {
112 {
114 if (errno == 0) {
115 LOG(TRACE) << connectionName << " OnReadError: EOF received";
116 } else {
117 PLOG(TRACE) << connectionName << " OnReadError";
118 }
119 }
121
123 },
124 config->getReadTimeout(),
125 config->getReadBlockSize(),
126 config->getTerminateTimeout())
127 , SocketWriter(
129 [this](int errnum) {
130 {
132 PLOG(TRACE) << connectionName << " OnWriteError";
133 }
135
137 },
138 config->getWriteTimeout(),
139 config->getWriteBlockSize(),
140 config->getTerminateTimeout())
145 , config(config) {
146 if (!SocketReader::enable(this->physicalSocket.getFd())) {
147 delete this;
148 } else if (!SocketWriter::enable(this->physicalSocket.getFd())) {
149 delete this;
150 } else {
152 }
153 }
#define LOG(level)
Definition Logger.h:148
#define PLOG(level)
Definition Logger.h:152
SocketConnection(int fd, const net::config::ConfigInstance *config)
const std::string & getConnectionName() const

References core::socket::stream::SocketConnection::connectionName, core::socket::stream::SocketConnection::getConnectionName(), logger::LogMessage::LogMessage(), onReadError(), utils::PreserveErrno::PreserveErrno(), and logger::TRACE.

Here is the call graph for this function:

◆ ~SocketConnectionT()

Definition at line 156 of file SocketConnection.hpp.

156 {
157 }

Member Function Documentation

◆ close()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::close ( )
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 252 of file SocketConnection.hpp.

252 {
255 }
258 }
259 }

Referenced by onReceivedFromPeer(), readTimeout(), and writeTimeout().

Here is the caller graph for this function:

◆ doWriteShutdown()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::doWriteShutdown ( const std::function< void()> & onShutdown)
overrideprotected

Definition at line 287 of file SocketConnection.hpp.

287 {
288 errno = 0;
289
291
292 LOG(TRACE) << connectionName << ": Shutdown (WR)";
293
294 if (physicalSocket.shutdown(PhysicalSocket::SHUT::WR) == 0) {
295 LOG(DEBUG) << connectionName << " Shutdown (WR): success";
296 } else {
297 PLOG(ERROR) << connectionName << " Shutdown (WR)";
298 }
299
300 onShutdown();
301 }
void setTimeout(const utils::Timeval &timeout) final

References core::socket::stream::SocketConnection::connectionName, logger::DEBUG, logger::ERROR, logger::LogMessage::LogMessage(), physicalSocket, setTimeout(), and logger::TRACE.

Here is the call graph for this function:

◆ getBindAddress()

Implements core::socket::stream::SocketConnection.

Definition at line 181 of file SocketConnection.hpp.

181 {
182 return physicalSocket.getBindAddress();
183 }

◆ getConfig()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
Config * core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::getConfig ( ) const

Definition at line 262 of file SocketConnection.hpp.

262 {
263 return config.get();
264 }

References config.

◆ getFd()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
int core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::getFd ( ) const
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 175 of file SocketConnection.hpp.

175 {
176 return physicalSocket.getFd();
177 }

References physicalSocket.

◆ getLocalAddress()

Implements core::socket::stream::SocketConnection.

Definition at line 187 of file SocketConnection.hpp.

187 {
188 return localAddress;
189 }

Referenced by tls::getClient(), and legacy::getLegacyClient().

Here is the caller graph for this function:

◆ getRemoteAddress()

Implements core::socket::stream::SocketConnection.

Definition at line 193 of file SocketConnection.hpp.

193 {
194 return remoteAddress;
195 }

References remoteAddress.

Referenced by tls::getClient(), and legacy::getLegacyClient().

Here is the caller graph for this function:

◆ getTotalProcessed()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
std::size_t core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::getTotalProcessed ( ) const
overridevirtual

Implements core::socket::stream::SocketConnection.

Definition at line 282 of file SocketConnection.hpp.

282 {
284 }
std::size_t getTotalProcessed() const

◆ getTotalQueued()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
std::size_t core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::getTotalQueued ( ) const
overridevirtual

Implements core::socket::stream::SocketConnection.

Definition at line 272 of file SocketConnection.hpp.

272 {
274 }

◆ getTotalRead()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
std::size_t core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::getTotalRead ( ) const
overridevirtual

Implements core::socket::stream::SocketConnection.

Definition at line 277 of file SocketConnection.hpp.

277 {
279 }

◆ getTotalSent()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
std::size_t core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::getTotalSent ( ) const
overridevirtual

Implements core::socket::stream::SocketConnection.

Definition at line 267 of file SocketConnection.hpp.

267 {
269 }

◆ onReadError()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::onReadError ( int errnum)
protected

Definition at line 332 of file SocketConnection.hpp.

332 {
333 socketContext->onReadError(errnum);
334 }
core::socket::stream::SocketContext * socketContext

References core::socket::stream::SocketContext::onReadError(), and core::socket::stream::SocketConnection::socketContext.

Referenced by SocketConnectionT().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onReceivedFromPeer()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::onReceivedFromPeer ( std::size_t available)
finalprivate

Definition at line 304 of file SocketConnection.hpp.

304 {
305 std::size_t consumed = socketContext->readFromPeer();
306
307 if (available != 0 && consumed == 0) {
308 LOG(TRACE) << connectionName << ": Data available: " << available << " but nothing read";
309
310 close();
311
312 delete newSocketContext;
313 newSocketContext = nullptr;
314 } else if (newSocketContext != nullptr) { // Perform a pending SocketContextSwitch
315 socketContext->detach();
316
318 newSocketContext = nullptr;
319
320 socketContext->attach();
321
322 LOG(DEBUG) << connectionName << " SocketConnection: switch completed";
323 }
324 }
core::socket::stream::SocketContext * newSocketContext

References core::socket::stream::SocketContext::attach(), close(), core::socket::stream::SocketConnection::connectionName, logger::DEBUG, core::socket::stream::SocketContext::detach(), logger::LogMessage::LogMessage(), core::socket::stream::SocketConnection::newSocketContext, core::socket::stream::SocketContext::readFromPeer(), core::socket::stream::SocketConnection::socketContext, and logger::TRACE.

Here is the call graph for this function:

◆ onSignal()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
bool core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::onSignal ( int signum)
finalprivate

Definition at line 337 of file SocketConnection.hpp.

337 {
338 switch (signum) {
339 case SIGINT:
340 [[fallthrough]];
341 case SIGTERM:
342 [[fallthrough]];
343 case SIGABRT:
344 [[fallthrough]];
345 case SIGHUP:
346 LOG(DEBUG) << connectionName << ": Shutting down due to signal '" << utils::system::strsignal(signum) << "' (SIG"
347 << utils::system::sigabbrev_np(signum) << " [" << signum << "])";
348 break;
349 case SIGALRM:
350 break;
351 }
352
353 return socketContext != nullptr ? socketContext->onSignal(signum) : true;
354 }
std::string strsignal(int sig)
Definition signal.cpp:71
std::string sigabbrev_np(int sig)
Definition signal.cpp:60

References core::socket::stream::SocketConnection::connectionName, logger::DEBUG, logger::LogMessage::LogMessage(), core::socket::SocketContext::onSignal(), utils::system::sigabbrev_np(), core::socket::stream::SocketConnection::socketContext, and utils::system::strsignal().

Here is the call graph for this function:

◆ onWriteError()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::onWriteError ( int errnum)
protected

Definition at line 327 of file SocketConnection.hpp.

327 {
328 socketContext->onWriteError(errnum);
329 }

References core::socket::stream::SocketContext::onWriteError(), and core::socket::stream::SocketConnection::socketContext.

Here is the call graph for this function:

◆ readFromPeer()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
std::size_t core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::readFromPeer ( char * chunk,
std::size_t chunkLen )
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 198 of file SocketConnection.hpp.

198 {
199 std::size_t ret = 0;
200
201 if (newSocketContext == nullptr) {
203 } else {
204 LOG(TRACE) << connectionName << " ReadFromPeer: New SocketContext != nullptr: SocketContextSwitch still in progress";
205 }
206
207 return ret;
208 }
std::size_t readFromPeer(char *chunk, std::size_t chunkLen)

◆ readTimeout()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::readTimeout ( )
finalprivate

Definition at line 357 of file SocketConnection.hpp.

357 {
358 LOG(WARNING) << connectionName << ": Read timeout";
359 close();
360 }

References close(), core::socket::stream::SocketConnection::connectionName, logger::LogMessage::LogMessage(), and logger::WARNING.

Here is the call graph for this function:

◆ sendToPeer() [1/2]

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::sendToPeer ( const char * chunk,
std::size_t chunkLen )
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 211 of file SocketConnection.hpp.

211 {
213 }
void sendToPeer(const char *chunk, std::size_t chunkLen)

◆ sendToPeer() [2/2]

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
void core::socket::stream::SocketConnection::sendToPeer ( const std::string & data)

Definition at line 98 of file SocketConnection.cpp.

96 {
97 sendToPeer(data.data(), data.size());
98 }
void sendToPeer(const char *chunk, std::size_t chunkLen) final

◆ setReadTimeout()

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
void core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::setReadTimeout ( const utils::Timeval & timeout)
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 166 of file SocketConnection.hpp.

166 {
168 }
void setTimeout(const utils::Timeval &timeout)

Referenced by setTimeout().

Here is the caller graph for this function:

◆ setTimeout()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::setTimeout ( const utils::Timeval & timeout)
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 160 of file SocketConnection.hpp.

160 {
163 }
void setReadTimeout(const utils::Timeval &timeout) final
void setWriteTimeout(const utils::Timeval &timeout) final

References setReadTimeout(), and setWriteTimeout().

Referenced by doWriteShutdown().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setWriteTimeout()

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
void core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::setWriteTimeout ( const utils::Timeval & timeout)
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 170 of file SocketConnection.hpp.

170 {
172 }

Referenced by setTimeout().

Here is the caller graph for this function:

◆ shutdownRead()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::shutdownRead ( )
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 226 of file SocketConnection.hpp.

226 {
227 LOG(TRACE) << connectionName << ": Shutdown (RD)";
228
230
231 if (physicalSocket.shutdown(PhysicalSocket::SHUT::RD) == 0) {
232 LOG(DEBUG) << connectionName << " Shutdown (RD): success";
233 } else {
234 PLOG(ERROR) << connectionName << " Shutdown (RD)";
235 }
236 }

References core::socket::stream::SocketConnection::connectionName, logger::DEBUG, logger::ERROR, logger::LogMessage::LogMessage(), physicalSocket, and logger::TRACE.

Here is the call graph for this function:

◆ shutdownWrite()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::shutdownWrite ( )
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 239 of file SocketConnection.hpp.

239 {
241 LOG(TRACE) << connectionName << ": Stop writing";
242
246 }
247 });
248 }
249 }
void shutdownWrite(const std::function< void()> &onShutdown)

References core::socket::stream::SocketConnection::connectionName, logger::LogMessage::LogMessage(), and logger::TRACE.

Here is the call graph for this function:

◆ streamEof()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::streamEof ( )
finalvirtual

◆ streamToPeer()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
bool core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::streamToPeer ( core::pipe::Source * source)
finalvirtual

Implements core::socket::stream::SocketConnection.

Definition at line 216 of file SocketConnection.hpp.

216 {
218 }
bool streamToPeer(core::pipe::Source *source)

◆ unobservedEvent()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::unobservedEvent ( )
finalprivate

Definition at line 369 of file SocketConnection.hpp.

369 {
370 if (socketContext != nullptr) {
371 socketContext->detach();
372 }
373
374 onDisconnect();
375
376 LOG(DEBUG) << connectionName << ": disconnected";
377
378 delete this;
379 }

References core::socket::stream::SocketConnection::connectionName, logger::DEBUG, core::socket::stream::SocketContext::detach(), logger::LogMessage::LogMessage(), onDisconnect, and core::socket::stream::SocketConnection::socketContext.

Here is the call graph for this function:

◆ writeTimeout()

template<typename PhysicalSocket, typename SocketReader, typename SocketWriter, typename Config>
void core::socket::stream::SocketConnectionT< PhysicalSocket, SocketReader, SocketWriter, Config >::writeTimeout ( )
finalprivate

Definition at line 363 of file SocketConnection.hpp.

363 {
364 LOG(WARNING) << connectionName << ": Write timeout";
365 close();
366 }

References close(), core::socket::stream::SocketConnection::connectionName, logger::LogMessage::LogMessage(), and logger::WARNING.

Here is the call graph for this function:

Member Data Documentation

◆ config

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
std::shared_ptr<Config> core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::config
private

Definition at line 235 of file SocketConnection.h.

Referenced by getConfig().

◆ localAddress

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
SocketAddress core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::localAddress {}
private

Definition at line 232 of file SocketConnection.h.

232{};

◆ onDisconnect

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
std::function<void()> core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::onDisconnect
private

Definition at line 230 of file SocketConnection.h.

Referenced by unobservedEvent().

◆ physicalSocket

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
PhysicalSocket core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::physicalSocket
private

Definition at line 228 of file SocketConnection.h.

Referenced by doWriteShutdown(), getFd(), and shutdownRead().

◆ remoteAddress

template<typename PhysicalSocketT, typename SocketReaderT, typename SocketWriterT, typename ConfigT>
SocketAddress core::socket::stream::SocketConnectionT< PhysicalSocketT, SocketReaderT, SocketWriterT, ConfigT >::remoteAddress {}
private

Definition at line 233 of file SocketConnection.h.

233{};

Referenced by getRemoteAddress().


The documentation for this class was generated from the following files: