winget-cli

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

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 }