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
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.
* 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.
* 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.
* blob package can build
* test can build
* changelog
* datatime for datalake sas
* fix test error
* user delegation key doesn't support time fractional part
* add comments
* Added DateTime for DataLake and many other refinements.
* Resolved review comments.
* Added changelog
Co-authored-by: Tank Tang <kat@microsoft.com>
* Restructure azure storage directory
* Add tests and sample
* reformat with clang-format
* Reorder files in CMake
* load versions from version.txt
* fix crash
* Update README.md
* Use relative links
* fix CI
* Fix CI
* Try to fix CI
* Move option to the top of the file