2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
43#include "core/socket/stream/legacy/SocketConnector.h"
44#include "core/socket/stream/SocketConnector.hpp"
47#ifndef DOXYGEN_SHOULD_SKIP_THIS
53 template <
typename PhysicalClientSocket,
typename Config>
56 const std::function<
void(SocketConnection*)>& onConnect,
57 const std::function<
void(SocketConnection*)>& onConnected,
58 const std::function<
void(SocketConnection*)>& onDisconnect,
59 const std::function<
void(
const SocketAddress&, core::socket::
State)>& onStatus,
60 const std::shared_ptr<Config>& config)
64 [socketContextFactory, onConnected](SocketConnection* socketConnection) {
65 onConnected(socketConnection);
67 socketConnection->connectSocketContext(socketContextFactory);
74 template <
typename PhysicalSocketServer,
typename Config>
79 template <
typename PhysicalClientSocket,
typename Config>
virtual std::size_t onReceivedFromPeer()=0
virtual bool onSignal(int sig)=0
Config & getConfig() const
std::shared_ptr< Config > config
Socket(const std::string &name)
SocketAddress localAddress
SocketAddress remoteAddress
void unobservedEvent() final
void onReadError(int errnum)
void shutdownRead() final
void onReceivedFromPeer(std::size_t available) final
void onWriteError(int errnum)
void setTimeout(const utils::Timeval &timeout) final
std::size_t readFromPeer(char *chunk, std::size_t chunkLen) final
bool onSignal(int signum) final
const SocketAddress & getRemoteAddress() const final
PhysicalSocket physicalSocket
SocketConnectionT(const std::string &instanceName, PhysicalSocket &&physicalSocket, const std::function< void()> &onDisconnect, const std::string &configuredServer, const SocketAddress &localAddress, const SocketAddress &remoteAddress, const utils::Timeval &readTimeout, const utils::Timeval &writeTimeout, std::size_t readBlockSize, std::size_t writeBlockSize, const utils::Timeval &terminateTimeout)
void doWriteShutdown(const std::function< void()> &onShutdown) override
bool streamToPeer(core::pipe::Source *source) final
void shutdownWrite(bool forceClose) final
void sendToPeer(const char *chunk, std::size_t chunkLen) final
std::function< void()> onDisconnect
const SocketAddress & getLocalAddress() const final
void writeTimeout() final
~SocketConnectionT() override
std::string connectionName
core::socket::stream::SocketContext * newSocketContext
core::socket::stream::SocketContext * socketContext
void disconnectCurrentSocketContext()
void setSocketContext(SocketContext *socketContext)
void onReadError(int errnum) override
void onWriteError(int errnum) override
SocketConnection(const std::string &instanceName, PhysicalSocket &&physicalSocket, const std::function< void(SocketConnection *)> &onDisconnect, const std::string &configuredServer, const SocketAddress &localAddress, const SocketAddress &remoteAddress, const utils::Timeval &readTimeout, const utils::Timeval &writeTimeout, std::size_t readBlockSize, std::size_t writeBlockSize, const utils::Timeval &terminateTimeout)
SocketConnector(const std::shared_ptr< core::socket::stream::SocketContextFactory > &socketContextFactory, const std::function< void(SocketConnection *)> &onConnect, const std::function< void(SocketConnection *)> &onConnected, const std::function< void(SocketConnection *)> &onDisconnect, const std::function< void(const SocketAddress &, core::socket::State)> &onStatus, const std::shared_ptr< Config > &config)
SocketConnector(const SocketConnector &socketConnector)
void useNextSocketAddress() override
PreserveErrno(int newErrno=errno)
std::string sigabbrev_np(int sig)