Loading [MathJax]/extensions/tex2jax.js
azure-storage-blobs
All Classes Functions Variables Pages
deferred_response.hpp
1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4#pragma once
5
6#include <azure/core/response.hpp>
7
8#include <functional>
9
10namespace Azure { namespace Storage {
11 namespace Blobs {
12 class BlobServiceBatch;
13 class BlobContainerBatch;
14 } // namespace Blobs
18 template <typename T> class DeferredResponse final {
19 public:
20 DeferredResponse(const DeferredResponse&) = delete;
23 DeferredResponse& operator=(const DeferredResponse&) = delete;
26
35 Response<T> GetResponse() const { return m_func(); }
36
37 private:
38 DeferredResponse(std::function<Response<T>()> func) : m_func(std::move(func)) {}
39
40 private:
41 std::function<Response<T>()> m_func;
42
43 friend class Blobs::BlobServiceBatch;
44 friend class Blobs::BlobContainerBatch;
45 };
46}} // namespace Azure::Storage
Base type for a deferred response.
Definition deferred_response.hpp:18
DeferredResponse & operator=(DeferredResponse &&)=default
DeferredResponse(DeferredResponse &&)=default
Construct a new deferred response, moving from an existing DeferredResponse.
Response< T > GetResponse() const
Gets the deferred response.
Definition deferred_response.hpp:35