AWS IoT Device SDK C++ v2: crt/aws-crt-cpp/include/aws/crt/io/SocketOptions.h Source File

AWS IoT Device SDK C++ v2 1.14.0 AWS IoT Device SDK C++ v2

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
47 class AWS_CRT_CPP_API SocketOptions
48 {
49 public:
50 SocketOptions();
51 SocketOptions(const SocketOptions &rhs) = default;
52 SocketOptions(SocketOptions &&rhs) = default;
53
54 SocketOptions &operator=(const SocketOptions &rhs) = default;
55 SocketOptions &operator=(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
Aws::Crt::Io::SocketOptions
Definition: SocketOptions.h:48
Aws::Crt::Io::SocketOptions::SetKeepAliveMaxFailedProbes
void SetKeepAliveMaxFailedProbes(uint16_t maxProbes)
Definition: SocketOptions.h:126
Aws::Crt::Io::SocketOptions::SocketOptions
SocketOptions(const SocketOptions &rhs)=default
Aws::Crt::Io::SocketOptions::operator=
SocketOptions & operator=(const SocketOptions &rhs)=default
Aws::Crt::Io::SocketOptions::GetConnectTimeoutMs
uint32_t GetConnectTimeoutMs() const
Definition: SocketOptions.h:88
Aws::Crt::Io::SocketOptions::SetSocketDomain
void SetSocketDomain(SocketDomain domain)
Definition: SocketOptions.h:72
Aws::Crt::Io::SocketOptions::SetSocketType
void SetSocketType(SocketType type)
Definition: SocketOptions.h:61
Aws::Crt::Io::SocketOptions::SetKeepAliveTimeoutSec
void SetKeepAliveTimeoutSec(uint16_t keepAliveTimeout)
Definition: SocketOptions.h:110
Aws::Crt::Io::SocketOptions::SetKeepAliveIntervalSec
void SetKeepAliveIntervalSec(uint16_t keepAliveInterval)
Definition: SocketOptions.h:95
Aws::Crt::Io::SocketOptions::GetSocketType
SocketType GetSocketType() const
Definition: SocketOptions.h:66
Aws::Crt::Io::SocketOptions::SetConnectTimeoutMs
void SetConnectTimeoutMs(uint32_t timeout)
Definition: SocketOptions.h:83
Aws::Crt::Io::SocketOptions::GetSocketDomain
SocketDomain GetSocketDomain() const
Definition: SocketOptions.h:77
Aws::Crt::Io::SocketOptions::SetKeepAlive
void SetKeepAlive(bool keepAlive)
Definition: SocketOptions.h:140
Aws::Crt::Io::SocketOptions::operator=
SocketOptions & operator=(SocketOptions &&rhs)=default
Aws::Crt::Io::SocketOptions::GetKeepAliveMaxFailedProbes
uint16_t GetKeepAliveMaxFailedProbes() const
Definition: SocketOptions.h:134
Aws::Crt::Io::SocketOptions::GetKeepAliveTimeoutSec
uint16_t GetKeepAliveTimeoutSec() const
Definition: SocketOptions.h:119
Aws::Crt::Io::SocketOptions::SocketOptions
SocketOptions(SocketOptions &&rhs)=default
Aws::Crt::Io::SocketOptions::GetKeepAliveIntervalSec
uint16_t GetKeepAliveIntervalSec() const
Definition: SocketOptions.h:103
Aws::Crt::Io::SocketOptions::GetKeepAlive
bool GetKeepAlive() const
Definition: SocketOptions.h:145
Exports.h
AWS_CRT_CPP_API
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Aws::Crt::Io::SocketDomain
SocketDomain
Definition: SocketOptions.h:35
Aws::Crt::Io::SocketDomain::IPv4
@ IPv4
Aws::Crt::Io::SocketDomain::Local
@ Local
Aws::Crt::Io::SocketDomain::IPv6
@ IPv6
Aws::Crt::Io::SocketType
SocketType
Definition: SocketOptions.h:18
Aws::Crt::Io::SocketType::Dgram
@ Dgram
Aws::Crt::Io::SocketType::Stream
@ Stream
Aws
Definition: Api.h:17
Aws::type
newitem type
Definition: cJSON.cpp:2724