winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

AppFile.cpp (1908B)


      1 // Copyright (c) Microsoft Corporation.
      2 // Licensed under the MIT License.
      3 
      4 #include "AppFile.h"
      5 
      6 #include "details/ErrorHandling.h"
      7 
      8 using namespace SFS;
      9 
     10 AppFile::AppFile(std::string&& fileId,
     11                  std::string&& url,
     12                  uint64_t sizeInBytes,
     13                  std::unordered_map<HashType, std::string>&& hashes,
     14                  std::string&& fileMoniker)
     15     : File(std::move(fileId), std::move(url), sizeInBytes, std::move(hashes))
     16     , m_fileMoniker(std::move(fileMoniker))
     17 {
     18 }
     19 
     20 Result AppFile::Make(std::string fileId,
     21                      std::string url,
     22                      uint64_t sizeInBytes,
     23                      std::unordered_map<HashType, std::string> hashes,
     24                      std::vector<Architecture> architectures,
     25                      std::vector<std::string> platformApplicabilityForPackage,
     26                      std::string fileMoniker,
     27                      std::unique_ptr<AppFile>& out) noexcept
     28 try
     29 {
     30     out.reset();
     31 
     32     std::unique_ptr<ApplicabilityDetails> details;
     33     RETURN_IF_FAILED(
     34         ApplicabilityDetails::Make(std::move(architectures), std::move(platformApplicabilityForPackage), details));
     35 
     36     std::unique_ptr<AppFile> tmp(
     37         new AppFile(std::move(fileId), std::move(url), sizeInBytes, std::move(hashes), std::move(fileMoniker)));
     38     tmp->m_applicabilityDetails = std::move(details);
     39 
     40     out = std::move(tmp);
     41 
     42     return Result::Success;
     43 }
     44 SFS_CATCH_RETURN()
     45 
     46 AppFile::AppFile(AppFile&& other) noexcept : File(std::move(other))
     47 {
     48     m_applicabilityDetails = std::move(other.m_applicabilityDetails);
     49     m_fileMoniker = std::move(other.m_fileMoniker);
     50 }
     51 
     52 const ApplicabilityDetails& AppFile::GetApplicabilityDetails() const noexcept
     53 {
     54     return *m_applicabilityDetails;
     55 }
     56 
     57 const std::string& AppFile::GetFileMoniker() const noexcept
     58 {
     59     return m_fileMoniker;
     60 }