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 }