2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20#ifndef CORE_EVENTRECEIVER_H
21#define CORE_EVENTRECEIVER_H
23#include "core/Event.h"
25#ifndef DOXYGEN_SHOULD_SKIP_THIS
41 EventReceiver(
const std::string& name);
43 EventReceiver(EventReceiver&) =
delete;
44 EventReceiver(EventReceiver&&) =
delete;
46 EventReceiver& operator=(EventReceiver&) =
delete;
47 EventReceiver& operator=(EventReceiver&&) =
delete;
49 virtual void destruct();
52 virtual ~EventReceiver() =
default;
55 static void atNextTick(
const std::function<
void(
void)>& callBack);
60 virtual void onEvent(
const utils::Timeval& currentTime) = 0;
62 const std::string& getName()
const;
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
SocketConnectionT()=delete
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
virtual void shutdownRead()=0
const std::string & getConfiguredServer() const
virtual void sendToPeer(const char *chunk, std::size_t chunkLen)=0
core::socket::stream::SocketContext * newSocketContext
core::socket::stream::SocketContext * socketContext
void connectSocketContext(const std::shared_ptr< SocketContextFactory > &socketContextFactory)
void switchSocketContext(SocketContext *newSocketContext)
virtual const core::socket::SocketAddress & getLocalAddress() const =0
virtual ~SocketConnection()
virtual void setTimeout(const utils::Timeval &timeout)=0
void disconnectCurrentSocketContext()
void sentToPeer(const std::vector< uint8_t > &data)
const std::string & getConnectionName() const
void setSocketContext(SocketContext *socketContext)
std::string configuredServer
virtual const core::socket::SocketAddress & getRemoteAddress() const =0
virtual int getFd() const =0
virtual void streamEof()=0
void sendToPeer(const std::string &data)
virtual void shutdownWrite(bool forceClose)=0
virtual std::size_t readFromPeer(char *chunk, std::size_t chunkLen)=0
SocketConnection(const std::string &instanceName, int fd, const std::string &configuredServer)
virtual bool streamToPeer(core::pipe::Source *source)=0
const std::string & getInstanceName() const
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)
int main(int argc, char *argv[])