10Duke Enterprise C++ SDK
Loading...
Searching...
No Matches
WindowsSocket.h
1#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) || defined (_WIN64)
2
3#ifndef TENDUKE_OSA_WIN_WINDOWSSOCKET_H
4#define TENDUKE_OSA_WIN_WINDOWSSOCKET_H
5
6#include "../AbstractBaseSocket.h"
7
8namespace tenduke { namespace osa { namespace win {
9
10class WindowsSocket : public ::tenduke::osa::AbstractBaseSocket<SOCKET>
11{
12public:
13 ~WindowsSocket() override;
14
19 WindowsSocket();
20
24 explicit WindowsSocket(SOCKET descriptor);
25
26 // ::tenduke::osa::Socket implementation
27
31 std::unique_ptr<Socket> accept() override;
32 using ::tenduke::osa::AbstractBaseSocket<SOCKET>::accept;
33
37 void bind(std::uint32_t ipAddress, std::uint16_t port) override;
38
42 std::uint16_t getPort() const override;
43
47 void setNonBlocking() override;
48
49protected:
53 bool hasIncomingConnections(std::uint32_t timeoutMs) const override;
54
58 int getLastError() const override;
59
63 std::string mkErrorMessage(const std::string &body, int errorCode) const override;
64
68 bool wouldBlock(int errorCode) const override;
69};
70
71}}}
72
73#endif //TENDUKE_OSA_WIN_WINDOWSSOCKET_H
74
75#endif // Windows
Operating system abstraction.
Definition win32_utils.h:7
Root for classes, functions and globals of 10Duke C++ Client.
Definition APIRequest.h:4