aws-crt-cpp
C++ wrapper around the aws-c-* libraries. Provides Cross-Platform Transport Protocols and SSL/TLS implementations for C++.
Loading...
Searching...
No Matches
SocketOptions.h
Go to the documentation of this file.
1#pragma once
7#include <aws/crt/Exports.h>
8
9#include <aws/io/socket.h>
10
11namespace Aws
12{
13 namespace Crt
14 {
15 namespace Io
16 {
17 enum class SocketType
18 {
24 Stream = AWS_SOCKET_STREAM,
25
31 Dgram = AWS_SOCKET_DGRAM,
32 };
33
34 enum class SocketDomain
35 {
36 IPv4 = AWS_SOCKET_IPV4,
37 IPv6 = AWS_SOCKET_IPV6,
41 Local = AWS_SOCKET_LOCAL,
42 };
43
48 {
49 public:
51 SocketOptions(const SocketOptions &rhs) = default;
52 SocketOptions(SocketOptions &&rhs) = default;
53
54 SocketOptions &operator=(const SocketOptions &rhs) = default;
56
61 void SetSocketType(SocketType type) { options.type = (enum aws_socket_type)type; }
62
66 SocketType GetSocketType() const { return (SocketType)options.type; }
67
72 void SetSocketDomain(SocketDomain domain) { options.domain = (enum aws_socket_domain)domain; }
73
77 SocketDomain GetSocketDomain() const { return (SocketDomain)options.domain; }
78
83 void SetConnectTimeoutMs(uint32_t timeout) { options.connect_timeout_ms = timeout; }
84
88 uint32_t GetConnectTimeoutMs() const { return options.connect_timeout_ms; }
89
95 void SetKeepAliveIntervalSec(uint16_t keepAliveInterval)
96 {
97 options.keep_alive_interval_sec = keepAliveInterval;
98 }
99
103 uint16_t GetKeepAliveIntervalSec() const { return options.keep_alive_interval_sec; }
104
110 void SetKeepAliveTimeoutSec(uint16_t keepAliveTimeout)
111 {
112 options.keep_alive_timeout_sec = keepAliveTimeout;
113 }
114
119 uint16_t GetKeepAliveTimeoutSec() const { return options.keep_alive_timeout_sec; }
120
126 void SetKeepAliveMaxFailedProbes(uint16_t maxProbes)
127 {
128 options.keep_alive_max_failed_probes = maxProbes;
129 }
130
134 uint16_t GetKeepAliveMaxFailedProbes() const { return options.keep_alive_max_failed_probes; }
135
140 void SetKeepAlive(bool keepAlive) { options.keepalive = keepAlive; }
141
145 bool GetKeepAlive() const { return options.keepalive; }
146
148 aws_socket_options &GetImpl() { return options; }
150 const aws_socket_options &GetImpl() const { return options; }
151
152 private:
153 aws_socket_options options;
154 };
155 } // namespace Io
156 } // namespace Crt
157} // namespace Aws
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition SocketOptions.h:48
void SetKeepAliveMaxFailedProbes(uint16_t maxProbes)
Definition SocketOptions.h:126
SocketOptions(const SocketOptions &rhs)=default
SocketOptions & operator=(const SocketOptions &rhs)=default
uint32_t GetConnectTimeoutMs() const
Definition SocketOptions.h:88
void SetSocketDomain(SocketDomain domain)
Definition SocketOptions.h:72
void SetSocketType(SocketType type)
Definition SocketOptions.h:61
void SetKeepAliveTimeoutSec(uint16_t keepAliveTimeout)
Definition SocketOptions.h:110
void SetKeepAliveIntervalSec(uint16_t keepAliveInterval)
Definition SocketOptions.h:95
SocketType GetSocketType() const
Definition SocketOptions.h:66
void SetConnectTimeoutMs(uint32_t timeout)
Definition SocketOptions.h:83
SocketDomain GetSocketDomain() const
Definition SocketOptions.h:77
void SetKeepAlive(bool keepAlive)
Definition SocketOptions.h:140
SocketOptions & operator=(SocketOptions &&rhs)=default
uint16_t GetKeepAliveMaxFailedProbes() const
Definition SocketOptions.h:134
uint16_t GetKeepAliveTimeoutSec() const
Definition SocketOptions.h:119
SocketOptions(SocketOptions &&rhs)=default
uint16_t GetKeepAliveIntervalSec() const
Definition SocketOptions.h:103
bool GetKeepAlive() const
Definition SocketOptions.h:145
SocketDomain
Definition SocketOptions.h:35
SocketType
Definition SocketOptions.h:18
Definition Allocator.h:11