Commit Graph

143 Commits

Author SHA1 Message Date
Victor Vazquez
cb39ec302c
Update RetryPolicy logic to use only one context (#2047)
* progress

* missing

* fix comp errors

* remove comments

* Bad merge with my recent changes to master

* Format

Co-authored-by: Ahson Khan <ahson_ahmedk@yahoo.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
2021-04-05 19:50:17 -07:00
Ahson Khan
d638d1ff3d
Move package version to details, and rename VersionString() to ToString(). (#2042) 2021-04-06 00:50:25 +00:00
Ahson Khan
63b2d21bc6
Renamed Azure::Nullable<T>::GetValue() to Value(). (#2034)
* Renamed `Azure::Nullable<T>::GetValue()` to `Value()`.

* Update clang formatting.
2021-04-05 15:42:14 -07:00
Anton Kolesnyk
c5ddbbc430
Changes around context expiration naming and types (#2033)
This would unblock #2010.

Closes #2032.
Closes #1880.

I know this comes out of the blue, but it seems to me the right change to do. This is a proposal, let me know what you think.

First, I started with the fact that we need to make `CancelWhen()` public.
Then, I realized that I don't like the `CancelWhen()` naming. `CancelAt()` is better?
But `CancelAt()` sounds like an order to do something, not as getter.
So, it should be named `Get...`. `GetCancelWhen()`? `GetCancelAt()`? Sounds strage.

`GetDeadline()` - not bad, bit it is not that clear, what the deadline is.
And I looked at the `WithDeadline()` method. And in comment, the first line is `@brief Create a context with expiration.`.
"Expiration" sounds better explanation for the essense of the "deadline".

So, I went with `GetExpiration()`. I think "Expiration" is also a better name, because should we want to add the method called "bool IsExpired()", it comes naturally using the existing terminology, sounds better than "`IsPastDeadline()`".

Next thing - if we have "`GetExpiration()`", it is strange to have a method called `Get()`. So, we have `WithExpiration()` and `WithValue()`. So, it sounds like the getter should be called `GetValue()`. I did that rename as well.

Then, I looked at "`With...`" method naming. It is a factory method. If for getters we have `Get`, then for factory methods we should have `Create`. So, I renamed `WithExpiration()` and `WithValue()` to `CreateWithExpiration()` and `CreateWithValue()`.

Then I looked at `Context::time_point` typedef. First, in general, if we can avoid public typedefs, it is better, because we don't need to document them and worry if we broke client code when we change them.
Second, it is strange that we use `Azure::DateTime` everywhere, but not in context.

So, I replaced it with `Azure::DateTime`. It is good because it allows us to drop to/from epoch conversions (#1880), and really all that extra dance we do to cast to representation and back to datetime is the ways to stay within legal type casting limits of compiler type declaration, while in reality there isn't much that is happening in the code: `DateTime` is essentially an `int64`, and with all these conversions to epoch time, then to representation and back, compiler does not generate real code, it still operates with that only `int64`.

Why we cast to `DateTime::rep` and back at all? Context stores it as `atomic`, and I am not questioning that. You can't get `std::atomic<DateTime>` today explicitly, so we "extract" representation (`int64`) and store it as `std::atomic<DateTime::rep>`, which is the same thing as `std::atomic_int64`.

-- Update: --
1. "Expiration" => "Deadline" (Jeffrey's request)
2. Added `Context::HasExpiration()` (response to Jinming) // plus, we do have `HasValue()` so why not have `HasDeadline()`.
3. `WithDeadline()`, `WithValue` => Two overloads of `CreateChildContext()` (my own initiative).

-- Update 2: --
`CreateChildContext()` => `WithDeadline()`, `WithValue`

-- Update 3: --
Removed `HasDeadline()`
2021-04-05 21:24:40 +00:00
Victor Vazquez
dfdaf25223
[Core] Refactor RequestFailedException with Http information (#2026)
* KeyVault Exception
2021-04-05 12:11:31 -07:00
Anton Kolesnyk
a7fdea42e6
Introduce Context::Key with pointer comparison speeds (#1988) 2021-04-05 11:26:50 -07:00
Anton Kolesnyk
ddd7a093f4
Move policies to internal (#1985) 2021-03-31 12:56:33 -07:00
Azure SDK Bot
d28d52b058
Increment version for storage releases (#1969)
* Increment package version after release of azure-storage-common

* Increment package version after release of azure-storage-blobs

* Increment package version after release of azure-storage-files-datalake

* Increment package version after release of azure-storage-files-shares

* Revert the ordering change for beta.6.

Co-authored-by: Ahson Khan <ahkha@microsoft.com>
Co-authored-by: Ahson Khan <ahson_ahmedk@yahoo.com>
2021-03-24 02:06:06 +00:00
Ahson Khan
82dd53f3b1
Fix the date in the changelog for storage beta.6 packages using the correct year to avoid auto version bump PR re-ordering it (#1970)
* Fix the date in the changelog for storage beta.6 packages using the correct year to avoid auto version bump PR re-ordering it

* Fix the year for common beta.6

* Fix the CL year for shares beta.6

* Fix the CL year for datalake beta.6
2021-03-24 01:48:00 +00:00
JinmingHu
417dde4144
mint storage beta 9 (#1957) 2021-03-23 10:15:45 +08:00
JinmingHu
64d9356ff6
remove all use of ValuePolicy (#1914) 2021-03-16 09:28:25 -07:00
JinmingHu
7cade913bc
remove struct SecondaryHostReplicaStatus, to simplify context use (#1913)
# Pull Request Checklist

Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:

See the detailed list in the [contributing guide](https://github.com/Azure/azure-sdk-for-cpp/blob/master/CONTRIBUTING.md#pull-requests).

- [x] [C++ Guidelines](https://azure.github.io/azure-sdk/cpp_introduction.html)
- [x] Doxygen docs
- [x] Unit tests
- [x] No unwanted commits/changes
- [x] Descriptive title/description
  - [x] PR is single purpose
  - [x] Related issue listed
- [x] Comments in source
- [x] No typos
- [x] Update changelog
- [x] Not work-in-progress
- [x] External references or docs updated
- [x] Self review of PR done
- [x] Any breaking changes?
2021-03-16 07:05:08 +00:00
JinmingHu
9c7d4c61e4
move stuff from _details to _internal for storage-common package (#1912)
closes https://github.com/Azure/azure-sdk-for-cpp/issues/1869


# Pull Request Checklist

Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:

See the detailed list in the [contributing guide](https://github.com/Azure/azure-sdk-for-cpp/blob/master/CONTRIBUTING.md#pull-requests).

- [x] [C++ Guidelines](https://azure.github.io/azure-sdk/cpp_introduction.html)
- [x] Doxygen docs
- [x] Unit tests
- [x] No unwanted commits/changes
- [x] Descriptive title/description
  - [x] PR is single purpose
  - [x] Related issue listed
- [x] Comments in source
- [x] No typos
- [x] Update changelog
- [x] Not work-in-progress
- [x] External references or docs updated
- [x] Self review of PR done
- [x] Any breaking changes?
2021-03-16 06:55:13 +00:00
Anton Kolesnyk
299b07e190
Changelog: Rephrase to move related entities closer together. (#1874)
* Move changelog entry to correct place

* Reformat breaking changes

* New feature in the right place

* body_stream.hpp

* Backtick

* Add changes made for Context

* More updates

* More updates

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-03-11 19:47:17 -08:00
Ahson Khan
fc79c5b3ad
Rename header files to match the namespace structure for things nested within Azure::Core. (#1879)
* Rename header files to match the namespace structure for things nested
within Azure::Core.

* Update a header include that was missed.
2021-03-11 16:22:37 -08:00
Ahson Khan
6a1afb9cbe
Moved the Base64Encode() and Base64Decode() functions to be static members of a Convert class within the Azure::Core namespace. (#1870)
* Moved the `Base64Encode()` and `Base64Decode()` functions to be static members of a `Convert` class within the `Azure::Core` namespace.

* Add the class name in the source file for posix.
2021-03-11 12:39:51 -08:00
Ahson Khan
12475350b2
Changed the static methods 'BodyStream::ReadToCount()' and 'BodyStream::ReadToEnd()' into instance methods. (#1863)
Usability studies found that static methods are generally not as user-friendly as instance methods. Folks new to the SDK have harder time discovering the APIs, they reverse the flow of typing, and the calling code ends up a bit more verbose because you have to spell out the whole namespace and type name when there aren't any using directives.

There doesn't seem to be a strong benefit or feasibility reason to keep these method statics which are typically harder to use and discover.

cc @kyle-patterson
2021-03-11 11:58:33 +00:00
Victor Vazquez
c0ce9688d6
fix regression on contex value implementation for Storage (#1862) 2021-03-11 07:53:33 +00:00
Victor Vazquez
23b698f2c6
Move URL to CORE (#1840)
* move url from Core::Http to Core::
2021-03-10 23:29:35 -08:00
Ahson Khan
55fe99a1b1
Revert checked-in connection strings and delete resources. (#1854) 2021-03-10 21:32:03 -08:00
Victor Vazquez
a9c0637e46
Moving Nullable<T> to Azure namespace (#1847)
* Moving Nullable<T> to Azure namespace

* changelog
2021-03-10 18:56:11 -08:00
Victor Vazquez
c7ba56f837
Move http policies to Azure::Core::Http::Policies (#1844)
* Move http policies to Azure::Core::Http::Policies

* update to latest master
2021-03-10 18:55:56 -08:00
Rick Winter
ec24f659c4
Simplify the Context structure (#1824)
* Simplify the Context structure
* Move Azure::Core::GetApplicationContext() to Azure::Core::Context::GetApplicationContext()
2021-03-10 23:19:23 +00:00
Anton Kolesnyk
48258f8f81
Azure::*::_detail::Version => Azure::*::PackageVersion (#1839)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-03-10 15:15:28 -08:00
Anton Kolesnyk
76870c4414
Azure::Core::DateTime => Azure::DateTime (#1836)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-03-10 22:44:09 +00:00
Victor Vazquez
7fca169d25
Create StringExtensions in azure core internal (#1837) 2021-03-10 14:13:51 -08:00
Anton Kolesnyk
2562df6682
_internal::Json => Json::_internal (#1834)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-03-10 14:05:35 -08:00
Ahson Khan
3d6cd38658
Move Azure::IO types like BodyStream to Azure::Core::IO. (#1833)
Part of https://github.com/Azure/azure-sdk-for-cpp/issues/1789

From Jeff:
> BodyStream is only exposed to users when uploading/downloading bytes. Except for Storage almost no services do this at all; they read the stream and deserialize into a structure and the customer gets the structure - not the stream. Azure::Core:IO is a fine namespace.
2021-03-10 21:36:29 +00:00
Anton Kolesnyk
bc564dbddd
Namespaces renamed: Details => _detail, Internal => _internal (#1823) 2021-03-09 18:05:47 -08:00
Victor Vazquez
a70be6a49c
Moving ETag to ::Azure (#1801)
etag rename
2021-03-08 16:05:18 -08:00
JinmingHu
45055dc9ef
use new HttpPipeline builder (#1784) 2021-03-07 10:03:08 +08:00
Ahson Khan
11a533a6fd
For consistency within the SDK, move Azure::Core::Context to be the last parameter for various Azure::Core APIs. (#1779)
* For consistency within the SDK, move Azure::Core::Context to be the last
parameter for various Azure::Core APIs.

* Fix merge conflict due to log policy file change.

* Update new client options tests
2021-03-05 14:39:57 -08:00
Anton Kolesnyk
622e8da4fe
API Review Feedback: Logging and DateTime updates (#1752) 2021-03-05 12:16:14 -08:00
Victor Vazquez
16eb5710d1
Rename add headers (#1750)
* Rename AddHeader to SetHeader
2021-03-04 22:09:22 +00:00
JinmingHu
813980da8f
use AccessCondition provided by Azure::Core (#1775) 2021-03-04 13:27:56 -08:00
Victor Vazquez
78b9a87278
Client base options on Azure Core (#1734)
Add client options base class
construct pipeline from Core
2021-03-03 15:25:28 -08:00
Ahson Khan
a55aba01be
Moved BodyStream and its derived types from Azure::Core::Http namespace to Azure::IO, and update headers. (#1733)
* Moved `BodyStream` and its derived types from `Azure::Core::Http`
namespace to `Azure::IO`, and update headers.

* Fix up clang formatting.

* Add missing winhttp bodystream namespace change.

* Update merge conflict related changes.

* Update header paths in includes.
2021-03-01 11:33:26 -08:00
Anton Kolesnyk
ae575b0c08
CaseInsensitiveMap (#1731)
* Add CaseInsensitiveMap<T>

* Drop unneccessary namespace qualification

* Comment working: more accurate description

* GCC and Clang fix (typename specification) + doxy comments for template parameters

* Remove Allocator template parameter - we can add it later if we need it, currently no need to commit to having it there

* Drop <T> template parameter. We can add it later with default value of std::string without breaking change

* Unit test

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-26 08:38:01 -08:00
Casey Carter
f9d4d36ad8
Defend public headers against inclusion of Windows.h (#1719)
* Defend public headers against inclusion of Windows.h

... which defines some nasty function-like macros `min` and `max` when `_NOMINMAX` isn't defined. We prevent expansion as a function-like macro by inserting some token(s) between `min`/`max` and the following `(`. Most commonly that means wrapping the entire qualified-name in `()` a la `(std::min)(x, y)`, but an explicit template argument list (`std::min<int>(x, y)`) works as well.

* clang-format all the things

* Test coverage

I assume that the `azure-meow-common` headers are fully covered by the tests for the `azure-meow-woof` SDKs.
2021-02-23 09:56:00 -08:00
JinmingHu
249327a3fa
Refactor pipeline building logic, add support for customized application id and API version (#1703)
* refactor pipeline build code

* Changelog

* fix build error

* fix bug

* fix ut

* changelog
2021-02-20 09:13:20 +08:00
JinmingHu
5c2d0fba17
remove unused stuff (#1701) 2021-02-19 14:53:04 +08:00
Anton Kolesnyk
bf347d24c2
Disable compiler extensions, fix Clang options to have effect, fix warnings (#1615)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-18 19:15:11 -08:00
Victor Vazquez
b41c53509b
Update GetString to ToString (#1677)
* Update GetString to ToString
2021-02-12 22:25:01 +00:00
Azure SDK Bot
87210648ff
Increment version for storage releases (#1673)
* Increment package version after release of azure-storage-common

* Increment package version after release of azure-storage-blobs

* Increment package version after release of azure-storage-files-datalake

* Increment package version after release of azure-storage-files-shares
2021-02-12 13:37:00 +08:00
Ahson Khan
9015bfe399
Address implementation level feedback for Md5Hash and delete ctors. (#1647)
* Address implementation level feedback for Md5Hash and delete ctors.

* Address docs feedback.

* Address PR feedback

* Move the copy ctor deletion from Md5Hash to the base class.

* Remove re-assignment of Crc64Hash in tests.
2021-02-10 12:09:40 -08:00
JinmingHu
572208baac
update release date (#1660) 2021-02-10 17:49:29 +08:00
Ahson Khan
b40603dc40
Renamed Crc64 to Crc64Hash and change it to derive from the Azure::Core::Cryptography::Hash class. (#1646)
* Renamed `Crc64` to `Crc64Hash` and change it to derive from the `Azure::Core::Cryptography::Hash` class.

* Add default dtor
2021-02-09 22:06:11 -08:00
Ahson Khan
5359e2793a
Remove Storage::Md5 and replace it with the one from Azure::Core. (#1618)
* Add MD5 hashing APIs to Azure::Core available from azure/core/md5.hpp.

* Add simplified header test for md5 and base64.

* Add changelog entry.

* Remove unnecessary include.

* Remove Storage::Md5 and replace it with the one from Azure::Core.

* Fix clang formatting.

* Add required cstdint include directive.

* Update storage based on recent changes to Md5 hash APIs.
2021-02-08 20:04:25 -08:00
Anton Kolesnyk
8389e86567
Add VcPkg OpenSSL dependency for Azure::Core (#1620)
* Add VcPkg OpenSSL dependency for Azure::Core

* OpenSSL is not required on UWP either

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-06 18:55:59 -08:00
Azure SDK Bot
c247b22e28
Increment version for storage releases (#1582)
Increment package version after release of azure-storage-common
2021-02-05 02:48:00 +00:00