ConfigurationStaticFunctions.cpp (3207B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #include "pch.h" 4 #include "ConfigurationStaticFunctions.h" 5 #include "ConfigurationStaticFunctions.g.cpp" 6 #include "ConfigurationUnit.h" 7 #include "ConfigurationSet.h" 8 #include "ConfigurationProcessor.h" 9 #include "ConfigurationParameter.h" 10 #include "FindUnitProcessorsOptions.h" 11 #include "ShutdownSynchronization.h" 12 #include <AppInstallerStrings.h> 13 #include <winget/ConfigurationSetProcessorHandlers.h> 14 15 namespace winrt::Microsoft::Management::Configuration::implementation 16 { 17 Configuration::ConfigurationUnit ConfigurationStaticFunctions::CreateConfigurationUnit() 18 { 19 return *make_self<implementation::ConfigurationUnit>(); 20 } 21 22 Configuration::ConfigurationSet ConfigurationStaticFunctions::CreateConfigurationSet() 23 { 24 return *make_self<implementation::ConfigurationSet>(); 25 } 26 27 Windows::Foundation::IAsyncOperation<IConfigurationSetProcessorFactory> ConfigurationStaticFunctions::CreateConfigurationSetProcessorFactoryAsync(hstring const& handler) 28 { 29 std::wstring lowerHandler = AppInstaller::Utility::ToLower(handler); 30 31 if (lowerHandler == AppInstaller::Configuration::PowerShellHandlerIdentifier) 32 { 33 THROW_HR(E_NOTIMPL); 34 } 35 36 AICLI_LOG(Config, Error, << "Unknown handler in CreateConfigurationSetProcessorFactory: " << AppInstaller::Utility::ConvertToUTF8(handler)); 37 THROW_HR(E_NOT_SET); 38 } 39 40 Configuration::ConfigurationProcessor ConfigurationStaticFunctions::CreateConfigurationProcessor(IConfigurationSetProcessorFactory const& factory) 41 { 42 auto result = make_self<wil::details::module_count_wrapper<implementation::ConfigurationProcessor>>(); 43 result->ConfigurationSetProcessorFactory(factory); 44 return *result; 45 } 46 47 Windows::Foundation::IAsyncActionWithProgress<uint32_t> ConfigurationStaticFunctions::EnsureConfigurationAvailableAsync() 48 { 49 THROW_HR(E_NOTIMPL); 50 } 51 52 Configuration::ConfigurationParameter ConfigurationStaticFunctions::CreateConfigurationParameter() 53 { 54 return *make_self<wil::details::module_count_wrapper<implementation::ConfigurationParameter>>(); 55 } 56 57 Configuration::FindUnitProcessorsOptions ConfigurationStaticFunctions::CreateFindUnitProcessorsOptions() 58 { 59 return *make_self<wil::details::module_count_wrapper<implementation::FindUnitProcessorsOptions>>(); 60 } 61 62 HRESULT STDMETHODCALLTYPE ConfigurationStaticFunctions::SetExperimentalState(UINT32 state) 63 { 64 m_state = static_cast<AppInstaller::WinRT::ConfigurationStaticsInternalsStateFlags>(state); 65 return S_OK; 66 } 67 68 HRESULT STDMETHODCALLTYPE ConfigurationStaticFunctions::BlockNewWorkForShutdown() 69 { 70 ShutdownSynchronization::Instance().BlockNewWork(); 71 return S_OK; 72 } 73 74 HRESULT STDMETHODCALLTYPE ConfigurationStaticFunctions::BeginShutdown() 75 { 76 ShutdownSynchronization::Instance().CancelAllWork(); 77 return S_OK; 78 } 79 80 HRESULT STDMETHODCALLTYPE ConfigurationStaticFunctions::WaitForShutdown() 81 { 82 ShutdownSynchronization::Instance().Wait(); 83 return S_OK; 84 } 85 }