AWS SDK for C++

AWS SDK for C++ Version 1.11.867

Loading...
Searching...
No Matches
S3TransferManagerImpl.h
1
5#pragma once
6
7#include <aws/core/Core_EXPORTS.h>
8#include <aws/s3-transfer/S3Transfer_EXPORTS.h>
9#include <aws/s3-transfer/S3TransferManagerConfiguration.h>
10#include <aws/core/auth/AWSCredentialsProvider.h>
11#include <aws/core/auth/AWSCredentialsProviderChain.h>
12#include <aws/core/client/AWSError.h>
13#include <aws/core/client/UserAgent.h>
14#include <aws/core/utils/memory/AWSMemory.h>
15#include <aws/core/utils/memory/stl/AWSString.h>
16#include <aws/s3/S3EndpointProvider.h>
17#include <aws/s3/S3Errors.h>
18#include <aws/crt/s3/S3.h>
19#include <aws/crt/auth/Credentials.h>
20#include <atomic>
21#include <cstdint>
22#include <memory>
23
24namespace Aws {
25namespace S3 {
26namespace Transfer {
27
28// Precondition: Aws::InitAPI() must be called before construction.
29class AWS_CORE_LOCAL S3TransferManagerImpl final {
30 public:
31 // Sole real constructor; the public overloads adapt their credentials shape into the
32 // AWSCredentialsProvider taken here.
34 const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider =
35 Aws::MakeShared<Aws::Auth::DefaultAWSCredentialsProviderChain>("S3TransferManagerImpl"),
36 const std::shared_ptr<Aws::S3::Endpoint::S3EndpointProviderBase>& endpointProvider =
37 Aws::MakeShared<Aws::S3::Endpoint::S3EndpointProvider>("S3TransferManagerImpl"));
39
44
45 const std::shared_ptr<Aws::Crt::S3::S3Client>& GetCrtClient() const { return m_crtClient; }
46 const std::shared_ptr<Aws::S3::Endpoint::S3EndpointProviderBase>& GetEndpointProvider() const { return m_endpointProvider; }
47 const S3TransferManagerConfiguration& GetConfig() const { return m_config; }
48 const std::shared_ptr<Aws::Crt::Auth::ICredentialsProvider>& GetCredentialsProvider() const {
49 return m_credentialsProvider;
50 }
51 // Ctor sets to false on any construction failure and stashes the specific reason in
52 // m_initError. S3TransferManager::Create() inspects this to gate object handoff — a customer
53 // never receives a borked S3TransferManager.
54 bool IsInitialized() const { return m_isInitialized.load(); }
56 const Aws::String& GetUserAgentString() const { return m_userAgent; }
57
58 private:
60 std::shared_ptr<Aws::Crt::Auth::ICredentialsProvider> m_credentialsProvider;
61 std::shared_ptr<Aws::S3::Endpoint::S3EndpointProviderBase> m_endpointProvider;
62 std::shared_ptr<Aws::Crt::S3::S3Client> m_crtClient;
63 std::atomic<bool> m_isInitialized{true};
65 Aws::String m_userAgent;
66};
67
68} // namespace Transfer
69} // namespace S3
70} // namespace Aws
const std::shared_ptr< Aws::Crt::S3::S3Client > & GetCrtClient() const
const Aws::Client::AWSError< Aws::S3::S3Errors > & GetInitializationError() const
S3TransferManagerImpl & operator=(const S3TransferManagerImpl &)=delete
S3TransferManagerImpl(S3TransferManagerImpl &&)=delete
const std::shared_ptr< Aws::S3::Endpoint::S3EndpointProviderBase > & GetEndpointProvider() const
S3TransferManagerImpl(const S3TransferManagerImpl &)=delete
S3TransferManagerImpl(const S3TransferManagerConfiguration &config, const std::shared_ptr< Aws::Auth::AWSCredentialsProvider > &credentialsProvider=Aws::MakeShared< Aws::Auth::DefaultAWSCredentialsProviderChain >("S3TransferManagerImpl"), const std::shared_ptr< Aws::S3::Endpoint::S3EndpointProviderBase > &endpointProvider=Aws::MakeShared< Aws::S3::Endpoint::S3EndpointProvider >("S3TransferManagerImpl"))
const std::shared_ptr< Aws::Crt::Auth::ICredentialsProvider > & GetCredentialsProvider() const
const S3TransferManagerConfiguration & GetConfig() const
S3TransferManagerImpl & operator=(S3TransferManagerImpl &&)=delete
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String