void specialization of Response<T> (#1331)
* void specialization of Response<T> * changelog:
This commit is contained in:
parent
5de2ca7b3c
commit
0127ddae91
@ -11,6 +11,7 @@
|
||||
- Added default constructor to `DateTime`.
|
||||
- Added `DateTime` supporting dates since 0001.
|
||||
- Added Base64 encoding and decoding utility APIs to the `Azure::Core` namespace available from `azure/core/base64.hpp`.
|
||||
- Added `Http::Response<void>` template specialization.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
|
||||
@ -95,4 +95,36 @@ namespace Azure { namespace Core {
|
||||
return std::move(this->m_rawResponse);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Wraps raw HTTP response into a response of a void type.
|
||||
*/
|
||||
template <> class Response<void> {
|
||||
std::unique_ptr<Http::RawResponse> m_rawResponse;
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief Initialize a #Response<void> with a raw response.
|
||||
*
|
||||
* @param rawResponse Raw HTTP response.
|
||||
*/
|
||||
explicit Response(std::unique_ptr<Http::RawResponse>&& rawResponse)
|
||||
: m_rawResponse(std::move(rawResponse))
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get raw HTTP response.
|
||||
*/
|
||||
// Do not give up raw response ownership.
|
||||
Http::RawResponse& GetRawResponse() { return *this->m_rawResponse; }
|
||||
|
||||
/**
|
||||
* @brief Get a smart pointer rvalue reference to the value of a specific type.
|
||||
*/
|
||||
std::unique_ptr<Http::RawResponse>&& ExtractRawResponse()
|
||||
{
|
||||
return std::move(this->m_rawResponse);
|
||||
}
|
||||
};
|
||||
}} // namespace Azure::Core
|
||||
|
||||
Loading…
Reference in New Issue
Block a user