winget-cli

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

DependencyNodeProcessor.h (1397B)


      1 // Copyright (c) Microsoft Corporation.
      2 // Licensed under the MIT License.
      3 #pragma once
      4 #include <winget/RepositorySearch.h>
      5 #include "ExecutionContext.h"
      6 #include <winget/ManifestCommon.h>
      7 
      8 using namespace AppInstaller::Manifest;
      9 using namespace AppInstaller::Repository;
     10 
     11 namespace AppInstaller::CLI::Workflow 
     12 {
     13     enum DependencyNodeProcessorResult
     14     {
     15         Error,
     16         Success,
     17         Skipped,
     18     };
     19 
     20     struct DependencyNodeProcessor
     21     {
     22         DependencyNodeProcessor(Execution::Context& context);
     23 
     24         DependencyNodeProcessorResult EvaluateDependencies(Dependency& dependencyNode);
     25 
     26         DependencyList GetDependencyList() { return m_dependenciesList; }
     27 
     28         std::shared_ptr<IPackageVersion>  GetPackageLatestVersion() { return m_nodePackageLatestVersion; }
     29 
     30         std::shared_ptr<IPackageVersion> GetPackageInstalledVersion() { return m_nodePackageInstalledVersion; }
     31 
     32         Manifest::Manifest GetManifest() { return m_nodeManifest;  }
     33 
     34         Manifest::ManifestInstaller GetPreferredInstaller() { return m_installer; }
     35 
     36     private:
     37         Execution::Context& m_context;
     38         DependencyList m_dependenciesList;
     39         std::shared_ptr<IPackageVersion> m_nodePackageLatestVersion;
     40         std::shared_ptr<IPackageVersion> m_nodePackageInstalledVersion;
     41         Manifest::ManifestInstaller m_installer;
     42         Manifest::Manifest m_nodeManifest;
     43     };
     44 }