Skip to content

Commit c7e4efd

Browse files
committed
Move to IReference rather than custom enum for optional bool
1 parent b86209b commit c7e4efd

File tree

9 files changed

+29
-68
lines changed

9 files changed

+29
-68
lines changed

src/AppInstallerCLIE2ETests/Interop/PackageCatalogInterop.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -291,13 +291,14 @@ public async Task AddEditRemovePackageCatalog()
291291
options.SourceUri = Constants.TestSourceUrl;
292292
options.Name = Constants.TestSourceName;
293293
options.TrustLevel = PackageCatalogTrustLevel.Trusted;
294+
options.Explicit = true;
294295

295296
await this.AddAndValidatePackageCatalogAsync(options, AddPackageCatalogStatus.Ok);
296297

297298
// Edit
298299
EditPackageCatalogOptions editOptions = this.TestFactory.CreateEditPackageCatalogOptions();
299300
editOptions.Name = Constants.TestSourceName;
300-
editOptions.Explicit = OptionalBoolean.False;
301+
editOptions.Explicit = false;
301302
this.EditAndValidatePackageCatalog(editOptions, EditPackageCatalogStatus.Ok);
302303

303304
// Remove
@@ -340,6 +341,7 @@ private PackageCatalogReference GetAndValidatePackageCatalog(AddPackageCatalogOp
340341
Assert.IsNotNull(packageCatalog);
341342
Assert.AreEqual(addPackageCatalogOptions.Name, packageCatalog.Info.Name);
342343
Assert.AreEqual(addPackageCatalogOptions.SourceUri, packageCatalog.Info.Argument);
344+
Assert.AreEqual(addPackageCatalogOptions.Explicit, packageCatalog.Info.Explicit);
343345

344346
return packageCatalog;
345347
}
@@ -396,9 +398,9 @@ private void EditAndValidatePackageCatalog(EditPackageCatalogOptions editPackage
396398

397399
// Verify edits are correct.
398400
var packageCatalog = this.packageManager.GetPackageCatalogByName(editPackageCatalogOptions.Name);
399-
if (editPackageCatalogOptions.Explicit != OptionalBoolean.Unspecified)
401+
if (editPackageCatalogOptions.Explicit != null)
400402
{
401-
Assert.AreEqual(packageCatalog.Info.Explicit, editPackageCatalogOptions.Explicit == OptionalBoolean.True);
403+
Assert.AreEqual(packageCatalog.Info.Explicit, editPackageCatalogOptions.Explicit);
402404
}
403405
}
404406
}

src/AppInstallerRepositoryCore/Public/winget/RepositorySource.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,9 @@ namespace AppInstaller::Repository
201201
// Contains information about edits to a source.
202202
struct SourceEdit
203203
{
204-
SourceEdit(std::optional<bool> isExplicit);
204+
SourceEdit() = default;
205205

206-
// The explicit property of a source.
206+
// The Explicit property of a source.
207207
std::optional<bool> Explicit;
208208
};
209209

src/AppInstallerRepositoryCore/RepositorySource.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,6 @@ namespace AppInstaller::Repository
432432
return CheckForWellKnownSourceMatch(sourceDetails.Name, sourceDetails.Arg, sourceDetails.Type);
433433
}
434434

435-
SourceEdit::SourceEdit(std::optional<bool> isExplicit) : Explicit(isExplicit) {}
436-
437435
Source::Source() {}
438436

439437
Source::Source(std::string_view name)

src/Microsoft.Management.Deployment/Converters.cpp

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -556,37 +556,4 @@ namespace winrt::Microsoft::Management::Deployment::implementation
556556
default: return AppInstaller::Manifest::PlatformEnum::Unknown;
557557
}
558558
}
559-
560-
std::optional<bool> GetOptionalBoolean(winrt::Microsoft::Management::Deployment::OptionalBoolean optionalBoolean)
561-
{
562-
switch (optionalBoolean)
563-
{
564-
case OptionalBoolean::True:
565-
return std::optional<bool> { true };
566-
case OptionalBoolean::False:
567-
return std::optional<bool> { false };
568-
default:
569-
return std::nullopt;
570-
}
571-
}
572-
573-
winrt::Microsoft::Management::Deployment::OptionalBoolean GetOptionalBoolean(std::optional<bool> optionalBoolean)
574-
{
575-
if (optionalBoolean.has_value())
576-
{
577-
if (optionalBoolean.value())
578-
{
579-
return OptionalBoolean::True;
580-
}
581-
else
582-
{
583-
return OptionalBoolean::False;
584-
}
585-
}
586-
else
587-
{
588-
return OptionalBoolean::Unspecified;
589-
}
590-
}
591-
592559
}

src/Microsoft.Management.Deployment/Converters.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ namespace winrt::Microsoft::Management::Deployment::implementation
3535
winrt::Microsoft::Management::Deployment::RemovePackageCatalogStatus GetRemovePackageCatalogOperationStatus(winrt::hresult hresult);
3636
winrt::Microsoft::Management::Deployment::EditPackageCatalogStatus GetEditPackageCatalogOperationStatus(winrt::hresult hresult);
3737
::AppInstaller::Manifest::PlatformEnum GetPlatformEnum(winrt::Microsoft::Management::Deployment::WindowsPlatform value);
38-
std::optional<bool> GetOptionalBoolean(winrt::Microsoft::Management::Deployment::OptionalBoolean optionalBoolean);
39-
winrt::Microsoft::Management::Deployment::OptionalBoolean GetOptionalBoolean(std::optional<bool> optionalBoolean);
4038

