AWS SDK for C++

AWS SDK for C++ Version 1.11.867

Loading...
Searching...
No Matches
HandleImpls.h
1
5#pragma once
6
7#include <aws/s3-transfer/internal/TransferState.h>
8#include <aws/core/Core_EXPORTS.h>
9#include <aws/crt/s3/S3.h>
10#include <future>
11#include <memory>
12
13namespace Aws {
14namespace S3 {
15namespace Transfer {
16
17template <typename OutcomeT, typename StateT>
18class AWS_CORE_LOCAL TransferHandleImpl {
19 public:
20 virtual ~TransferHandleImpl() = default;
21
22 std::future<OutcomeT> future;
23 std::shared_ptr<StateT> state;
24 // Set before the handle is handed out and never reassigned, so Cancel() needs no lock. Null when
25 // the transfer failed before a meta request existed.
26 std::shared_ptr<Aws::Crt::S3::S3MetaRequest> metaRequest;
27
28 TransferHandleImpl() = default;
33};
34
35class AWS_CORE_LOCAL UploadHandleImpl final : public TransferHandleImpl<UploadOutcome, UploadTransferState> {};
36class AWS_CORE_LOCAL DownloadHandleImpl final : public TransferHandleImpl<DownloadOutcome, DownloadTransferState> {};
37
38} // namespace Transfer
39} // namespace S3
40} // namespace Aws
TransferHandleImpl & operator=(TransferHandleImpl &&)=delete
TransferHandleImpl & operator=(const TransferHandleImpl &)=delete
std::future< OutcomeT > future
Definition HandleImpls.h:22
TransferHandleImpl(const TransferHandleImpl &)=delete
std::shared_ptr< Aws::Crt::S3::S3MetaRequest > metaRequest
Definition HandleImpls.h:26
TransferHandleImpl(TransferHandleImpl &&)=delete
std::shared_ptr< StateT > state
Definition HandleImpls.h:23