aws-crt-cpp
C++ wrapper around the aws-c-* libraries. Provides Cross-Platform Transport Protocols and SSL/TLS implementations for C++.
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,
30 Dgram = AWS_SOCKET_DGRAM,
31 };
32 enum class SocketDomain
33 {
34 IPv4 = AWS_SOCKET_IPV4,
35 IPv6 = AWS_SOCKET_IPV6,
39 Local = AWS_SOCKET_LOCAL,
40 };
45 {
46 public:
48 SocketOptions(const SocketOptions &rhs) = default;
49 SocketOptions(SocketOptions &&rhs) = default;
50
51 SocketOptions &operator=(const SocketOptions &rhs) = default;
57 void SetSocketType(SocketType type) { options.type = (enum aws_socket_type)type; }
58 SocketType GetSocketType() const { return (SocketType)options.type; }
63 void SetSocketDomain(SocketDomain domain) { options.domain = (enum aws_socket_domain)domain; }
64 SocketDomain GetSocketDomain() const { return (SocketDomain)options.domain; }
69 void SetConnectTimeoutMs(uint32_t timeout) { options.connect_timeout_ms = timeout; }
70 uint32_t GetConnectTimeoutMs() const { return options.connect_timeout_ms; }
76 void SetKeepAliveIntervalSec(uint16_t keepAliveInterval)
77 {
78 options.keep_alive_interval_sec = keepAliveInterval;
79 }
80 uint16_t GetKeepAliveIntervalSec() const { return options.keep_alive_interval_sec; }
86 void SetKeepAliveTimeoutSec(uint16_t keepAliveTimeout)
87 {
88 options.keep_alive_timeout_sec = keepAliveTimeout;
89 }
90 uint16_t GetKeepAliveTimeoutSec() const { return options.keep_alive_timeout_sec; }
96 void SetKeepAliveMaxFailedProbes(uint16_t maxProbes)
97 {
98 options.keep_alive_max_failed_probes = maxProbes;
99 }
100 uint16_t GetKeepAliveMaxFailedProbes() const { return options.keep_alive_max_failed_probes; }
105 void SetKeepAlive(bool keepAlive) { options.keepalive = keepAlive; }
106 bool GetKeepAlive() const { return options.keepalive; }
108 aws_socket_options &GetImpl() { return options; }
110 const aws_socket_options &GetImpl() const { return options; }
111
112 private:
113 aws_socket_options options;
114 };
115 } // namespace Io
116 } // namespace Crt
117} // namespace Aws
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Definition: SocketOptions.h:45
void SetKeepAliveMaxFailedProbes(uint16_t maxProbes)
Definition: SocketOptions.h:96
SocketOptions(const SocketOptions &rhs)=default
SocketOptions & operator=(const SocketOptions &rhs)=default
uint32_t GetConnectTimeoutMs() const
Definition: SocketOptions.h:70
void SetSocketDomain(SocketDomain domain)
Definition: SocketOptions.h:63
void SetSocketType(SocketType type)
Definition: SocketOptions.h:57
void SetKeepAliveTimeoutSec(uint16_t keepAliveTimeout)
Definition: SocketOptions.h:86
void SetKeepAliveIntervalSec(uint16_t keepAliveInterval)
Definition: SocketOptions.h:76
SocketType GetSocketType() const
Definition: SocketOptions.h:58
void SetConnectTimeoutMs(uint32_t timeout)
Definition: SocketOptions.h:69
SocketDomain GetSocketDomain() const
Definition: SocketOptions.h:64
void SetKeepAlive(bool keepAlive)
Definition: SocketOptions.h:105
SocketOptions & operator=(SocketOptions &&rhs)=default
uint16_t GetKeepAliveMaxFailedProbes() const
Definition: SocketOptions.h:100
uint16_t GetKeepAliveTimeoutSec() const
Definition: SocketOptions.h:90
SocketOptions(SocketOptions &&rhs)=default
uint16_t GetKeepAliveIntervalSec() const
Definition: SocketOptions.h:80
bool GetKeepAlive() const
Definition: SocketOptions.h:106
SocketDomain
Definition: SocketOptions.h:33
SocketType
Definition: SocketOptions.h:18
Definition: Api.h:17
newitem type
Definition: cJSON.cpp:2724