azure-storage-files-datalake
Loading...
Searching...
No Matches
datalake_lease_client.hpp
1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4#pragma once
5
6#include "azure/storage/files/datalake/datalake_file_system_client.hpp"
7#include "azure/storage/files/datalake/datalake_path_client.hpp"
8
9#include <azure/storage/blobs/blob_lease_client.hpp>
10
11#include <chrono>
12
13namespace Azure { namespace Storage { namespace Files { namespace DataLake {
14
19 class DataLakeLeaseClient final {
20 public:
27 explicit DataLakeLeaseClient(DataLakePathClient pathClient, std::string leaseId)
28 : m_blobLeaseClient(std::move(pathClient.m_blobClient), std::move(leaseId))
29 {
30 }
31
38 explicit DataLakeLeaseClient(DataLakeFileSystemClient fileSystemClient, std::string leaseId)
39 : m_blobLeaseClient(std::move(fileSystemClient.m_blobContainerClient), std::move(leaseId))
40 {
41 }
42
48 static std::string CreateUniqueLeaseId()
49 {
50 return Blobs::BlobLeaseClient::CreateUniqueLeaseId();
51 };
52
56 AZ_STORAGE_FILES_DATALAKE_DLLEXPORT const static std::chrono::seconds InfiniteLeaseDuration;
57
63 std::string GetLeaseId() { return m_blobLeaseClient.GetLeaseId(); }
64
76 Azure::Response<Models::AcquireLeaseResult> Acquire(
77 std::chrono::seconds duration,
78 const AcquireLeaseOptions& options = AcquireLeaseOptions(),
79 const Azure::Core::Context& context = Azure::Core::Context())
80 {
81 return m_blobLeaseClient.Acquire(duration, options, context);
82 }
83
91 Azure::Response<Models::RenewLeaseResult> Renew(
92 const RenewLeaseOptions& options = RenewLeaseOptions(),
93 const Azure::Core::Context& context = Azure::Core::Context())
94 {
95 return m_blobLeaseClient.Renew(options, context);
96 }
97
105 Azure::Response<Models::ReleaseLeaseResult> Release(
106 const ReleaseLeaseOptions& options = ReleaseLeaseOptions(),
107 const Azure::Core::Context& context = Azure::Core::Context())
108 {
109 return m_blobLeaseClient.Release(options, context);
110 }
111
121 Azure::Response<Models::ChangeLeaseResult> Change(
122 const std::string& proposedLeaseId,
123 const ChangeLeaseOptions& options = ChangeLeaseOptions(),
124 const Azure::Core::Context& context = Azure::Core::Context())
125 {
126 return m_blobLeaseClient.Change(proposedLeaseId, options, context);
127 }
128
136 Azure::Response<Models::BreakLeaseResult> Break(
137 const BreakLeaseOptions& options = BreakLeaseOptions(),
138 const Azure::Core::Context& context = Azure::Core::Context())
139 {
140 return m_blobLeaseClient.Break(options, context);
141 }
142
143 private:
144 Blobs::BlobLeaseClient m_blobLeaseClient;
145 };
146
147}}}} // namespace Azure::Storage::Files::DataLake
The DataLakeFileSystemClient allows you to manipulate Azure Storage DataLake files.
Definition datalake_file_system_client.hpp:28
DataLakeLeaseClient allows you to manipulate Azure Storage leases on filesystems and paths.
Definition datalake_lease_client.hpp:19
static std::string CreateUniqueLeaseId()
Gets a unique lease ID.
Definition datalake_lease_client.hpp:48
DataLakeLeaseClient(DataLakePathClient pathClient, std::string leaseId)
Initializes a new instance of the DataLakeLeaseClient.
Definition datalake_lease_client.hpp:27
std::string GetLeaseId()
Get lease ID of this lease client.
Definition datalake_lease_client.hpp:63
AZ_STORAGE_FILES_DATALAKE_DLLEXPORT static const std::chrono::seconds InfiniteLeaseDuration
A value representing infinite lease duration.
Definition datalake_lease_client.hpp:56
Azure::Response< Models::BreakLeaseResult > Break(const BreakLeaseOptions &options=BreakLeaseOptions(), const Azure::Core::Context &context=Azure::Core::Context())
Breaks the previously-acquired lease.
Definition datalake_lease_client.hpp:136
Azure::Response< Models::ChangeLeaseResult > Change(const std::string &proposedLeaseId, const ChangeLeaseOptions &options=ChangeLeaseOptions(), const Azure::Core::Context &context=Azure::Core::Context())
Changes the lease of an active lease.
Definition datalake_lease_client.hpp:121
Azure::Response< Models::ReleaseLeaseResult > Release(const ReleaseLeaseOptions &options=ReleaseLeaseOptions(), const Azure::Core::Context &context=Azure::Core::Context())
Releases the datalake path or datalake path container's previously-acquired lease.
Definition datalake_lease_client.hpp:105
DataLakeLeaseClient(DataLakeFileSystemClient fileSystemClient, std::string leaseId)
Initializes a new instance of the DataLakeLeaseClient.
Definition datalake_lease_client.hpp:38
Azure::Response< Models::AcquireLeaseResult > Acquire(std::chrono::seconds duration, const AcquireLeaseOptions &options=AcquireLeaseOptions(), const Azure::Core::Context &context=Azure::Core::Context())
Acquires a lease on the datalake path or datalake path container.
Definition datalake_lease_client.hpp:76
Azure::Response< Models::RenewLeaseResult > Renew(const RenewLeaseOptions &options=RenewLeaseOptions(), const Azure::Core::Context &context=Azure::Core::Context())
Renews the datalake path or datalake path container's previously-acquired lease.
Definition datalake_lease_client.hpp:91
The DataLakePathClient allows you to manipulate Azure Storage DataLake files.
Definition datalake_path_client.hpp:26