winget-cli

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

ConfigurationFlow.h (6346B)


      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     // Creates a configuration processor with a processor factory for full functionality.
      9     // Required Args: None
     10     // Inputs: None
     11     // Outputs: ConfigurationProcessor
     12     void CreateConfigurationProcessor(Execution::Context& context);
     13 
     14     // Creates a configuration processor without a processor factory for reduced functionality.
     15     // Required Args: None
     16     // Inputs: None
     17     // Outputs: ConfigurationProcessor
     18     void CreateConfigurationProcessorWithoutFactory(Execution::Context& context);
     19 
     20     // Opens the configuration set.
     21     // Required Args: ConfigurationFile
     22     // Inputs: ConfigurationProcessor
     23     // Outputs: ConfigurationSet
     24     void OpenConfigurationSet(Execution::Context& context);
     25 
     26     // Creates or opens the configuration set.
     27     // Required Args: OutputFile
     28     // Inputs: ConfigurationProcessor
     29     // Outputs: ConfigurationSet
     30     struct CreateOrOpenConfigurationSet : public WorkflowTask
     31     {
     32         CreateOrOpenConfigurationSet(std::string defaultSchemaVersion, bool createAlways = false) :
     33             WorkflowTask("CreateOrOpenConfigurationSet"), m_defaultSchemaVersion(std::move(defaultSchemaVersion)), m_createAlways(createAlways) {}
     34 
     35         void operator()(Execution::Context& context) const override;
     36 
     37     private:
     38         std::string m_defaultSchemaVersion;
     39         bool m_createAlways = false;
     40     };
     41 
     42     // Outputs the configuration set.
     43     // Required Args: None
     44     // Inputs: ConfigurationSet
     45     // Outputs: None
     46     void ShowConfigurationSet(Execution::Context& context);
     47 
     48     // Outputs the configuration set.
     49     // Required Args: None
     50     // Inputs: ConfigurationProcessor, ConfigurationSet
     51     // Outputs: None
     52     void ShowConfigurationSetConflicts(Execution::Context& context);
     53 
     54     // Handles confirming the configuration set processing should proceed.
     55     // Required Args: None
     56     // Inputs: None
     57     // Outputs: None
     58     struct ConfirmConfigurationProcessing : public WorkflowTask
     59     {
     60         ConfirmConfigurationProcessing(bool isApply) : WorkflowTask("ConfirmConfigurationProcessing"), m_isApply(isApply) {}
     61 
     62         void operator()(Execution::Context& context) const override;
     63 
     64     private:
     65         bool m_isApply;
     66     };
     67 
     68     // Applies the configuration set, showing progress as it proceeds.
     69     // Required Args: None
     70     // Inputs: ConfigurationProcessor, ConfigurationSet
     71     // Outputs: None
     72     void ApplyConfigurationSet(Execution::Context& context);
     73 
     74     // Tests the configuration set state, showing progress as it proceeds.
     75     // Required Args: None
     76     // Inputs: ConfigurationProcessor, ConfigurationSet
     77     // Outputs: None
     78     void TestConfigurationSet(Execution::Context& context);
     79 
     80     // Validates the configuration set semantically.
     81     // Required Args: None
     82     // Inputs: ConfigurationProcessor, ConfigurationSet
     83     // Outputs: None
     84     void ValidateConfigurationSetSemantics(Execution::Context& context);
     85 
     86     // Validates that the unit processors referenced by the set are valid/available/etc.
     87     // Required Args: None
     88     // Inputs: ConfigurationProcessor, ConfigurationSet
     89     // Outputs: None
     90     void ValidateConfigurationSetUnitProcessors(Execution::Context& context);
     91 
     92     // Validates that specific unit contents referenced by the set are valid/available/etc.
     93     // Required Args: None
     94     // Inputs: ConfigurationProcessor, ConfigurationSet
     95     // Outputs: None
     96     void ValidateConfigurationSetUnitContents(Execution::Context& context);
     97 
     98     // Outputs the final message stating that no issues were found.
     99     // Required Args: None
    100     // Inputs: None
    101     // Outputs: None
    102     void ValidateAllGoodMessage(Execution::Context& context);
    103 
    104     // Search source for package(s) to be exported in configuration file.
    105     // Required Args: None
    106     // Inputs: None
    107     // Outputs: PackageCollection
    108     void SearchSourceForPackageExport(Execution::Context& context);
    109 
    110     // Adds configuration unit(s) with the winget package and/or exports resource given to configuration set.
    111     // Required Args: None
    112     // Inputs: ConfigurationProcessor, ConfigurationSet
    113     // Outputs: None
    114     void PopulateConfigurationSetForExport(Execution::Context& context);
    115 
    116     // Write the configuration file.
    117     // Required Args: OutputFile
    118     // Inputs: ConfigurationProcessor, ConfigurationSet
    119     // Outputs: None
    120     void WriteConfigFile(Execution::Context& context);
    121 
    122     // Gets the configuration set history.
    123     // Required Args: None
    124     // Inputs: ConfigurationProcessor
    125     // Outputs: ConfigurationSetHistory
    126     void GetConfigurationSetHistory(Execution::Context& context);
    127 
    128     // Outputs the configuration set history.
    129     // Required Args: None
    130     // Inputs: ConfigurationSetHistory
    131     // Outputs: None
    132     void ShowConfigurationSetHistory(Execution::Context& context);
    133 
    134     // Selects a specific configuration set history item.
    135     // Required Args: ConfigurationHistoryItem
    136     // Inputs: ConfigurationSetHistory
    137     // Outputs: ConfigurationSet
    138     void SelectSetFromHistory(Execution::Context& context);
    139 
    140     // Removes the configuration set from history.
    141     // Required Args: None
    142     // Inputs: ConfigurationSet
    143     // Outputs: None
    144     void RemoveConfigurationSetHistory(Execution::Context& context);
    145 
    146     // Write the configuration set history item to a file.
    147     // Required Args: OutputFile
    148     // Inputs: ConfigurationSet
    149     // Outputs: None
    150     void SerializeConfigurationSetHistory(Execution::Context& context);
    151 
    152     // Outputs a single configuration set (from history).
    153     // Required Args: None
    154     // Inputs: ConfigurationSet
    155     // Outputs: None
    156     void ShowSingleConfigurationSetHistory(Execution::Context& context);
    157 
    158     // Completes the configuration history item.
    159     // Required Args: None
    160     // Inputs: None
    161     // Outputs: None
    162     void CompleteConfigurationHistoryItem(Execution::Context& context);
    163 
    164     // Monitors configuration status.
    165     // Required Args: None
    166     // Inputs: None
    167     // Outputs: None
    168     void MonitorConfigurationStatus(Execution::Context& context);
    169 }