DependenciesFlow.h (2537B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #pragma once 4 #include "ExecutionContext.h" 5 6 namespace AppInstaller::CLI::Workflow 7 { 8 // Shows information about dependencies. 9 // Required Args: message to use at the beginning, before outputting dependencies 10 // Inputs: Dependencies 11 // Outputs: None 12 struct ReportDependencies : public WorkflowTask 13 { 14 ReportDependencies(AppInstaller::StringResource::StringId messageId) : 15 WorkflowTask("ReportDependencies"), m_messageId(messageId) {} 16 17 void operator()(Execution::Context& context) const override; 18 19 private: 20 AppInstaller::StringResource::StringId m_messageId; 21 }; 22 23 // Gathers all installers dependencies from manifest. 24 // Required Args: None 25 // Inputs: Manifest 26 // Outputs: Dependencies 27 void GetInstallersDependenciesFromManifest(Execution::Context& context); 28 29 // Gathers package dependencies information from installer. 30 // Required Args: None 31 // Inputs: Installer 32 // Outputs: Dependencies 33 void GetDependenciesFromInstaller(Execution::Context& context); 34 35 // TODO: 36 // Gathers dependencies information for the uninstall command. 37 // Required Args: None 38 // Inputs: None 39 // Outputs: Dependencies 40 void GetDependenciesInfoForUninstall(Execution::Context& context); 41 42 // Builds the dependency graph and creates the sub contexts for each package dependency. 43 // Required Args: None 44 // Inputs: Manifest, Installer and DependencySource 45 // Outputs: Dependencies 46 struct CreateDependencySubContexts : public WorkflowTask 47 { 48 CreateDependencySubContexts( 49 AppInstaller::StringResource::StringId dependencyReportMessage) : 50 WorkflowTask("CreateDependencySubContexts"), 51 m_dependencyReportMessage(dependencyReportMessage) {} 52 53 void operator()(Execution::Context& context) const override; 54 55 private: 56 AppInstaller::StringResource::StringId m_dependencyReportMessage; 57 }; 58 59 // Sets up the source used to get the dependencies. 60 // Required Args: None 61 // Inputs: PackageVersion, Manifest 62 // Outputs: DependencySource 63 void OpenDependencySource(Execution::Context& context); 64 65 // Enables the Windows Feature dependencies. 66 // Required Args: None 67 // Inputs: Manifest, Installer 68 // Outputs: None 69 void EnableWindowsFeaturesDependencies(Execution::Context& context); 70 }