10Duke Enterprise C++ SDK
Loading...
Searching...
No Matches
Socket.h
1#ifndef TENDUKE_OSA_SOCKET_H
2#define TENDUKE_OSA_SOCKET_H
3
4#include <cstdint>
5#include <memory>
6
7namespace tenduke { namespace osa {
8
15class Socket
16{
17public:
18 virtual ~Socket() = default;
19
31 virtual std::unique_ptr<Socket> accept(uint32_t timeoutMs) = 0;
32
38 virtual std::unique_ptr<Socket> accept() = 0;
39
45 virtual void bind(
46 std::uint32_t ipAddress,
47 std::uint16_t port
48 ) = 0;
49
54 virtual void listen() = 0;
55
64 virtual int read(void * buffer, std::size_t bufferSize) = 0;
65
73 virtual int write(const void * buffer, std::size_t len) = 0;
74
79 virtual std::uint16_t getPort() const = 0;
80
85 virtual void setNonBlocking() = 0;
86
93 virtual void setReceiveTimeout(std::uint32_t timeoutMs) = 0;
94};
95
96}}
97
98#endif //TENDUKE_OSA_SOCKET_H
OS-independent abstraction of a socket.
Definition Socket.h:16
virtual int write(const void *buffer, std::size_t len)=0
Write bytes to the socket.
virtual void bind(std::uint32_t ipAddress, std::uint16_t port)=0
Binds the socket.
virtual int read(void *buffer, std::size_t bufferSize)=0
Reads bytes from the socket.
virtual void setNonBlocking()=0
Sets the socket to non-blocking mode.
virtual std::unique_ptr< Socket > accept()=0
Accepts next connection from listening socket.
virtual std::unique_ptr< Socket > accept(uint32_t timeoutMs)=0
Accepts next connection from listening socket, with a timeout.
virtual std::uint16_t getPort() const =0
Returns port of the socket.
virtual void setReceiveTimeout(std::uint32_t timeoutMs)=0
Sets receive timeout for a socket.
virtual void listen()=0
Configures the socket to listen for incoming connections.
Operating system abstraction.
Definition win32_utils.h:7
Root for classes, functions and globals of 10Duke C++ Client.
Definition APIRequest.h:4