SNode.C
Loading...
Searching...
No Matches
core::socket::stream Namespace Reference

Namespaces

namespace  legacy
 
namespace  stream
 
namespace  tls
 

Classes

class  SocketAcceptor
 
class  SocketClient
 
class  SocketConnection
 
class  SocketConnectionT
 
class  SocketConnector
 
class  SocketContext
 
class  SocketContextFactory
 
class  SocketReader
 
class  SocketServer
 
class  SocketWriter
 

Functions

template<typename SocketAddress , typename PhysicalSocket , typename Config >
SocketAddress getLocalSocketAddress (PhysicalSocket &physicalSocket, Config &config)
 
template<typename SocketAddress , typename PhysicalSocket , typename Config >
SocketAddress getRemoteSocketAddress (PhysicalSocket &physicalSocket, Config &config)
 
template<typename SocketClient , typename... Args>
SocketClient Client (const std::string &instanceName, const std::function< void(typename SocketClient::Config &)> &configurator, Args &&... socketContextFactoryArgs)
 
template<typename SocketClient , typename... Args>
SocketClient Client (const std::string &instanceName, Args &&... socketContextFactoryArgs)
 
template<typename SocketServer , typename... Args>
SocketServer Server (const std::string &instanceName, const std::function< void(typename SocketServer::Config &)> &configurator, Args &&... socketContextFactoryArgs)
 
template<typename SocketServer , typename... Args>
SocketServer Server (const std::string &instanceName, Args &&... socketContextFactoryArgs)
 

Function Documentation

◆ Client() [1/2]

template<typename SocketClient , typename... Args>
SocketClient core::socket::stream::Client ( const std::string &  instanceName,
Args &&...  socketContextFactoryArgs 
)

Definition at line 272 of file SocketClient.h.

272 {
273 return SocketClient(instanceName, std::forward<Args>(socketContextFactoryArgs)...);
274 }

◆ Client() [2/2]

template<typename SocketClient , typename... Args>
SocketClient core::socket::stream::Client ( const std::string &  instanceName,
const std::function< void(typename SocketClient::Config &)> &  configurator,
Args &&...  socketContextFactoryArgs 
)

Definition at line 261 of file SocketClient.h.

263 {
264 const SocketClient socketClient(instanceName, std::forward<Args>(socketContextFactoryArgs)...);
265
266 configurator(socketClient.getConfig());
267
268 return socketClient;
269 }

◆ getLocalSocketAddress()

template<typename SocketAddress , typename PhysicalSocket , typename Config >
SocketAddress core::socket::stream::getLocalSocketAddress ( PhysicalSocket &  physicalSocket,
Config &  config 
)

Definition at line 59 of file SocketAcceptor.hpp.

59 {
60 typename SocketAddress::SockAddr localSockAddr;
61 typename SocketAddress::SockLen localSockAddrLen = sizeof(typename SocketAddress::SockAddr);
62
63 SocketAddress localPeerAddress;
64 if (physicalSocket.getSockName(localSockAddr, localSockAddrLen) == 0) {
65 try {
66 localPeerAddress = config->Local::getSocketAddress(localSockAddr, localSockAddrLen);
67 LOG(TRACE) << config->getInstanceName() << " [" << physicalSocket.getFd() << "]" << std::setw(25)
68 << " PeerAddress (local): " << localPeerAddress.toString();
69 } catch (const typename SocketAddress::BadSocketAddress& badSocketAddress) {
70 LOG(WARNING) << config->getInstanceName() << " [" << physicalSocket.getFd() << "]" << std::setw(25)
71 << " PeerAddress (local): " << badSocketAddress.what();
72 }
73 } else {
74 PLOG(WARNING) << config->getInstanceName() << " [" << physicalSocket.getFd() << "]" << std::setw(25)
75 << " PeerAddress (local) not retrievable";
76 }
77
78 return localPeerAddress;
79 }
virtual std::string toString(bool expanded=true) const =0

◆ getRemoteSocketAddress()

template<typename SocketAddress , typename PhysicalSocket , typename Config >
SocketAddress core::socket::stream::getRemoteSocketAddress ( PhysicalSocket &  physicalSocket,
Config &  config 
)

Definition at line 82 of file SocketAcceptor.hpp.

82 {
83 typename SocketAddress::SockAddr remoteSockAddr;
84 typename SocketAddress::SockLen remoteSockAddrLen = sizeof(typename SocketAddress::SockAddr);
85
86 SocketAddress remotePeerAddress;
87 if (physicalSocket.getPeerName(remoteSockAddr, remoteSockAddrLen) == 0) {
88 try {
89 remotePeerAddress = config->Remote::getSocketAddress(remoteSockAddr, remoteSockAddrLen);
90 LOG(TRACE) << config->getInstanceName() << " [" << physicalSocket.getFd() << "]" << std::setw(25)
91 << " PeerAddress (remote): " << remotePeerAddress.toString();
92 } catch (const typename SocketAddress::BadSocketAddress& badSocketAddress) {
93 LOG(WARNING) << config->getInstanceName() << " [" << physicalSocket.getFd() << "]" << std::setw(25)
94 << " PeerAddress (remote): " << badSocketAddress.what();
95 }
96 } else {
97 PLOG(WARNING) << config->getInstanceName() << " [" << physicalSocket.getFd() << "]" << std::setw(25)
98 << " PeerAddress (remote) not retrievable";
99 }
100
101 return remotePeerAddress;
102 }

◆ Server() [1/2]

template<typename SocketServer , typename... Args>
SocketServer core::socket::stream::Server ( const std::string &  instanceName,
Args &&...  socketContextFactoryArgs 
)

Definition at line 266 of file SocketServer.h.

266 {
267 return SocketServer(instanceName, std::forward<Args>(socketContextFactoryArgs)...);
268 }

◆ Server() [2/2]

template<typename SocketServer , typename... Args>
SocketServer core::socket::stream::Server ( const std::string &  instanceName,
const std::function< void(typename SocketServer::Config &)> &  configurator,
Args &&...  socketContextFactoryArgs 
)

Definition at line 255 of file SocketServer.h.

257 {
258 const SocketServer socketServer(instanceName, std::forward<Args>(socketContextFactoryArgs)...);
259
260 configurator(socketServer.getConfig());
261
262 return socketServer;
263 }