winget-cli

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

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 }