diff --git a/sdk/storage/azure-storage-blobs/src/blob_client.cpp b/sdk/storage/azure-storage-blobs/src/blob_client.cpp index f0eb27e0b..2862853ae 100644 --- a/sdk/storage/azure-storage-blobs/src/blob_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/blob_client.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "azure/storage/blobs/append_blob_client.hpp" @@ -56,12 +57,8 @@ namespace Azure { namespace Storage { namespace Blobs { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_blobUrl.GetHost(), newOptions.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -88,12 +85,8 @@ namespace Azure { namespace Storage { namespace Blobs { std::make_unique( credential, tokenContext)); } - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, @@ -111,12 +104,8 @@ namespace Azure { namespace Storage { namespace Blobs { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_blobUrl.GetHost(), options.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-blobs/src/blob_container_client.cpp b/sdk/storage/azure-storage-blobs/src/blob_container_client.cpp index 1fea72020..cfd292b3b 100644 --- a/sdk/storage/azure-storage-blobs/src/blob_container_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/blob_container_client.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include "azure/storage/blobs/append_blob_client.hpp" @@ -52,12 +53,8 @@ namespace Azure { namespace Storage { namespace Blobs { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_blobContainerUrl.GetHost(), newOptions.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -84,12 +81,8 @@ namespace Azure { namespace Storage { namespace Blobs { std::make_unique( credential, tokenContext)); } - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, @@ -109,12 +102,8 @@ namespace Azure { namespace Storage { namespace Blobs { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_blobContainerUrl.GetHost(), options.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-blobs/src/blob_service_client.cpp b/sdk/storage/azure-storage-blobs/src/blob_service_client.cpp index bcaecc6a3..7aacc93fe 100644 --- a/sdk/storage/azure-storage-blobs/src/blob_service_client.cpp +++ b/sdk/storage/azure-storage-blobs/src/blob_service_client.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include "azure/storage/blobs/version.hpp" @@ -47,12 +48,8 @@ namespace Azure { namespace Storage { namespace Blobs { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_serviceUrl.GetHost(), newOptions.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -79,12 +76,8 @@ namespace Azure { namespace Storage { namespace Blobs { std::make_unique( credential, tokenContext)); } - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, @@ -104,12 +97,8 @@ namespace Azure { namespace Storage { namespace Blobs { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_serviceUrl.GetHost(), options.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-common/CMakeLists.txt b/sdk/storage/azure-storage-common/CMakeLists.txt index c87f25adc..fd501a6ab 100644 --- a/sdk/storage/azure-storage-common/CMakeLists.txt +++ b/sdk/storage/azure-storage-common/CMakeLists.txt @@ -44,6 +44,7 @@ set( inc/azure/storage/common/storage_credential.hpp inc/azure/storage/common/storage_exception.hpp inc/azure/storage/common/storage_per_retry_policy.hpp + inc/azure/storage/common/storage_service_version_policy.hpp inc/azure/storage/common/storage_switch_to_secondary_policy.hpp inc/azure/storage/common/version.hpp inc/azure/storage/common/xml_wrapper.hpp diff --git a/sdk/storage/azure-storage-common/inc/azure/storage/common/storage_service_version_policy.hpp b/sdk/storage/azure-storage-common/inc/azure/storage/common/storage_service_version_policy.hpp new file mode 100644 index 000000000..60f2aac90 --- /dev/null +++ b/sdk/storage/azure-storage-common/inc/azure/storage/common/storage_service_version_policy.hpp @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// SPDX-License-Identifier: MIT + +#pragma once + +#include +#include + +#include + +#include "storage_common.hpp" + +namespace Azure { namespace Storage { namespace _internal { + + class StorageServiceVersionPolicy : public Azure::Core::Http::Policies::HttpPolicy { + public: + explicit StorageServiceVersionPolicy(std::string apiVersion) + : m_apiVersion(std::move(apiVersion)) + { + } + + std::unique_ptr Clone() const override + { + return std::make_unique(*this); + } + + std::unique_ptr Send( + Azure::Core::Http::Request& request, + Azure::Core::Http::Policies::NextHttpPolicy nextHttpPolicy, + const Azure::Core::Context& ctx) const override + { + request.SetHeader(HttpHeaderXMsVersion, m_apiVersion); + return nextHttpPolicy.Send(request, ctx); + } + + private: + std::string m_apiVersion; + }; + +}}} // namespace Azure::Storage::_internal diff --git a/sdk/storage/azure-storage-files-datalake/src/datalake_file_system_client.cpp b/sdk/storage/azure-storage-files-datalake/src/datalake_file_system_client.cpp index 7877672c9..41ba0fd97 100644 --- a/sdk/storage/azure-storage-files-datalake/src/datalake_file_system_client.cpp +++ b/sdk/storage/azure-storage-files-datalake/src/datalake_file_system_client.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include "azure/storage/files/datalake/datalake_constants.hpp" @@ -60,12 +61,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_fileSystemUrl.GetHost(), newOptions.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -95,12 +92,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { std::make_unique( credential, tokenContext)); } - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, @@ -121,12 +114,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_fileSystemUrl.GetHost(), options.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp b/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp index de296fac8..24e872b33 100644 --- a/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp +++ b/sdk/storage/azure-storage-files-datalake/src/datalake_path_client.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "azure/storage/files/datalake/datalake_constants.hpp" @@ -97,12 +98,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_pathUrl.GetHost(), newOptions.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -132,12 +129,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { std::make_unique( credential, tokenContext)); } - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, @@ -157,12 +150,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_pathUrl.GetHost(), options.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-files-datalake/src/datalake_service_client.cpp b/sdk/storage/azure-storage-files-datalake/src/datalake_service_client.cpp index 2b4eeaa6a..1f53f2d99 100644 --- a/sdk/storage/azure-storage-files-datalake/src/datalake_service_client.cpp +++ b/sdk/storage/azure-storage-files-datalake/src/datalake_service_client.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include "azure/storage/files/datalake/datalake_file_system_client.hpp" @@ -100,12 +101,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_serviceUrl.GetHost(), newOptions.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -135,12 +132,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { std::make_unique( credential, tokenContext)); } - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, @@ -161,12 +154,8 @@ namespace Azure { namespace Storage { namespace Files { namespace DataLake { perRetryPolicies.emplace_back(std::make_unique<_internal::StorageSwitchToSecondaryPolicy>( m_serviceUrl.GetHost(), options.SecondaryHostForRetryReads)); perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-files-shares/src/share_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_client.cpp index c3f8297d1..a94bec86d 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_client.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "azure/storage/files/shares/share_directory_client.hpp" #include "azure/storage/files/shares/share_file_client.hpp" @@ -49,12 +50,8 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { std::vector> perRetryPolicies; std::vector> perOperationPolicies; perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -69,12 +66,8 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { std::vector> perRetryPolicies; std::vector> perOperationPolicies; perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp index f7afc4d07..10e9a17c6 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_directory_client.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "azure/storage/files/shares/share_file_client.hpp" #include "azure/storage/files/shares/version.hpp" @@ -51,12 +52,8 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { std::vector> perRetryPolicies; std::vector> perOperationPolicies; perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -73,12 +70,8 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { std::vector> perRetryPolicies; std::vector> perOperationPolicies; perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp index 7c3ce6ab8..9d6669fb1 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_file_client.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include "azure/storage/files/shares/share_constants.hpp" #include "azure/storage/files/shares/version.hpp" @@ -56,12 +57,8 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { std::vector> perRetryPolicies; std::vector> perOperationPolicies; perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -78,12 +75,8 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { std::vector> perRetryPolicies; std::vector> perOperationPolicies; perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName, diff --git a/sdk/storage/azure-storage-files-shares/src/share_service_client.cpp b/sdk/storage/azure-storage-files-shares/src/share_service_client.cpp index f84a3cf94..4a5f06faa 100644 --- a/sdk/storage/azure-storage-files-shares/src/share_service_client.cpp +++ b/sdk/storage/azure-storage-files-shares/src/share_service_client.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "azure/storage/files/shares/share_client.hpp" #include "azure/storage/files/shares/version.hpp" @@ -46,12 +47,8 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { std::vector> perRetryPolicies; std::vector> perOperationPolicies; perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = newOptions.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(newOptions.ApiVersion)); m_pipeline = std::make_shared( newOptions, _internal::FileServicePackageName, @@ -68,12 +65,8 @@ namespace Azure { namespace Storage { namespace Files { namespace Shares { std::vector> perRetryPolicies; std::vector> perOperationPolicies; perRetryPolicies.emplace_back(std::make_unique<_internal::StoragePerRetryPolicy>()); - { - Azure::Core::Http::Policies::_internal::ValueOptions valueOptions; - valueOptions.HeaderValues[_internal::HttpHeaderXMsVersion] = options.ApiVersion; - perOperationPolicies.emplace_back( - std::make_unique(valueOptions)); - } + perOperationPolicies.emplace_back( + std::make_unique<_internal::StorageServiceVersionPolicy>(options.ApiVersion)); m_pipeline = std::make_shared( options, _internal::FileServicePackageName,