10Duke Scale C++ Client
Loading...
Searching...
No Matches
UnixSocket.h
1#if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__)
2
3#ifndef TENDUKE_OSA_UNX_UNIXSOCKET_H
4#define TENDUKE_OSA_UNX_UNIXSOCKET_H
5
6#include "osa/AbstractBaseSocket.h"
7
8namespace tenduke { namespace osa { namespace unx {
9
13class UnixSocket : public tenduke::osa::AbstractBaseSocket
14{
15public:
20 UnixSocket(in_addr_t address, in_port_t port);
21
22 std::unique_ptr<tenduke::osa::Socket> accept() override;
23 std::uint16_t getPort() const override;
24
28 void setNonBlocking() override;
29
30protected:
31 UnixSocket(int descriptor, const struct ::sockaddr_in *address);
32
33 std::unique_ptr<tenduke::osa::Socket> createSocket(int descriptor, const struct ::sockaddr_in *address) override;
34 int getLastError() const override;
35 std::string mkErrorMessage(const std::string &body, int errorCode) const override;
36 bool wouldBlock(int errorCode) const override;
37
38 // https://isocpp.org/wiki/faq/strange-inheritance#hiding-rule
39 // tenduke::osa::AbstractBaseSocketInterface
40protected:
42
43};
44
45}}}
46
47#endif //TENDUKE_OSA_UNX_UNIXSOCKET_H
48
49#endif // Only Unixes
Abstract base implementation of tenduke::osa::Socket.
Definition AbstractBaseSocket.h:52
virtual std::string mkErrorMessage(const std::string &body) const
Builds error message.
Definition AbstractBaseSocket.cpp:138
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7