winget-cli

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

PackageManagerSettings.cpp (2363B)


      1 // Copyright (c) Microsoft Corporation.
      2 // Licensed under the MIT License.
      3 #include "pch.h"
      4 #pragma warning( push )
      5 #pragma warning ( disable : 4467 6388)
      6 // 6388 Allow CreateInstance.
      7 #include <wil\cppwinrt_wrl.h>
      8 // 4467 Allow use of uuid attribute for com object creation.
      9 #include "PackageManager.h"
     10 #include "PackageManagerSettings.h"
     11 #pragma warning( pop )
     12 #include "PackageManagerSettings.g.cpp"
     13 #include "Helpers.h"
     14 #include <winget/UserSettings.h>
     15 #include <AppInstallerRuntime.h>
     16 
     17 namespace winrt::Microsoft::Management::Deployment::implementation
     18 {
     19     bool PackageManagerSettings::SetCallerIdentifier(hstring const& callerIdentifier)
     20     {
     21         bool success = false;
     22         static std::once_flag setCallerOnceFlag;
     23         std::call_once(setCallerOnceFlag,
     24             [&]()
     25             {
     26                 SetComCallerName(AppInstaller::Utility::ConvertToUTF8(callerIdentifier));
     27                 success = true;
     28             });
     29         return success;
     30     }
     31     bool PackageManagerSettings::SetStateIdentifier(hstring const& stateIdentifier)
     32     {
     33         bool success = false;
     34         static std::once_flag setStateOnceFlag;
     35         std::call_once(setStateOnceFlag,
     36             [&]()
     37             {
     38                 AppInstaller::Runtime::SetRuntimePathStateName(AppInstaller::Utility::ConvertToUTF8(stateIdentifier));
     39                 success = true;
     40             });
     41         return success;
     42     }
     43     bool PackageManagerSettings::SetUserSettings(hstring const& settingsContent)
     44     {
     45         bool success = false;
     46         static std::once_flag setSettingsOnceFlag;
     47         std::call_once(setSettingsOnceFlag,
     48             [&]()
     49             {
     50                 success = AppInstaller::Settings::TryInitializeCustomUserSettings(AppInstaller::Utility::ConvertToUTF8(settingsContent));
     51                 if (success)
     52                 {
     53                     AppInstaller::Logging::Log().SetEnabledChannels(AppInstaller::Settings::User().Get<AppInstaller::Settings::Setting::LoggingChannelPreference>());
     54                     AppInstaller::Logging::Log().SetLevel(AppInstaller::Settings::User().Get<AppInstaller::Settings::Setting::LoggingLevelPreference>());
     55                 }
     56             });
     57         return success;
     58     }
     59 
     60     CoCreatableMicrosoftManagementDeploymentClass(PackageManagerSettings);
     61 }