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.
* 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>
* 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.
Partial work from #1342
Moving the Http Pipeline to the internal layer.
The HTTP pipeline is yet exposed through the Storage protocol layer headers which only use it from its Details namespace but still expose it. Fixing that would require re-doing its protocol layer, which is not ideal, so the expectation is to just leave it as Internal to be enough to be considered as non-for-end-users
* Add VcPkg OpenSSL dependency for Azure::Core
* OpenSSL is not required on UWP either
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>