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 }