Class BaseSocket

Inheritance Relationships

Derived Types

Class Documentation

class BaseSocket

Subclassed by eipScanner::sockets::TCPSocket, eipScanner::sockets::UDPSocket

Public Types

using BeginReceiveHandler = std::function<void(BaseSocket&)>
using SPtr = std::shared_ptr<BaseSocket>
using UPtr = std::unique_ptr<BaseSocket>

Public Functions

BaseSocket(EndPoint endPoint)
BaseSocket(std::string host, int port)
~BaseSocket()
virtual void Send(const std::vector<uint8_t> &data) const = 0
virtual std::vector<uint8_t> Receive(size_t size) const = 0
void setBeginReceiveHandler(BeginReceiveHandler handler)
const std::chrono::milliseconds &getRecvTimeout() const
void setRecvTimeout(const std::chrono::milliseconds &recvTimeout)
int getSocketFd() const
const EndPoint &getRemoteEndPoint() const

Public Static Functions

int getLastError()
const std::error_category &getErrorCategory()
void select(std::vector<BaseSocket::SPtr> sockets, std::chrono::milliseconds timeout)

Protected Functions

void BeginReceive()
void Shutdown()
void Close()

Protected Attributes

int _sockedFd
EndPoint _remoteEndPoint
std::chrono::milliseconds _recvTimeout
BeginReceiveHandler _beginReceiveHandler

Protected Static Functions

timeval makePortableInterval(const std::chrono::milliseconds &recvTimeout)