4139
#define WINGET_GET_OPERATION_RESULT_STATUS(_installResultStatus_, _uninstallResultStatus_, _downloadResultStatus_, _repairResultStatus_) \
4240
if constexpr (std::is_same_v<TStatus, winrt::Microsoft::Management::Deployment::InstallResultStatus>) \

src/Microsoft.Management.Deployment/EditPackageCatalogOptions.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,19 @@ namespace winrt::Microsoft::Management::Deployment::implementation
1717
hstring EditPackageCatalogOptions::Name()
1818
{
1919
return hstring(m_name);
20-
}
20+
}
21+
2122
void EditPackageCatalogOptions::Name(hstring const& value)
2223
{
2324
m_name = value;
24-
}
25-
OptionalBoolean EditPackageCatalogOptions::Explicit()
25+
}
26+
27+
Windows::Foundation::IReference<bool> EditPackageCatalogOptions::Explicit()
2628
{
2729
return m_explicit;
28-
}
29-
void EditPackageCatalogOptions::Explicit(OptionalBoolean const& value)
30+
}
31+
32+
void EditPackageCatalogOptions::Explicit(Windows::Foundation::IReference<bool> value)
3033
{
3134
m_explicit = value;
3235
}

src/Microsoft.Management.Deployment/EditPackageCatalogOptions.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#pragma once
44
#include "EditPackageCatalogOptions.g.h"
55
#include "public/ComClsids.h"
6-
#include <winget/ModuleCountBase.h>
6+
#include <winget/ModuleCountBase.h>
7+
#include <optional>
78

89
namespace winrt::Microsoft::Management::Deployment::implementation
910
{
@@ -15,13 +16,13 @@ namespace winrt::Microsoft::Management::Deployment::implementation
1516
hstring Name();
1617
void Name(hstring const& value);
1718

18-
OptionalBoolean Explicit();
19-
void Explicit(OptionalBoolean const& value);
19+
Windows::Foundation::IReference<bool> Explicit();
20+
void Explicit(Windows::Foundation::IReference<bool> value);
2021

2122
#if !defined(INCLUDE_ONLY_INTERFACE_METHODS)
2223
private:
2324
hstring m_name = L"";
24-
OptionalBoolean m_explicit = OptionalBoolean::Unspecified;
25+
std::optional<bool> m_explicit;
2526
#endif
2627
};
2728
}

src/Microsoft.Management.Deployment/PackageManager.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1467,7 +1467,8 @@ namespace winrt::Microsoft::Management::Deployment::implementation
14671467
THROW_HR_IF(APPINSTALLER_CLI_ERROR_SOURCE_NAME_DOES_NOT_EXIST, !matchingSource.has_value());
14681468
::AppInstaller::Repository::Source sourceToEdit = ::AppInstaller::Repository::Source{ matchingSource.value().Name };
14691469

1470-
::AppInstaller::Repository::SourceEdit edits{ GetOptionalBoolean(options.Explicit())};
1470+
::AppInstaller::Repository::SourceEdit edits;
1471+
edits.Explicit = options.Explicit();
14711472
if (sourceToEdit.RequiresChanges(edits))
14721473
{
14731474
sourceToEdit.Edit(edits);

src/Microsoft.Management.Deployment/PackageManager.idl

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1541,15 +1541,6 @@ namespace Microsoft.Management.Deployment
15411541
HRESULT ExtendedErrorCode { get; };
15421542
};
15431543

1544-
/// IMPLEMENTATION NOTE: OptionalBoolean
1545-
[contract(Microsoft.Management.Deployment.WindowsPackageManagerContract, 28)]
1546-
enum OptionalBoolean
1547-
{
1548-
Unspecified,
1549-
False,
1550-
True,
1551-
};
1552-
15531544
/// IMPLEMENTATION NOTE: EditPackageCatalogOptions
15541545
[contract(Microsoft.Management.Deployment.WindowsPackageManagerContract, 28)]
15551546
runtimeclass EditPackageCatalogOptions
@@ -1562,7 +1553,7 @@ namespace Microsoft.Management.Deployment
15621553
String Name;
15631554

15641555
/// Editing the Explicit property has three states: true, false, and not specified (no changes).
1565-
OptionalBoolean Explicit;
1556+
Windows.Foundation.IReference<Boolean> Explicit;
15661557
};
15671558

15681559
/// IMPLEMENTATION NOTE: RemovePackageCatalogStatus
@@ -1620,12 +1611,6 @@ namespace Microsoft.Management.Deployment
16201611
Windows.Foundation.IAsyncOperationWithProgress<RemovePackageCatalogResult, Double> RemovePackageCatalogAsync(RemovePackageCatalogOptions options);
16211612
}
16221613

1623-
[contract(Microsoft.Management.Deployment.WindowsPackageManagerContract, 28)]
1624-
{
1625-
/// Edit an existing Windows Package Catalog.
1626-
EditPackageCatalogResult EditPackageCatalog(EditPackageCatalogOptions options);
1627-
}
1628-
16291614
/// Install the specified package
16301615
Windows.Foundation.IAsyncOperationWithProgress<InstallResult, InstallProgress> InstallPackageAsync(CatalogPackage package, InstallOptions options);
16311616

@@ -1667,6 +1652,12 @@ namespace Microsoft.Management.Deployment
16671652
// The version of the Windows Package Manager that is running.
16681653
String Version{ get; };
16691654
}
1655+
1656+
[contract(Microsoft.Management.Deployment.WindowsPackageManagerContract, 28)]
1657+
{
1658+
/// Edit an existing Windows Package Catalog.
1659+
EditPackageCatalogResult EditPackageCatalog(EditPackageCatalogOptions options);
1660+
}
16701661
}
16711662

16721663
/// Global settings for PackageManager operations.

0 commit comments

Comments
 (0)