* Simplify the design of Response<T> for usability.
* Revert changes to operation<T> to keep the changes single purpose.
* Update many of the response<T> call sites based on API changes.
* Update all remaining callsites and fix clang formatting.
* Update Response<T> documentation.
* Fix clang formatting.
* Remove status code from the Response<T> public surface area.
* Update the changelog.
* Fix up CL wording and remove commented-out change to operation<T>.
* Fixed test by actually calling a method.
* Fix up key vault test by not taking ownership of raw response.
* Fix call to get status code in test.
* Add new line at end of keyvualt live test file.
* Make a local copy within keyvault pipeline to avoid compilers re-ordering things.
* Make the fixes to the recent keyvault changes.
* Fix key vault pipeline to address ImportKey test failure
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?
* 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.
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
Part of https://github.com/Azure/azure-sdk-for-cpp/issues/1789
> We shouldn't have Method, StatusCode, or Range. The way to reason about this is chances of collision and ease of documentation/discover-ability in SEO. RawResponse is specific enough that it doesn't need Http prefix, that's how I would draw the line.
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.
* 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
* 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.
* 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.
* 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.