AWS SDK for C++

AWS SDK for C++ Version 1.11.548

All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Loading...
Searching...
No Matches
Aws.h
1
5#pragma once
6
7#include <aws/core/Core_EXPORTS.h>
8#include <aws/core/VersionConfig.h>
9#include <aws/core/http/HttpClientFactory.h>
10#include <aws/core/monitoring/MonitoringManager.h>
11#include <aws/core/utils/crypto/Factories.h>
12#include <aws/core/utils/logging/CRTLogSystem.h>
13#include <aws/core/utils/logging/LogLevel.h>
14#include <aws/core/utils/logging/LogSystemInterface.h>
15#include <aws/core/utils/memory/MemorySystemInterface.h>
16#include <aws/crt/io/Bootstrap.h>
17#include <aws/crt/io/TlsOptions.h>
18
19namespace Aws {
20static const char* DEFAULT_LOG_PREFIX = "aws_sdk_";
21
26 LoggingOptions() = default;
27
32
37
42 std::function<std::shared_ptr<Aws::Utils::Logging::LogSystemInterface>()> logger_create_fn;
43
49 std::function<std::shared_ptr<Aws::Utils::Logging::CRTLogSystemInterface>()> crt_logger_create_fn;
50};
51
57
64};
65
69struct IoOptions {
70 std::function<std::shared_ptr<Aws::Crt::Io::ClientBootstrap>()> clientBootstrap_create_fn;
71 std::function<std::shared_ptr<Aws::Crt::Io::TlsConnectionOptions>()> tlsConnectionOptions_create_fn;
72};
73
78 HttpOptions() = default;
79
83 std::function<std::shared_ptr<Aws::Http::HttpClientFactory>()> httpClientFactory_create_fn;
89 bool initAndCleanupCurl = true;
110};
111
116 CryptoOptions() = default;
117
121 std::function<std::shared_ptr<Aws::Utils::Crypto::HashFactory>()> md5Factory_create_fn;
125 std::function<std::shared_ptr<Aws::Utils::Crypto::HashFactory>()> sha1Factory_create_fn;
129 std::function<std::shared_ptr<Aws::Utils::Crypto::HashFactory>()> sha256Factory_create_fn;
133 std::function<std::shared_ptr<Aws::Utils::Crypto::HMACFactory>()> sha256HMACFactory_create_fn;
137 std::function<std::shared_ptr<Aws::Utils::Crypto::SymmetricCipherFactory>()> aes_CBCFactory_create_fn;
141 std::function<std::shared_ptr<Aws::Utils::Crypto::SymmetricCipherFactory>()> aes_CTRFactory_create_fn;
145 std::function<std::shared_ptr<Aws::Utils::Crypto::SymmetricCipherFactory>()> aes_GCMFactory_create_fn;
149 std::function<std::shared_ptr<Aws::Utils::Crypto::SymmetricCipherFactory>()> aes_KeyWrapFactory_create_fn;
153 std::function<std::shared_ptr<Aws::Utils::Crypto::SecureRandomFactory>()> secureRandomFactory_create_fn;
160};
161
172 std::vector<Aws::Monitoring::MonitoringFactoryCreateFunction> customizedMonitoringFactory_create_fn;
173};
174
216 SDKOptions() = default;
237
244
245 struct SDKVersion {
246 unsigned char major = AWS_SDK_VERSION_MAJOR;
247 unsigned char minor = AWS_SDK_VERSION_MINOR;
248 unsigned short patch = AWS_SDK_VERSION_PATCH;
250};
251
252/*
253 * Initialize SDK wide state for the SDK. This method must be called before doing anything else with this library.
254 *
255 * Common Recipes:
256 *
257 * Just use defaults:
258 *
259 * SDKOptions options;
260 * Aws::InitAPI(options);
261 * .....
262 * Aws::ShutdownAPI(options);
263 *
264 * Turn logging on using the default logger:
265 *
266 * SDKOptions options;
267 * options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info;
268 * Aws::InitAPI(options);
269 * .....
270 * Aws::ShutdownAPI(options);
271 *
272 * Install custom memory manager:
273 *
274 * MyMemoryManager memoryManager;
275 *
276 * SDKOptions options;
277 * options.memoryManagementOptions.memoryManager = &memoryManager;
278 * Aws::InitAPI(options);
279 * .....
280 * Aws::ShutdownAPI(options);
281 *
282 * Override default http client factory
283 *
284 * SDKOptions options;
285 * options.httpOptions.httpClientFactory_create_fn = [](){ return Aws::MakeShared<MyCustomHttpClientFactory>("ALLOC_TAG", arg1); };
286 * Aws::InitAPI(options);
287 * .....
288 * Aws::ShutdownAPI(options);
289 */
290AWS_CORE_API void InitAPI(const SDKOptions& options);
291
299AWS_CORE_API void ShutdownAPI(const SDKOptions& options);
300} // namespace Aws
AWS_CORE_API void ShutdownAPI(const SDKOptions &options)
AWS_CORE_API void InitAPI(const SDKOptions &options)
static const char * DEFAULT_LOG_PREFIX
Definition Aws.h:20
std::function< std::shared_ptr< Aws::Utils::Crypto::SymmetricCipherFactory >()> aes_KeyWrapFactory_create_fn
Definition Aws.h:149
std::function< std::shared_ptr< Aws::Utils::Crypto::HashFactory >()> md5Factory_create_fn
Definition Aws.h:121
std::function< std::shared_ptr< Aws::Utils::Crypto::HashFactory >()> sha1Factory_create_fn
Definition Aws.h:125
std::function< std::shared_ptr< Aws::Utils::Crypto::SymmetricCipherFactory >()> aes_CTRFactory_create_fn
Definition Aws.h:141
std::function< std::shared_ptr< Aws::Utils::Crypto::SecureRandomFactory >()> secureRandomFactory_create_fn
Definition Aws.h:153
bool initAndCleanupOpenSSL
Definition Aws.h:159
std::function< std::shared_ptr< Aws::Utils::Crypto::HashFactory >()> sha256Factory_create_fn
Definition Aws.h:129
std::function< std::shared_ptr< Aws::Utils::Crypto::SymmetricCipherFactory >()> aes_GCMFactory_create_fn
Definition Aws.h:145
std::function< std::shared_ptr< Aws::Utils::Crypto::SymmetricCipherFactory >()> aes_CBCFactory_create_fn
Definition Aws.h:137
CryptoOptions()=default
std::function< std::shared_ptr< Aws::Utils::Crypto::HMACFactory >()> sha256HMACFactory_create_fn
Definition Aws.h:133
bool compliantRfc3986Encoding
Definition Aws.h:101
HttpOptions()=default
bool initAndCleanupCurl
Definition Aws.h:89
std::function< std::shared_ptr< Aws::Http::HttpClientFactory >()> httpClientFactory_create_fn
Definition Aws.h:83
bool installSigPipeHandler
Definition Aws.h:97
bool preservePathSeparators
Definition Aws.h:109
std::function< std::shared_ptr< Aws::Crt::Io::TlsConnectionOptions >()> tlsConnectionOptions_create_fn
Definition Aws.h:71
std::function< std::shared_ptr< Aws::Crt::Io::ClientBootstrap >()> clientBootstrap_create_fn
Definition Aws.h:70
Aws::Utils::Logging::LogLevel logLevel
Definition Aws.h:31
const char * defaultLogPrefix
Definition Aws.h:36
std::function< std::shared_ptr< Aws::Utils::Logging::LogSystemInterface >()> logger_create_fn
Definition Aws.h:42
std::function< std::shared_ptr< Aws::Utils::Logging::CRTLogSystemInterface >()> crt_logger_create_fn
Definition Aws.h:49
LoggingOptions()=default
Aws::Utils::Memory::MemorySystemInterface * memoryManager
Definition Aws.h:63
std::vector< Aws::Monitoring::MonitoringFactoryCreateFunction > customizedMonitoringFactory_create_fn
Definition Aws.h:172
unsigned short patch
Definition Aws.h:248
unsigned char major
Definition Aws.h:246
unsigned char minor
Definition Aws.h:247
CryptoOptions cryptoOptions
Definition Aws.h:236
IoOptions ioOptions
Definition Aws.h:220
LoggingOptions loggingOptions
Definition Aws.h:224
struct Aws::SDKOptions::SDKVersion sdkVersion
SDKOptions()=default
MonitoringOptions monitoringOptions
Definition Aws.h:243
MemoryManagementOptions memoryManagementOptions
Definition Aws.h:228
HttpOptions httpOptions
Definition Aws.h:232