/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #include #include #include #include #include #include using namespace Aws::MediaStoreData::Model; using namespace Aws::Utils::Stream; using namespace Aws::Utils; using namespace Aws; GetObjectResult::GetObjectResult() : m_contentLength(0), m_statusCode(0) { } GetObjectResult::GetObjectResult(GetObjectResult&& toMove) : m_body(std::move(toMove.m_body)), m_cacheControl(std::move(toMove.m_cacheControl)), m_contentRange(std::move(toMove.m_contentRange)), m_contentLength(toMove.m_contentLength), m_contentType(std::move(toMove.m_contentType)), m_eTag(std::move(toMove.m_eTag)), m_lastModified(std::move(toMove.m_lastModified)), m_statusCode(toMove.m_statusCode), m_requestId(std::move(toMove.m_requestId)) { } GetObjectResult& GetObjectResult::operator=(GetObjectResult&& toMove) { if(this == &toMove) { return *this; } m_body = std::move(toMove.m_body); m_cacheControl = std::move(toMove.m_cacheControl); m_contentRange = std::move(toMove.m_contentRange); m_contentLength = toMove.m_contentLength; m_contentType = std::move(toMove.m_contentType); m_eTag = std::move(toMove.m_eTag); m_lastModified = std::move(toMove.m_lastModified); m_statusCode = toMove.m_statusCode; m_requestId = std::move(toMove.m_requestId); return *this; } GetObjectResult::GetObjectResult(Aws::AmazonWebServiceResult&& result) : m_contentLength(0), m_statusCode(0) { *this = std::move(result); } GetObjectResult& GetObjectResult::operator =(Aws::AmazonWebServiceResult&& result) { m_body = result.TakeOwnershipOfPayload(); const auto& headers = result.GetHeaderValueCollection(); const auto& cacheControlIter = headers.find("cache-control"); if(cacheControlIter != headers.end()) { m_cacheControl = cacheControlIter->second; } const auto& contentRangeIter = headers.find("content-range"); if(contentRangeIter != headers.end()) { m_contentRange = contentRangeIter->second; } const auto& contentLengthIter = headers.find("content-length"); if(contentLengthIter != headers.end()) { m_contentLength = StringUtils::ConvertToInt64(contentLengthIter->second.c_str()); } const auto& contentTypeIter = headers.find("content-type"); if(contentTypeIter != headers.end()) { m_contentType = contentTypeIter->second; } const auto& eTagIter = headers.find("etag"); if(eTagIter != headers.end()) { m_eTag = eTagIter->second; } const auto& lastModifiedIter = headers.find("last-modified"); if(lastModifiedIter != headers.end()) { m_lastModified = DateTime(lastModifiedIter->second, Aws::Utils::DateFormat::RFC822); } const auto& requestIdIter = headers.find("x-amzn-requestid"); if(requestIdIter != headers.end()) { m_requestId = requestIdIter->second; } m_statusCode = static_cast(result.GetResponseCode()); return *this; }