winget-cli

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

ConfigurationSetParser_0_1.h (1661B)


      1 // Copyright (c) Microsoft Corporation.
      2 // Licensed under the MIT License.
      3 #pragma once
      4 #include "ConfigurationSetParser.h"
      5 
      6 #include <winget/Yaml.h>
      7 
      8 namespace winrt::Microsoft::Management::Configuration::implementation
      9 {
     10     // Parser for schema version 0.1
     11     struct ConfigurationSetParser_0_1 : public ConfigurationSetParser
     12     {
     13         ConfigurationSetParser_0_1() = default;
     14 
     15         virtual ~ConfigurationSetParser_0_1() noexcept = default;
     16 
     17         ConfigurationSetParser_0_1(const ConfigurationSetParser_0_1&) = delete;
     18         ConfigurationSetParser_0_1& operator=(const ConfigurationSetParser_0_1&) = delete;
     19         ConfigurationSetParser_0_1(ConfigurationSetParser_0_1&&) = default;
     20         ConfigurationSetParser_0_1& operator=(ConfigurationSetParser_0_1&&) = default;
     21 
     22         void Parse() override;
     23 
     24         // Retrieves the schema version of the parser.
     25         hstring GetSchemaVersion() override;
     26 
     27         void ExtractEnvironmentFromMetadata(Windows::Foundation::Collections::ValueSet valueSet, implementation::ConfigurationEnvironment& environment) override;
     28 
     29     protected:
     30         // Sets (or resets) the document to parse.
     31         void SetDocument(AppInstaller::YAML::Node&& document) override;
     32 
     33         void ParseConfigurationUnitsFromField(const AppInstaller::YAML::Node& document, ConfigurationField field, ConfigurationUnitIntent intent, std::vector<Configuration::ConfigurationUnit>& result);
     34         virtual void ParseConfigurationUnit(ConfigurationUnit* unit, const AppInstaller::YAML::Node& unitNode, ConfigurationUnitIntent intent);
     35 
     36         AppInstaller::YAML::Node m_document;
     37     };
     38 }