From 09417abd82fe445e1a07f126bc24b9c8729d515c Mon Sep 17 00:00:00 2001 From: Stephen Whittle Date: Tue, 5 Apr 2022 14:21:06 +1000 Subject: [PATCH] 2.15.1792 * Minimum UE version is now 4.26 * Linux and OSX support ** Linux support currently requires cross-compilation from Windows at the present time * A log for the most recent Plugin session will be saved to Saved/Logs/Modio.log regardless of game configuration, to assist in diagnosing issues in shipping configurations that disable the normal logging path * New ArchiveModAsync subsystem methods for archiving mods if the user has appropriate permissions ** Permanent deletion of a mod is only possible through the mod.io web interface * New ModioEx extension module with helper methods for uploading/loading single-file modfiles from/to memory * Documentation improvements, including: ** C++ samples now provided alongside Blueprint examples ** Steam authentication C++ sample ** Mod submission sample * Removed stale example content which was causing packaging issues * NativeSDK version updated --- .gitignore | 3 + .gitmodules | 6 + .../BP_CollectionModProvider.uasset | Bin 31046 -> 0 bytes .../BP_DiscoverModProvider.uasset | Bin 28318 -> 0 bytes Content/OldExampleContent/IModProvider.uasset | Bin 10757 -> 0 bytes Content/OldExampleContent/IModReceiver.uasset | Bin 9684 -> 0 bytes .../Maps/01_Init_Shutdown.umap | Bin 118232 -> 0 bytes .../Maps/02_ListAllMods.umap | Bin 177467 -> 0 bytes .../Maps/03_EmailAuthentication.umap | Bin 234333 -> 0 bytes .../03_Authentication_SignInWidget.uasset | Bin 73766 -> 0 bytes .../OldExampleContent/Maps/ModBrowser.umap | Bin 152944 -> 0 bytes .../OldExampleContent/UI/CommonWords.uasset | Bin 1421 -> 0 bytes .../OldExampleContent/UI/EClickAction.uasset | Bin 2202 -> 0 bytes .../UI/ENotificationLevel.uasset | Bin 2268 -> 0 bytes .../UI/Icons/T_BrokenLink.uasset | Bin 6719 -> 0 bytes .../OldExampleContent/UI/Icons/T_Check.uasset | Bin 30061 -> 0 bytes .../UI/Icons/T_Download.uasset | Bin 24296 -> 0 bytes .../UI/Icons/T_ModioIcon.uasset | Bin 251258 -> 0 bytes .../UI/Icons/T_Refresh.uasset | Bin 32637 -> 0 bytes .../UI/Icons/T_ThumbsUpIcon.uasset | Bin 9269 -> 0 bytes .../UI/Icons/T_Warning.uasset | Bin 29267 -> 0 bytes .../UI/Library_ModioStyling.uasset | Bin 26614 -> 0 bytes .../UI/Widgets/EBrowseMode.uasset | Bin 2210 -> 0 bytes .../UI/Widgets/EImageSizeStrategy.uasset | Bin 2300 -> 0 bytes .../UI/Widgets/EModImageType.uasset | Bin 2978 -> 0 bytes .../UI/Widgets/FSortParamters.uasset | Bin 4891 -> 0 bytes .../UI/Widgets/Widget_BrowseModeButton.uasset | Bin 104898 -> 0 bytes .../Widget_DiscreteNotification.uasset | Bin 67474 -> 0 bytes .../UI/Widgets/Widget_DownloadItem.uasset | Bin 217958 -> 0 bytes .../UI/Widgets/Widget_DownloadQueue.uasset | Bin 233494 -> 0 bytes .../UI/Widgets/Widget_EmailFlow.uasset | Bin 131533 -> 0 bytes .../Widgets/Widget_FetchExternalUpdate.uasset | Bin 128350 -> 0 bytes .../UI/Widgets/Widget_Filter.uasset | Bin 139750 -> 0 bytes .../UI/Widgets/Widget_Gallery.uasset | Bin 92535 -> 0 bytes .../UI/Widgets/Widget_GalleryThumbnail.uasset | Bin 19549 -> 0 bytes .../UI/Widgets/Widget_ImageLoader.uasset | Bin 253159 -> 0 bytes .../UI/Widgets/Widget_ModBrowser.uasset | Bin 392356 -> 0 bytes .../UI/Widgets/Widget_ModCard.uasset | Bin 229114 -> 0 bytes .../UI/Widgets/Widget_ModCreator.uasset | Bin 56211 -> 0 bytes .../UI/Widgets/Widget_ModDetails.uasset | Bin 222205 -> 0 bytes .../UI/Widgets/Widget_ModInfoRow.uasset | Bin 87492 -> 0 bytes .../UI/Widgets/Widget_ModThumbnail.uasset | Bin 51883 -> 0 bytes .../UI/Widgets/Widget_Pagenation.uasset | Bin 109241 -> 0 bytes .../UI/Widgets/Widget_PopupPanel.uasset | Bin 56038 -> 0 bytes .../UI/Widgets/Widget_Sorting.uasset | Bin 118224 -> 0 bytes .../UI/Widgets/Widget_SubscribeButton.uasset | Bin 65598 -> 0 bytes .../UI/Widgets/Widget_UserButton.uasset | Bin 169665 -> 0 bytes Content/TestInitialization.umap | Bin 0 -> 111330 bytes Doc/documentation.html | 463 +++- Doc/getting-started.adoc | 130 + Doc/img/nd_img_DisableModManagement.png | Bin 14840 -> 14828 bytes Doc/img/nd_img_ErrorCodeMatches.png | Bin 14233 -> 0 bytes Doc/img/nd_img_Filesize_ToString.png | Bin 6228 -> 6636 bytes Doc/img/nd_img_GetLogoFullSize.png | Bin 7205 -> 7206 bytes Doc/img/nd_img_GetLogoThumbnailSize.png | Bin 8342 -> 8345 bytes Doc/img/nd_img_GetProjectEnvironment.png | Bin 8301 -> 8304 bytes Doc/img/nd_img_IsModManagementBusy.png | Bin 15478 -> 15477 bytes Doc/img/nd_img_K2_GetModDependenciesAsync.png | Bin 17600 -> 17604 bytes Doc/img/nd_img_K2_GetModTagOptionsAsync.png | Bin 15968 -> 15978 bytes Doc/img/nd_img_K2_LoadModFileToMemory.png | Bin 0 -> 14046 bytes ...mg_K2_SubmitNewModFileForModFromMemory.png | Bin 0 -> 15324 bytes Doc/img/nd_img_K2_UnsubscribeFromModAsync.png | Bin 18691 -> 18712 bytes Doc/img/nd_img_ListUserSubscriptionAsync.png | Bin 10899 -> 10902 bytes Doc/img/nd_img_MakeApiKey.png | Bin 9253 -> 9244 bytes Doc/img/nd_img_MakeAuthParams.png | Bin 14555 -> 14558 bytes Doc/img/nd_img_Pct_Int64Int64.png | Bin 4300 -> 4471 bytes Doc/img/nd_img_QueryUserInstallations.png | Bin 18775 -> 18789 bytes Doc/img/submit_new_mod.png | Bin 0 -> 94638 bytes Doc/img/submit_new_mod_file.png | Bin 0 -> 95951 bytes Modio.uplugin | 42 +- README.adoc | 8 +- .../Private/ModioGeneratedVariables.h | 0 .../Public/ModioErrorCondition.h | 27 - .../ArchiveFileImplementation.cpp | 48 - .../Modio/GeneratedSource/HttpSharedState.cpp | 98 - Source/Modio/GeneratedSource/ModioBuffer.cpp | 434 ---- .../GeneratedSource/ModioCacheService.cpp | 99 - .../ModioCompressionService.cpp | 47 - .../GeneratedSource/ModioFileMetadata.cpp | 64 - .../GeneratedSource/ModioFilterParams.cpp | 258 -- .../Modio/GeneratedSource/ModioHttpParams.cpp | 591 ----- .../GeneratedSource/ModioHttpRequest.cpp | 65 - .../GeneratedSource/ModioHttpService.cpp | 83 - .../ModioInitializeOptions.cpp | 27 - .../GeneratedSource/ModioJsonHelpers.cpp | 73 - .../Modio/GeneratedSource/ModioLogService.cpp | 84 - .../ModioModCollectionEntry.cpp | 423 --- .../Modio/GeneratedSource/ModioModDetails.cpp | 25 - Source/Modio/GeneratedSource/ModioModInfo.cpp | 99 - .../Modio/GeneratedSource/ModioModStats.cpp | 48 - .../GeneratedSource/ModioObjectTrack.cpp | 57 - .../GeneratedSource/ModioPagedResult.cpp | 32 - .../GeneratedSource/ModioReportParams.cpp | 78 - .../GeneratedSource/ModioSDKSessionData.cpp | 356 --- Source/Modio/GeneratedSource/ModioURLList.cpp | 39 - .../ModioUserDataContainer.cpp | 63 - .../GeneratedSource/ModioUserProfile.cpp | 26 - Source/Modio/GeneratedSource/SDKCore.cpp | 141 - .../GeneratedSource/SDKModManagement.cpp | 217 -- .../Modio/GeneratedSource/SDKModMetadata.cpp | 146 -- Source/Modio/GeneratedSource/SDKUserData.cpp | 126 - .../Modio/GeneratedSource/deflate_stream.cpp | 2296 ----------------- .../Modio/GeneratedSource/inflate_stream.cpp | 1129 -------- Source/Modio/Modio.Build.cs | 329 ++- .../Internal/Convert/CreateModFileParams.h | 3 + .../Internal/Convert/CreateModParams.h | 2 +- .../Private/Internal/Convert/FilterParams.h | 4 +- Source/Modio/Private/Internal/Convert/List.h | 2 +- .../Modio/Private/Internal/Convert/Metadata.h | 2 + .../Modio/Private/Internal/Convert/ModInfo.h | 27 +- .../Modio/Private/Internal/ModioConvert.cpp | 264 ++ Source/Modio/Private/Internal/ModioConvert.h | 346 +-- .../Private/Internal/ModioPrivateDefines.h | 32 +- .../Private/Libraries/ModioImageLibrary.cpp | 6 +- .../Libraries/ModioOptionalLibrary.cpp | 2 +- .../Private/Libraries/ModioSDKLibrary.cpp | 31 +- Source/Modio/Private/ModioModule.cpp | 29 +- Source/Modio/Private/ModioModule.h | 14 +- Source/Modio/Private/ModioPrivatePCH.h | 4 +- Source/Modio/Private/ModioSubsystem.cpp | 48 +- Source/Modio/Private/Tests/ToModio.cpp | 1 - Source/Modio/Private/Tests/ToUnreal.cpp | 23 +- .../Modio/Private/Types/ModioCommonTypes.cpp | 4 +- Source/Modio/Private/Types/ModioImage.cpp | 14 +- .../Modio/Private/Types/ModioModInfoList.cpp | 20 +- .../Private/Types/ModioModTagOptions.cpp | 22 +- .../Modio/Private/UI/ModioExampleLibrary.cpp | 18 +- .../Libraries/ModioErrorConditionLibrary.h | 7 +- .../Public/Libraries/ModioImageLibrary.h | 8 +- .../Public/Libraries/ModioOptionalLibrary.h | 4 +- .../Modio/Public/Libraries/ModioSDKLibrary.h | 5 + Source/Modio/Public/ModioImageCache.h | 2 +- Source/Modio/Public/ModioSDK.h | 16 +- Source/Modio/Public/ModioSettings.h | 19 +- Source/Modio/Public/ModioSubsystem.h | 43 +- .../Public/Types/ModioAuthenticationParams.h | 6 +- Source/Modio/Public/Types/ModioCommonTypes.h | 19 +- .../Public/Types/ModioCreateModFileParams.h | 2 +- .../Modio/Public/Types/ModioCreateModParams.h | 6 +- Source/Modio/Public/Types/ModioFilterParams.h | 1 + .../{ModioImage.h => ModioImageWrapper.h} | 6 +- .../Public/Types/ModioInitializeOptions.h | 8 +- Source/Modio/Public/Types/ModioList.h | 5 +- .../Public/Types/ModioModDependencyList.h | 8 +- .../Modio/Public/Types/ModioValidationError.h | 4 +- Source/Modio/Public/UI/ModioExampleLibrary.h | 14 +- Source/ModioEx/ModioEx.Build.cs | 31 + .../ModioSubmissionExtensionLibrary.cpp | 79 + Source/ModioEx/Private/ModioEx.cpp | 21 + .../Library/ModioSubmissionExtensionLibrary.h | 76 + Source/ModioEx/Public/ModioEx.h | 20 + .../Types/ModioCreateModFileMemoryParams.h | 30 + .../ModioTests/Private/ModioTestsModule.cpp | 3 + .../Private/Tests/Commands/CreateModAsync.h | 84 + .../Private/Tests/Commands/GetModMediaAsync.h | 6 +- .../Private/Tests/Commands/InitializeAsync.h | 2 +- .../Private/Tests/CreateModTests.cpp | 48 + Source/ThirdParty/NativeSDK | 2 +- Source/ThirdParty/liburing | 1 + Source/ThirdParty/mbedtls | 1 + Source/mbedtls/Private/mbedtls.cpp | 19 + Source/mbedtls/Public/mbedtls.h | 16 + Source/mbedtls/mbedtls.build.cs | 125 + Source/uring/Private/uring.cpp | 19 + Source/uring/Public/liburing/compat.h | 27 + Source/uring/Public/uring.h | 16 + Source/uring/uring.build.cs | 75 + 167 files changed, 2067 insertions(+), 8015 deletions(-) delete mode 100644 Content/OldExampleContent/BP_CollectionModProvider.uasset delete mode 100644 Content/OldExampleContent/BP_DiscoverModProvider.uasset delete mode 100644 Content/OldExampleContent/IModProvider.uasset delete mode 100644 Content/OldExampleContent/IModReceiver.uasset delete mode 100644 Content/OldExampleContent/Maps/01_Init_Shutdown.umap delete mode 100644 Content/OldExampleContent/Maps/02_ListAllMods.umap delete mode 100644 Content/OldExampleContent/Maps/03_EmailAuthentication.umap delete mode 100644 Content/OldExampleContent/Maps/03_EmailAuthentication/03_Authentication_SignInWidget.uasset delete mode 100644 Content/OldExampleContent/Maps/ModBrowser.umap delete mode 100644 Content/OldExampleContent/UI/CommonWords.uasset delete mode 100644 Content/OldExampleContent/UI/EClickAction.uasset delete mode 100644 Content/OldExampleContent/UI/ENotificationLevel.uasset delete mode 100644 Content/OldExampleContent/UI/Icons/T_BrokenLink.uasset delete mode 100644 Content/OldExampleContent/UI/Icons/T_Check.uasset delete mode 100644 Content/OldExampleContent/UI/Icons/T_Download.uasset delete mode 100644 Content/OldExampleContent/UI/Icons/T_ModioIcon.uasset delete mode 100644 Content/OldExampleContent/UI/Icons/T_Refresh.uasset delete mode 100644 Content/OldExampleContent/UI/Icons/T_ThumbsUpIcon.uasset delete mode 100644 Content/OldExampleContent/UI/Icons/T_Warning.uasset delete mode 100644 Content/OldExampleContent/UI/Library_ModioStyling.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/EBrowseMode.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/EImageSizeStrategy.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/EModImageType.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/FSortParamters.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_BrowseModeButton.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_DiscreteNotification.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_DownloadItem.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_DownloadQueue.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_EmailFlow.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_FetchExternalUpdate.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_Filter.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_Gallery.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_GalleryThumbnail.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_ImageLoader.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_ModBrowser.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_ModCard.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_ModCreator.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_ModDetails.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_ModInfoRow.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_ModThumbnail.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_Pagenation.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_PopupPanel.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_Sorting.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_SubscribeButton.uasset delete mode 100644 Content/OldExampleContent/UI/Widgets/Widget_UserButton.uasset create mode 100644 Content/TestInitialization.umap delete mode 100644 Doc/img/nd_img_ErrorCodeMatches.png create mode 100644 Doc/img/nd_img_K2_LoadModFileToMemory.png create mode 100644 Doc/img/nd_img_K2_SubmitNewModFileForModFromMemory.png create mode 100644 Doc/img/submit_new_mod.png create mode 100644 Doc/img/submit_new_mod_file.png delete mode 100644 Source/Modio/GeneratedHeader/Private/ModioGeneratedVariables.h delete mode 100644 Source/Modio/GeneratedHeader/Public/ModioErrorCondition.h delete mode 100644 Source/Modio/GeneratedSource/ArchiveFileImplementation.cpp delete mode 100644 Source/Modio/GeneratedSource/HttpSharedState.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioBuffer.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioCacheService.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioCompressionService.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioFileMetadata.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioFilterParams.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioHttpParams.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioHttpRequest.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioHttpService.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioInitializeOptions.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioJsonHelpers.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioLogService.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioModCollectionEntry.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioModDetails.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioModInfo.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioModStats.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioObjectTrack.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioPagedResult.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioReportParams.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioSDKSessionData.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioURLList.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioUserDataContainer.cpp delete mode 100644 Source/Modio/GeneratedSource/ModioUserProfile.cpp delete mode 100644 Source/Modio/GeneratedSource/SDKCore.cpp delete mode 100644 Source/Modio/GeneratedSource/SDKModManagement.cpp delete mode 100644 Source/Modio/GeneratedSource/SDKModMetadata.cpp delete mode 100644 Source/Modio/GeneratedSource/SDKUserData.cpp delete mode 100644 Source/Modio/GeneratedSource/deflate_stream.cpp delete mode 100644 Source/Modio/GeneratedSource/inflate_stream.cpp create mode 100644 Source/Modio/Private/Internal/ModioConvert.cpp rename Source/Modio/Public/Types/{ModioImage.h => ModioImageWrapper.h} (92%) create mode 100644 Source/ModioEx/ModioEx.Build.cs create mode 100644 Source/ModioEx/Private/Library/ModioSubmissionExtensionLibrary.cpp create mode 100644 Source/ModioEx/Private/ModioEx.cpp create mode 100644 Source/ModioEx/Public/Library/ModioSubmissionExtensionLibrary.h create mode 100644 Source/ModioEx/Public/ModioEx.h create mode 100644 Source/ModioEx/Public/Types/ModioCreateModFileMemoryParams.h create mode 100644 Source/ModioTests/Private/Tests/Commands/CreateModAsync.h create mode 100644 Source/ModioTests/Private/Tests/CreateModTests.cpp create mode 160000 Source/ThirdParty/liburing create mode 160000 Source/ThirdParty/mbedtls create mode 100644 Source/mbedtls/Private/mbedtls.cpp create mode 100644 Source/mbedtls/Public/mbedtls.h create mode 100644 Source/mbedtls/mbedtls.build.cs create mode 100644 Source/uring/Private/uring.cpp create mode 100644 Source/uring/Public/liburing/compat.h create mode 100644 Source/uring/Public/uring.h create mode 100644 Source/uring/uring.build.cs diff --git a/.gitignore b/.gitignore index c61030ee..d2f05174 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,9 @@ *.app *.ipa +# Whitelist convert.exe as its documentation tooling we want to include +!convert.exe + # These project files can be generated by the engine *.xcodeproj *.xcworkspace diff --git a/.gitmodules b/.gitmodules index 6826fb07..c32007da 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,9 @@ path = Source/ThirdParty/NativeSDK url = ../modio-sdk.git branch = main +[submodule "Source/ThirdParty/liburing"] + path = Source/ThirdParty/liburing + url = https://github.com/axboe/liburing.git +[submodule "Source/ThirdParty/mbedtls"] + path = Source/ThirdParty/mbedtls + url = https://github.com/Mbed-TLS/mbedtls.git diff --git a/Content/OldExampleContent/BP_CollectionModProvider.uasset b/Content/OldExampleContent/BP_CollectionModProvider.uasset deleted file mode 100644 index e922cf3c5999d7c214afaf1257d02c01d8c12fd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31046 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 diff --git a/Content/OldExampleContent/BP_DiscoverModProvider.uasset b/Content/OldExampleContent/BP_DiscoverModProvider.uasset deleted file mode 100644 index bbb6f9f4a7f6b6b63c04316913039a66e759d882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28318 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 diff --git a/Content/OldExampleContent/IModProvider.uasset b/Content/OldExampleContent/IModProvider.uasset deleted file mode 100644 index 9ebd8487a6cc4d089f1896a81158c5346c9591fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10757 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 JyXhZ5{{zE*E;9fC diff --git a/Content/OldExampleContent/IModReceiver.uasset b/Content/OldExampleContent/IModReceiver.uasset deleted file mode 100644 index d39708a2ce47c72490c167cea199241c211e39ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9684 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 diff --git a/Content/OldExampleContent/Maps/03_EmailAuthentication.umap b/Content/OldExampleContent/Maps/03_EmailAuthentication.umap deleted file mode 100644 index 319bd7b22b25d326a105633524e241a7c6e51cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234333 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 G6aEi&9h6c4 diff --git a/Content/OldExampleContent/Maps/03_EmailAuthentication/03_Authentication_SignInWidget.uasset b/Content/OldExampleContent/Maps/03_EmailAuthentication/03_Authentication_SignInWidget.uasset deleted file mode 100644 index feb83f42d08bc26aaf1bf02e818d49ce74df39ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73766 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 Jx<&q1@-LSO#@PS> diff --git a/Content/OldExampleContent/UI/ENotificationLevel.uasset b/Content/OldExampleContent/UI/ENotificationLevel.uasset deleted file mode 100644 index 87fb28d07b556b06edd9e2ff56889196c395271f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2268 zcmcImU2GIp6h4)?J;P zZ6tm+Ho126nAg~_;RTf4?>{?rPam7EyWu|-{eD~fCX_w@BtQ-Flw&hw)vy8I{Z#5F?H_!duen_}Yf<@)7=&K}R1F*PX}Ee5*5FrbYuZp-Uu9WldaO-t4`{*w zAUgVEB?B4f;>wFQjekW%*OyD_EXS?Q(|-8y)0cF5EyuSb+iMJ&1Gy}VIW}iD_oWj) zBjs?b&&rtGa_nyQF3ZC2xB4%wrD?BaTr0Gzj zBHo>@lVdI)25s!fk*7$;xEVLO2~#8IkF7ufEv#tu(Szk(wCIx9KmU2>n+0M&u)8Ba z6cc!Q*_9P^s5{NfLGu6uZ~M`84Rhb!PR7hy?}>AxkY3KrFj&opk3KtRR0MZo%V|d7 zde{&zg1g+wFA$1!!sfw1QG9DlxQl$GZR^k=Bi{+Tmkq)0WOJR6d(4fqK0Nnc+E2LC z@*qVC4io@WtIu)=1T2yPX{i39L99MC5K{3SRl}MRF*HTh6SsGOn_+RrMD*flX diff --git a/Content/OldExampleContent/UI/Icons/T_BrokenLink.uasset b/Content/OldExampleContent/UI/Icons/T_BrokenLink.uasset deleted file mode 100644 index f4b9bb84589114256485db882d07967b9862ea5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6719 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 X`}`Ei`zsNA)hV@{*+7RUKmh*&US1Sa diff --git a/Content/OldExampleContent/UI/Icons/T_Check.uasset b/Content/OldExampleContent/UI/Icons/T_Check.uasset deleted file mode 100644 index 10d8e8e8ba73a078cf72bd8e81c226fc3688d8a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30061 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 diff --git a/Content/OldExampleContent/UI/Icons/T_Download.uasset b/Content/OldExampleContent/UI/Icons/T_Download.uasset deleted file mode 100644 index d043720a2ce7b1213ef51fb41521626d1401e68a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24296 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 L{j;X~!GkKEJ~H{@ diff --git a/Content/OldExampleContent/UI/Icons/T_ModioIcon.uasset b/Content/OldExampleContent/UI/Icons/T_ModioIcon.uasset deleted file mode 100644 index fedb08f01003d8f54c3c48e3a89f41a7c497b2a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251258 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

;kXm5h*|8i&#ygzUSq^al3 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�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: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 diff --git a/Content/OldExampleContent/UI/Icons/T_Refresh.uasset b/Content/OldExampleContent/UI/Icons/T_Refresh.uasset deleted file mode 100644 index b4fb7cf3cedab1cbc0be5b76866a46ded5db7c25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32637 zcmdRVWmH`2(q?19-GjSpkO0Bm3GTrfcXxNU;OZ|O? z^vmX+P~s*0JWHNnvlt`gtL!^I008yM2h9W;Grs|8004nk4!UID0suIt zEkzhK69NI>HbawV;>G^5_&5Tfctt8^e+O?Uq^IwDxz$3ia<-Cz5|ef zjggi8w*dek7}xiIGWcg5wo-A>z1{1M=!yT4{=Rt);|nMr^sgf(SsNoW8zy;6BT-j< zD_cvTu#L4N(AtqnMUqL<(8k(+ z4nQM7SOq8hZ(BD<;6Jw8at!US2>}RO>N_|999>-FFkeTa%0O2~Cwrihjg!40P|U{O zO5YLSl8?jy{i^(X$b}dY4a%>$lbI1fSmE9jlypfWfMe5xF=&~;b_q06GIIw4bP!vV zVL?J`M+F-*Ye#^$lO!C%--18;E}Yu;xjwv->N0L528dEs*T{-wM#P{Qp9K)_I-spE>{d{ip2pweg!k`w;y5-VszFe-mh~KlA;O z{U`s=IYIiT|5%&oZzuRy?(+Aczy8}gf2;p1`?H7tw$2}iKQ^GT@88$cYcj)L-yw)_ zZ$ZU?C@CSL_(u%`s@yI<{Q&>~y<1X5P}vpihyd0DL-cy+axoPW1(TfKKF~pwOBqH) z?j}L!1;fY8X-374B0D=Yhe!R!|R)`6p%OJ?=5 z@|4Hba{1_7or#LA@7|tSNHu^;F2nYbu;9e%F^Ir}>Gu684h)RmYV&N99~jvC4U^Tj zH;~MyI){txzJQFgcc-5qz;SLFovrn{?;Kvd7?KAR=&^D&E6vq%6-M8p!UYlIBL(D9 z3ygqGGNTCbEq_EBweV~$D^pO{@VmQn>)Wzt_BfyOC{w493 zFdG&WrWq+#gc;;`s4sHMwD&jb%f+&cLMAcao*q$kR~F<8pJ!O<*)w_^?(8SxQ*BKe z0aik*Ze_boYBjppp&b$yR&c3Ak_xek4)9bLWEA zHvzVJe6D(Aulwo;NM8qc!X5jJAV2kZBl6?O{x1XgCmC;jKart)#%)jWNzo$VZS_Ll zm8#Z3TyQzzC^-Bnpa#2oe8i(L46M0$KxVyQTHC+D&c*2zEkp}?&q)1%`dtX%GdR?7 zcvb!s%5=c3CZ*7qbRUo6N#Pq51l9PwfjljNAJ`xQBTW$+NiKV6RL#LOZpL@>cz2<> z@U9w*q_jq*mrIq9MV2pXT&$gXlBPVvHi7CaoTa7I)6f}ER?~`k+zj4(l1t4<8&3Dd z>_JYOS+4!^ⅆ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
w7KDFtqH6MD3Z6KSgqgrz$b>Wz;ed5Y3 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 YtO31Ubf8S7Bklhe$L!E2>HqlizikVZU;qFB diff --git a/Content/OldExampleContent/UI/Widgets/EBrowseMode.uasset b/Content/OldExampleContent/UI/Widgets/EBrowseMode.uasset deleted file mode 100644 index 2da50bbe8aaf01523b6ecc7c45f0ad2e5338e381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2210 zcmb_eYitx%6h25TXh9x=U}9qpfnZ;|J3G5O(-3raW*4`y1+@#PK^%9lWn?tp-K-7rVbEbQj?YIa{ILYjp z``t6=eD~aQ&)tc4TF3vKo}PYrK0xC=5D31)hKZL_e?2wX_}ja1?5#bm>lzSyg5Nkl zVjR{luNd9$w=}O>i`cKb4p07)9=q1`L+mr{t8C{w#I7^~+>5%`br`A!ScSj4<^ep0 zT22^>l1&=2rfEtlk&dR6grqCFo{lQ2n#}@{ID`~Pe}HZ%@}sDCqF0iB)btGDBYpFc zG}Zn4rUP$wum1X(ygOrY>tEy$_$5LO@Gw5jXMcnTan#n9&&X}hGMkw`>ySI8L|_1* zjh?xcfrz8^os;POb7VBWP@pp!Q#(!hh~hBP;}$J9ve_UP0eISMaP7kLa$)@|$0IjTJcjk?YvFq-HMT^jnzi_n&+( z_W;6adythp%i(?H5`#s{KD>+^K(|fb2R<}BN}n2*U$V_|uQ|Ya%o1Gq`1zxY5UypQ z9{>JG^K7iEtHxkwkG37k;|H%l5;p2(Lm6jqfO#f&y(nDzvVG+LZDLS3nY%&+kjxg( zEisRmAu+ah?|p2Co>#Eh;R~L5Eib6pzUZ48(KX44#&m*U+<#}!X zsl~KqTg<|4v!8*#Y2Qj(ab^6pTQF_w4U=20Lm~Z=Szxf7m-j8bX;dZmN&6R!$n~*d zUM2T!7e7HP@;Qgcr7HYWyV6ZQ@{YAfcwld*sHjyMM@-0wO;L| z@&!r67X(9Om}S?s~3|Q7zpOsM9PS#WL=I&6AIFgDSBE@YMNwZ zlZm91zT3=Wb7PKNsR@z%jmMc5LK3VBwV1nsa}NbGH|J<4g$R40Yv(GR7pPqbd(z7* z1Db!K@=onU2>BBJ1Qym|pEUnZD2{MRYuizAs4WP4sy`MS>cy%5#SG_qRUU3YyO9|A z599T|B|F0DxERb2dZwr}I)FmRj`B&Gt~wIx2izNE0k|xH?(n)=Suv(YO(Lox2tjU1 z?w?WcT}9J!Na*IN3UQ+DQI$3L_TugC%N=)i_Gfhsx*@7EhbXr_r=c@mn{~=`=xz*J T8S$W_%rbKu zc6l&G)bLu{2My6gqKS`vsPTapn($+I0HcXN4Uw0k@BlH03C2o2XS%br`xAMA_=MBivh_LS-5Q>nyBV9j+dLaMt)5AA?m%AmYJkU)_F5)K(g<7eJ=_4W4QVVG zO(gt^B**2LF8lScBM%-{a)V;cW~5#3wkaTh5r?E<=K~qr$O~WGvU$4ijkkD4z`bNg_l6}h-5fG- z(LZ?M{p6F#j^##q-Zo6JubAhsZsUj7Fhq#wnB#yrS{SEKHN(m0Sh1Il@D$6#x2FzH z(}L6p#Qgs9?e?0YuC8kJLn-wDh(Rf^z0N1S{HSh@j&MxVvi&fby4bxU)c|boKYef= zTE%$#Z7a`hQH0Rs@#AZW#|6`vU@$i}J+U4clvr8o-8*Y~DCr8{-~D<0vnqA~_>Hj( zil}z+J_G_$+_2U0tmUB1I@jlYTeo~8AK z>uq;>snCHO^w|bh1j|uH5f4a0=TK3idL*X!<(Q;JrJx>BbiWje>OsE}lY>eK98~&m z728=|44uoXY^T4qqxBVr)w!!ef=-vi&EyH>C5!^kR;3}wqX{*v>9V3~k+>qo!n%qn z=)th6M*^Y1|C>hO(bB*ysGAY~!M@PEICQs!hMsI5WzST|Xrn#2OM(-RE|ry9I8fj5 z^oedNO-TM~X-s{|1KINIdAv$mX_MslEBsJ@Ay96IO9nq$;>Q)%d3iC^@>Ay%H|AQ0 zpiT>$#`wrh9dRv7q)vP~TN-!V9*k$)4Tw&w2hyX}B}z9aftrV~N4d+~=(1LL3vMYX zQ{yLiwc)xTvjjR8gr64)P){UKc4bgZ)CtO3zXJ==>nVp^8sb||y|2;c9``BuL#;d?5Y{DH=kBI-=Gu?RMIe7Q!!|gj7PlQPGjjmV({$}pa$56U+b4YLkspgI?|fZv7hCb;j&Jli;MXR z0P@%uODP2FoLw`%pV||M=yWKM&T$OwEX9MvZn($Jns#_!E~||ggZUg&Y|CSo7fz?b z_nX-P=DA@Fby9=I06S2~GngEoS-Y8L-kWjEycbq%ho$#Deu!l}m`QcsxpBdmW(}Aa z?-%ZVKD7bG$=ndjJErCNhSoQ~e6A6tO3rXy@Q#d((NxuR^Eso?YYeg;BM;xc{=gZU zT8`mF|3@lqT$!}HyR7?YkK7M4;wwMgRIS*{j%e1MXkt+w-h*xsu({ArQLXl2c9?zA; zzwAovAscDSJUqn6cFM}K5$NyP8S>>Wb5!;OCRUa<5ze6iJu~Z zt}2nZCd5TWQ?!JxMA5HAz)?X zSZveH5)j!6>;S z>nt^$<}6lfs&ArU^p>=%M;4nO*rmFqGS|OAv3~k6=*AC-^vF%(^ztF1!t6Oi%olF) zMaz7>Y%3~XU*thX_^Cl=iRd;WdYjfnB8P~!&at^a&7_K5qV3pvsMho8;pG)#LgJTi zid>26SfOUAtSYq4rDd>D$4WJ88bzYBJ|P<4N>qYTqM)M2s3<=qDvA#z+Qh^V1m$6!Z+2$8_fb**=nqe_cXrNq=FB-~ z&N(~n#v8{z{98{?&t?4xDLb5SVy|T4#(7oyr|c;E`6jaV`h{c1^k=*a?E{+^C)UKb z5A9lEjT|xjEXMn(ZOx7!YwzAY@N@s_*lVc?V;JwFqX-$m#+imr*+57wd)f{oWE30Y z(V#ErPX$AMf3>gH?@LAep{m-bFBV88qmdv)8I=8aH&C>UL#Q zx^j-1X{EMRnQAahyIwJscAJ_OnMhae9Ezn4EvA~aE8~Vqo9db`r!6-5H9h` zZ&g{qmrlAleT;|AHzf2)7X)v#N1YO z%Mg#wCf%fpmducf{`Z!{gqUe69rdP>rKa6M(rdm`;Y)LZxt+|YcAcKqEnCrBD0y}D zip_(8C3U4)qrr?55AxxfoFL@Ra1BFqZ5rHv&8={uxsjUfs;+2hiyew(lf>dlb;I+4IaIl# z-eBseNjeYiS%nmD?yxE8{`SrdTr-=vns?3|zX7QmS8Up9m>p#A^>=S714C0Ri`Z8! z>Vl0(0fjkaavPr=)_Ffd6wjF^ON<0vpfHbTE6fqn+;;E>?2^YE{Lb#+(O{}pR#Q4= z!u_l7*;xxE$;@O^$+k()_y()43>gDCrrL&?P;7;4nDWFYT)ads1lQfS_H>9BV>LA~ ztA*+rRc|HTWw&SZRrDswy8YMva$=qe7ptjBCx|~XLqjB!daj+!e(PofK4RiVa@N*| zCLIT6y{hMjE48&>l1w*|L#RucDzj8`!qacl`vXxn1(oLi_R(#yV{%T- zka+#RHXPmzYAZZQI~KpZ0-6wD*RUnK%BNxp-)ncjO@pA;DNa`=_Qgxxtcj6&rR55x zl@e?6vSA~7=hKZAMN_X_kKBM z{dlpEAJ_cQ{7BRnsS3yZp;RIgN>xX~$yhWLWG&ktj{CyC2x(cj;5Ou9gKfI*pSRIG z6H#HjT#N0pedNIdC%f#~im9UN6V&2e4qfQ7@;AQc%5u$a1%3R}3t=QeLoZLX!tUc& zKZi1wx$Z6*eZwW&k(maVUFUo(-|`Lna@o4)MQbURW|Dc z87Efc#@7b?aB3+8ty9$QQx{*X!5|hvp0_vo-(GxzGv^VtJR!Bntt;O!gfwpyzh7JC z#}^SKKU@3Q_v$Q%#lN;*4EKcd`@r@x?1BR9G%^2`VF)xx?&rneB}iiDI@3H}DeQ0| zR|>;d9#jfL7X~r2dYm`scbu3&?*j3TZ?`1qlKLdCa4ggb{P%)=&Jc^xh|7f&Ax!=P zNgGP-bI`L7)Z#oKk2C)Qjf&AkWZ+*Q>1U~ZupGFIu^bE4LZ)wvJg7}=DZjUPe45d}QxBp?KVbs|c>Ba#mV8C!w0U=p& zo8vvZ$VoUV(ty3W`|M|DjOGbC&l$LKykZHSUUHX#C2g7@@KQG6mXm+OEDU}hb{+WV zb_sI``MNh=(pKaQNOm29&oM|kQ79-|7dgd|b0arV%xlEx<^dYaB*8pFj9nt~GB0>u zN+HRdD}(}KQPB_+oH1gQ&bV1|p#Y@DL#E%VTv^-7x=-tt#-E&5HejxQv{2v^BaV+# zes19_1CnB{?_i=}K}A+dYw*_)s7OF&SIEH$E+HUUz@Gdiq{6|7^z{KT$Ca=og$1|I zZ6k*gs1gE2r4POgRdI_&Qv($v(qUXuK!wRSl5^S5DDfgsyjYd|f)pb-I#4mf|F|xR z;IA%F$pel$SZPqY)Mu{BLi^jf`q}bD?Stl=omjH#;MkL!_Y5e^Rhf7EB=URCzm>1v Yy7)g|McO#Se=T2S-om<#?B8O40KiHZB>(^b diff --git a/Content/OldExampleContent/UI/Widgets/Widget_BrowseModeButton.uasset b/Content/OldExampleContent/UI/Widgets/Widget_BrowseModeButton.uasset deleted file mode 100644 index d5a61695cf830f395187d36bda9c7928157de2b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104898 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 S8eK5W(R3LpJbq#S8~-1bnht{i diff --git a/Content/OldExampleContent/UI/Widgets/Widget_DiscreteNotification.uasset b/Content/OldExampleContent/UI/Widgets/Widget_DiscreteNotification.uasset deleted file mode 100644 index d0ece96c1cdd83d2591386136af718e3eb9420f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67474 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 K>pdK(neczb6mW9@ diff --git a/Content/OldExampleContent/UI/Widgets/Widget_EmailFlow.uasset b/Content/OldExampleContent/UI/Widgets/Widget_EmailFlow.uasset deleted file mode 100644 index dfcc38203b69cb388f86dd8c575049e991fb191b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131533 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 diff --git a/Content/OldExampleContent/UI/Widgets/Widget_FetchExternalUpdate.uasset b/Content/OldExampleContent/UI/Widgets/Widget_FetchExternalUpdate.uasset deleted file mode 100644 index 7f3cd8a4f2bbafdeedccb33f4f2c721467dad5d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128350 zcmeEP34l%2|G!W6$dX8k89QZdj3t#>%`l8?p)AkL8}pc%H|D*uMYc$&B&DP*386?@ zL{Vrj+Cx!VwX0~M{J)=j&iCE>?z{KhH*5TVF8AGgzi0U_=X<{Ad%ow~J1@>``Osgd zPoExfo}!d5qo_xD`tADSu#P8_zAXRCEy`0jk8RnsEWu`9eA$RwQqwmadaw4n4`2DN zY6F5b{Gk8R7gC$9O{@^PXy1%2&iVxVvi--Ks;1u7;F+8EZdlplpXka2yViGV@3i<$ zaffT&b+OIf9sLs3@I z8A(s=+Qvl3MRkmhYTvnSY(heO`?$89I(O_G9i2e`W7;QB7IENiKx0Kor0ZjsD$3Aq zib8cLV<}-Goww1s!&7Ez)PwsHpYJg%H!XJlN0c1$KzY;)g32m&>AdXqPm~J@a{1*0 z5~42e>&kLDy{=YKt=o4{Gbl>TU9VbYU{oLNb4)60|Y z_OwaON>7;J%+Aen#d&gkt{h*R0m*HW(>yueHvNb9b!FtayqU_uL6s_AYg6WWcls!o z&)Y^^hbOvxX_*NVe6GA4XV!q+bf?dyc=sP@KcvXjv<`t`z>n9rssjxD((>H7zBaL0 z`L5hNcaE=no-;R7IeKt%d@WsaoF~sUAa&$uSDH`xGr83@)pThIIiuX9F|)hPO1?k` zR;8wlO@6g!6&-XyukK3p&|f2J2Er23-9AsAvSC>AS2gr0Ie9K;RzkXRMcKs_(M4jE zo!Rl90eeh(`tZaokJG3AD6c0B`2z|OlRnOwljchAfis8VIjz-OAFO-E8rYB%InE}H$<6bVxm+MP2>xht;iAPMV}pXW-<&q-50 z-kmy2B{s!1%9%E?x675@-$SXRT>ZwlvZxz*l{+81@v2IwKE>n7MLmZueju+Q0sJ~j za?T|qmE%LpjG`upb?2lbXF1o??a{9OoZa)?>B`;;mkfZe`=R|NdVQ|!fv!9+T6Maw z(&Yh#`cKStDOGALJbXP0<)kN!^9>&!oA2{^a)w7o4e!~$wNra1iz*(a>vwl5=xgGU6xyeJu%tm{mD7pTRlYlN=T4PVdhm1lb?;U? zX~a@}C^La$pO6{XN?c@8|L%dmgu9K!Mvk^#8l1zCeo0>rEJ&@66Jf zr+^Y8KCjdu07b9-ET20!Yob+wX1~vG6RAhh+v6MFC(i|S38=Zl{$VWwY9^WZ@|=gIS-W7Vor|7{rNICoxJewH(@e`cO%bwmOG!Eqc|ClbxYXY9!&S#+%OCAqs1Ryex7uB<*f6%Hgb35BjQ2dWRFJ6- zig_b6K zJ9(L!!UQSM#F(B{YrOSNY>)QeOblr3oj% zk~>9x!ltvxl?zw4U5u9CqN(F))Dw-=edXTP`ZBB=O616cUC8G_aoJUQ(W9;ZgPzfpktBL-vyq(`YOJz(r7Aek=t}JEwpW`;jjA&4`@T7abj#Zh> z&!grgL;K!mr`kY?<0s}gv)yS@xrIOFRh+jhd;r>#kS?6BvYstN(TMVyM;i?2%90JW zy1>rMG;%W3(dzK{1ql#@1ounJbY(kfq*9)J@xH1M9tLVxdb}qsAJru1WO$Tq!>gYZ zWsoF@=|c*qydAS_8U&M&<52P_3hkQ zZt^JWuiMreYM5Y1=+Y(5la=Mn^^%kIMS?E@x{=@|X;SfY_AC3jC%KfBU##m2^-}$d z2%#Te|J7ilN;P~A0UG*+eDLQhxdHA62(FNfXK=Lrz_UG0td%m%o)c5;(fM$iAQZxU>$RvYLp?tdF&p)9gDxs(;z@EE?`#&k@VnHdYrwHx&_V$Y_pcRsHa`Sy;X_Re$4}4Mp z`uWK99HrE3wEPs$%?(CRAMg|e zVB&Hq3y)vEUZe?gC|yO>y8f|v)tlgi9dkMf}ajkBpV7j$AST4&Ov=@^o=GQx$?+LbvX-7R(<4Pi}6e8v?ubt zCRVA#Q}cZ!Re$D&o4$Ass>D^Po`{%k9ZouYw~(D+T}v9SnV^(EA9xc|m*quC@2ny9 zV8|tq#i3d|<$?FgwbV(?M7>{M^l3Zjjx3&>(Ld9blK|shy}RROw7X2{nL~d5zFDzl zbsX?~gX&eH^A;{LNg}^m$$PtoI#iM$HQtk#?p5Mi_1>Z)4RV08HdQODs(_jj==VI6 zp1cTYDNe61aH#VtRqB`7hv}c177%AqNA)*<{b>?}WahUkNxL6T1*0hx;c$|%&mzUB z73WQau}twe)k){0^Is~1JiVN`{!Y+g(e&vshP_YLH4Gs@s-G~w!IMv; z(F927ta9_wDP3Wn1W+?uH$T1gT68|1qA6ca+j2MTDFf7ChSE2q=0~t%YWPLdk6uH* zXzvI6r%FoVhL_5tWhi%kmW$$OYEMwTfZT@joG>!#>;(KPYe!vs5JEPYuPB{1oGnDJ{x)fDu0jc0Z6Dyvo>dlKS;GV?rPMC0MVfj7WZVZF1V?0U!#fFzfDRHjea z&~M`j&eO-^9i;5JVNMwxV6c*x_@fI(5{10V)_)(!0{wU*Ye;@gR*w4{SYUOY@cVgt zstPjvb15bL#%j&so_Iu{%hhx7X*|lfm#gQG4v0{CN*pzcIr!vv%>fQ`=I`8F`C`zO znj>Qb%9{t9G;XFs)b@gB!ggV}N$BAI`N!&m^3)vFl*S`md*bt|qtTfqEHIp?=GgJ( z0(E#6c4s)cW%u;#B`QOKrl?Bx!d@zYDj0VE<*J`t28~A~0z*eiR^9=X0`aU)^XtsG zF$;P6IMc>pjPiD$a}lhTd`|JCIkVi8RCgFU;>~r^2vgHHaSn7{W@1fN9=u|e3zC;z z;;Qf8n-6^AQ4Gr$fBMJ`h+U{&n=7xs2TqDQ+9u{v{Yw9pU6-h35F?Sp)q!_Tk42AR z1r=V(K~Me7dMFgot2{Tp+^c|62Sj97#y8>)JW~g1E}>#L-v0H8S71T<(v*&zER0E- zQ|#Gs>wHm9E=}9r853cJl?o5MzYwDD>+*W?^U_>W#csN>?o%LIAMtqD*KjVnLSK)^ zCq{Lpifd*X(M6H>4ua?f-~L=} zm8GZ9gZ#G9Khx#8b-%2&n_&J-f+|Yi&4*q`pV3wV*1VgvTZOnL_{6wTA^O%$5PN@u z_|fj};(La(QCzTnyz=iq-QIx=d^Ff9)1P>E8XnY<>enxQm&4NFAx};vLm7(wL;oEO zVW|0&C~S;?bJ~TI&`tYO?5MvxS9$8Y3NJt!hTc=(eNQKh!WvixK$Om>k9@@i)Hy*P z>g`_Tl13}9RKes5Mo0PC8cuJ`0+rOW89v`Sn0KIykw&Ig-DwhB5iMow0$Ac%E+~6V?P29 z=Z8qE9wM!#McOW^vs#F>8Ww3UQMus;9{S5?=*!<0X=tO@3~4#?8T^ekq_HmlKxwlr z(!QrOST7tbGcJd;bt1_$?b#4%yF#S>W|8(C;kze9+D8^?N2%N_i?nYkZIMOV=ad#F z)8H83;68_T=pjG~r*WS{T2Dh7_c^4c$TXJcJMvk7F-toyL^;mSSACsKpII85J{)Fg z7>RM1rD4p+VU~vR9|xy>DIOKr&-L=&mG1Fvl~BKU@Vq7Ygxumx@XRbGJhE!FeH@Z>TrQJ}|6(!VIZV93Rxqv$ zBp&pGJyOvRH7>f`xUVvv-twj$UD?-pxJA+Ne52zff$BaW@t~iujwiI#@Ze5+l9>$` zs?skXPWoC0L*4KbP!H}C>BO<481Q_h!vlUcs5J{b6b6LBR!Gr37XSy8cCU+a(0}xL&{OKc$)u9O!~G{k;z{gPGI%ftfyg{kZVRs~89a#L z00rx{V@S#1LHGxFW=gru7+NxTpw4=J%8e`;JZuk`pV_XG!Nd089x1mdN< zbUddFcn}{&t>9;riD@_>Ol*Jj@T{>Aza5xj6Bl+rYjto~dh#j^{TW zkI=V=>12L>lyY0Qu6Xf4-+%|Tf}dj&&*H~Q1`qSIO5&Nbsbui5-^+Nec(P>hupTg; zeNUAP9&}H%59@*N*^ZYvo)>?g9^dcROIc-T*5JiqQN89Znkef!+It7PyX zHmb)n^W~Dk!~Q7CE%&ve&=qE!*+-9-1AP!;9+|(2OWuy z+8>n+9<~R!NjwjIQgl4O=-LOgzlR?>AiLJ+uyiy#Qgl3D=(p(#bUj`GJSa|8 z2KiNobg+2J!|QgHXk`-ZgyYojMdt@HLM>1&zUM38d;*3%JT`$}q~RI;0DTU5Kr8G$ z=ig3zARlZdU}*OkIsuEL69;xKHK(%)oh|9CL1!~M5zoRtBCJK!q7!kaYw5)H!?tub zqVsAx8`2p`XA3&9o^&~#9qDX9XD2!%=&VQQrF3?n^9nkn>8wp>9Xeal8AWG%IFh#hV>;{7c?q4^mQ|llto>X-XEi$c0I$yz@3C}+jKCB4125na z{6S{m@lDDHK2e5wL>hQTexyOh;2Y&2gV(7HVBi7tgAeck814ZFAK(f2!3X$8Iq(De zfdjk%Kc0~f*Ei^y`9wM7gZz*WGDJRHkq>al6taMR;0id>A!C*g=)yhHkO#B@hBiWb zMbL>h11{Wi+o4Y61y7(K?Sr;KUC4{JhwfZWC+cfNCvZSN00XVy1u$+y=Di8QQ9s%S zvWHy2FY1AuISq10I`9A=?xAa-8~3cUzy%oVA$UOBpgzzJK3JzfJJOIJZG~s(5oCir zc*Yell*KdaJm|tR>pDN9tsy6VhMa(tpP?VX#m{Irv=cw0y?~#e(H`J|pF7cggzg#g zglsvzi{Y9364D`qu5?1Dq4Nww8$qUxbTH^V+5~wy-?em)c0m6C3dJ*G$!E{p${}i|UIH&G?Hg^d*(n+7{|&YVYe!%|FgnuyU}B zz4NpAaT#|x03()VtLnH8LfB} zm(qiNEP(Ugk=1FgGj#F6p2_T%;AOeXGh+*QxCvFL}=- z>b$gd$U#GgsMRXHf=p)$nLh2xIYtq`xoZ6mGQlFfsMK@$9@L_-M6s9Z2i10PPA{s| zfVUs%$|zNfGDwfo=}wcHReEJxsj=KqL!{E3YR#v*-D)dkQt9(;YhVpYle(t$W$U)O zK-QW-czbP8(~45=1`i?OGu zJfeT+EB#g3W>9Y*N%=36Ws+2V8cR|a@)%1TK)=}Pj35g#p2~Zu1}(29XYlP#>-<=R2hZjCO6T_|B9#X$qL#v@ahLK7;k$E?Lh_*>aQ{*mvsTO?}(x`=BO~qVmA@nKdMdBna6$Xv!q02~MdaQ>^K4D09S-?scH{=|E#vclzx> zzqocGI3V%#FP4Hh@if_uqu)*x(C9$Fi4E0x=hHk3Y4932obz5<3YIK8((bS9J8MV<_{t?tV z9m$h)P*|aOxZp8Me?V$Okz!fSFk7L$c@))7#O~d7&fK%~s#G0g0 z3kw8)P(Q~oPi-J+u;!wT%+Z2;v1_O`+EBmI{v%Gs&i7=H#HjR`KW! zTYO*$?MqtcXe?=A+686$U$*J+AJE4%KAPB;WhrKm1;BXipn$5r?r^*hwnn1u$C75i zbAn#P(LKBjSAf02yfj~>)Ir)VuuTqXg}@oR=C$5TE!KkkmtbtxCC~$ShRt4wvDK|g z7tP1vF(gjaHCSH{`8Iv%7yiX)l6V%$3L`Vy7^Fo8rLsK_pKH)solk2=r)zX*AOV2ZiSC>gOJPCCMX!M%qL=qiI>E16{k2jqI*oJF0$0 z6hYflY8N^?slU<0PiM*#MR;0BT&&ynJ~fXWNhBN0u*Q*3>!VQ&9w}y8@UVp+ujzAl zf_T+g7;GZTP1FFNJJ_exd)uKr&rog2bDQ2OJ(xcQQ|nM?GT@%6Vo7LM?#F?xDX32* zt;{5SMb9>?{c)N?3;T>K{E!0l77re&=@)tYMZ=C8wcA>i{bp-58dErTRrW5Vh zh3@d(Zb7p(E*|albL2KuQ#Sq6+5kG=hUyKR2lb#niC*fUr5-yx;f&nv)bSiVh%vnt zad{2hw^8*Jx{H6Uh`QiW9(Jp>EfqYk#)_yNYy#qD4$^8nec?G` zU=Kso5}Ik$M2Bj*P^UG$+^e8N(L_N4^&?nD^d{KC4&>W+qPsZy?MN8nh~hYU?m)jC zNGFkkIh%u??5Jlg5`HQ)xV?%Cc%w;!;in3{?o5<-R(q?^_F$jZO539)6-CuJ9!)VD zM1%uzE^TJW^9Frtq%OUqtt@zSKueAw`Jv|_z8Su@bh5?4eR2Tt;FWO^hiU;s>qIqK zv+yJ|+TiKJvcbdcVvC*UEy1-Ic{Hv&XjrbY#lle=V~-f8jnC{BVstUK z<$`UsMge?B%wrtXN}{c`U$&m%#us_!ltldpadM7-BSIjoLOQk2Rb;o&dog;#4#S&6 zZbT}CC*Y!74qA~Hl(09)`L%Vn$e=QDvW&g`?n2s`NV?aN^b-~v`ij_D6v+X;k%*;r zS5so?DW1~1Q~m_HgO}@|tDw&sSFru=K)TNVH2aNFL4&fl5)}Zovfl}|RB(?EPwI)X zKAycPjxrKbPF{t74_jOX@!O3YX?}Z8TRg!%0on}@34JeA#7$@$d+nk8 z_7qzxE|fWpoWQb-qSH$!ugLb2d0Ep6>xr}Nh5sH$yCq=xMp7%m9*!j2hn*8zG_N6T z^WvQ7*}Wwd);5MCXTfW5&^YKIyd>7bWTL{Q+ItUa$VAmbBPN3Qkc0d&J6-3Q5BSKD ztEkthSVa8EL6H`_I@lM~*MS(n*e&9qUT;?e+Yx;YnjPtDTfT6Xpr38MW^`#QLH%vZ zv(3dwJRt1c81n{(og1Up^p;5m*7<(9+{!;m~kkBZR_BEl1BKj z(uZi_ShYu{(=%#vQ5{2MJwijy{4s}hJ&kNJeIl5+2;7x%gRNY6G)SQS3eN;10Q?cm zI`M=VC|3I5f5R{7NOl$eHb#QZ1W#1q@UL&Q#bsut*)M_R<@u%t1C;%hK&X|!GE`E* zx~};bG~M}yinoaf(oZ?9o(X5 zD@02%f@7Q)<2k%bw6FN>LamIk9&tEC6%we7fFZIn(iRtUtfyB`ZJMm1sG}U?5s^yk zU13(~i00s*b=$FapsitH9I8DCU4|unCH0fe^eR51WzN|3h!VN&Bw43gGe)??&y8EhgZVduB8iI z*K!~i{#myhw*giNVu{Ci;t@6pYX=DgLyTGMT7Zv>Jn(x(lngC`7C`Gc)V2B0xL6A{ zdIR|xZA&e$2w<(abL6V`p8d~E!K)Mhc7_-*|z0a>Keb1R70*xIrevD z&_55=l4DzwSxbwWdQp97Wz-W|`YeS3gcbW_v8JZ2+2_jg!O{yJbpl5c9(6ER;FN+! zImg;k&$@%YfruUYhMxXB+Zrm%90}@*fQWa%3vy6RLUzHtbD1mEH4Emh9py&^ME}oz z{fy-==K02%aWz>RM^lP>cFpn&+zG19qcOk0Kh{}2Z{j|@d9dAI;ZY6UB#y`+^uwMl` zK15%@iU3w`e3XJ2rv{Bv`Yie=}eqP69m2wR`wBz$EpP4YWjcnmWJafyp9I1PPAI^ ziW<+g^-+SWNXP#F?T4Le+h)AFVC*SkHBv93U^z~+t(`SOST(FMVjc)j3)T(V4i6LF zCq~i^qyf+gL<^&&p1}J}Bs|k?ak1`-dA{&lc+c<*S-Plm3dUiS1xChDX)|r9=N(Cb z?O?=%9T@P2VSjG1t&^pXT@%RP%Q}?VwzbujIkXz|yF1$uefqt0+G^UZvK-qEd%JOFcqmq}m^rqR z;x-m@@OWx3v>^Nm_z9TTU`~(rg*PGQj+nWlwK3BX?cIs++$M2peT3%#dY#nXdx}#> zM8u}uRFd-sLg(7j&w8WBF@hpfqbSB4Y-?j_V3frw1x6x_E7168x)&?I z*b#v_F2)_KU|_Wk(!zL*88G%A%(unGqllG`>LsCR=2FZAG8Om?+|F@S0$&5h23b zEc8)$PVkao!SNmi_Cg|Ffl?0TZd+XJscJi}c&)5W0M(0ZYvTFgKw1e(Qlm3sSHDBK z$F^*^^XkAgX^!T?OXm5g^dSXJFe!2FPKtZ7r2IA zs`O*=Rq8qj-eE-i4Y9V-)c3H)248|#I>d@F_6?flT4Ku`Ycza+j4!agxPz9WO@&v7 zJq^PDhcAc-C^S2fQpM^kJdOu!ad9gOn$0O*YFi7BTY6bJlm~6gF?JD^GspgrtR;A! z#aQ)gpAPyIr)YETtC|Mz9b4NpYBj7sIh5tLWopVCiKGE|V-4lZ>0KdnGPX0_dty%o z@xYN3d*>MON?Vy|dJ4V7&af_IbD^i0e_~G!_5#3bh7QArK&%*1dCbY-QvuqM@H}jb z>r$D+%<{$)%~%abYy`0e_&nH!l_uA*9m*=(`mLn!h;2#M40|e8+t#H?6!CPio`HAD z#2zL@Kp;bmY8cOA=^2qMv37`97*-2o$qG1>H4;~FuVGF#?Zule_-=&ISnGbn)M3oT z9$Bnz#nV;zfr$TOtrGiGgtrLK5HT1LoxwgSs)wjW&DMo2C9zWy?^}R#^bq_e(lgco(Hk&-z-~3zc&wbjZsRwKVC@Od zdRtr^vkI5P4YI~ytzds7IAZmfEW>SerrR@~Q50-9*yFacX6;8D89fhs3DKsQC5c#F zdulo8I{YiNG}iSIg+cowa)2F(QG{n>*tlRx5xK@LLevYN6}~KD+~`-(A7BAq%t7%F zng+Xo6-tM)$re|#%z@b=R+%tgj3mp6_%0%~STDm@K(OwE(Lwtfgp2kFMA9?nuGqx^ z`-`%eKVgm~Vl2pkl`Am=1H3hz9?HevlrY2TP@b@*oLdCmEUY2s=ooV_7Gd;(C5)zj zm>0lKAyS4h2YnFl$6%!xGXRIOIc!{*PhftFc0hZgMPQM!Qv>!+jB<$5B3g&GgI@*> zLHq!?o(vlobO?09s)JIrE3hN>1Q@sw?<9a%v^-#lMPY3knzlvaVw3{r&!^C+O`I6b&PjtYq9bSo-wl#vpKW` zdIZ{_BgqPu7OjOy4rYDO2#4}a*tpP}P!e$sV8V!pl_ZS4=-+5x(f83`(OOuefW5~| z6Q209VdD}}e(-^vK0?D_WrU845d{7fFvSs8aEO_%SP4VaWvj$>wpeVQ1q99{1K*&0 zE^PThV(1Tu2cWIdR*)TLPnh|mr(%UfSZR19{KW;dYp# zHkJy{rI82U=?cuX)0R877UG=%F`q{NhgJv=8+HLvOff3Jf?(7ZYlmW88DqLbdC?YE zYndZ(rQB*v9j%VH+Ng-{MPXe+L?y?nBPcWrBWt8;g&oREwluJf7IHI_>@M3nSR=%& z++6azZEMjakFgKqFIGYzdGR)e=y%vd1zU+Wz*;7J9kELb<2Gg(4rNc+xWrycVe!T2 z47&&qTH_q$#RTW07P@LVx7!x(~|A$FbO4pPBv1QJ58z=#BCV*KeyPw;47 zwZ+A~KU`j4v#qg$%%SJ`b=y+qWe%2|LwUot4Es)qk6l&Io*4 z5PR1Ur_jEbA-+}jmaNfwb|&7L;OH&IXS-juEZ%pj9#lc=3%hjtS z6NmU(g@`TelQpm`wUsWtAE;UVc-8ueC|ht(U>m2;6{!91*iu|a=FsCGL7I;Fi51>= zZEIzlCu|w|2mC{fDcEy_IUvvT#S8*{3N{b^BEMCM8H$5Gd@n3e4SCh<5#RB6uYc3q zp}cQfuC~kpJA&3hL-quuw>WZ-*HGd}Qo@z<7c&AMvR!gy$oPizQlc zuZH>7+j^_LTd^c#SAk+rSCFmH@7Ve{Y}sJm3EjiK5D|;R>=fQDW}}G8A)<(J61l|e z2vR}(4$(%3vfmaLduXBgI$&E5%MdeXu^S!~L341$ID=U=b~|B@7ti!Xt71lneuZ5y z4*FxQc729%VJ%RMWMW+f{S#7vw0Q1@xn5_2Aff<`Lhl7O%*Y+eClXiTb*H(kAspT5 zMLiV0V4{*ovjU7FRy+T=RW!Ycr1!6{F=*1KVM_`<39`p*7Fq=z!fY4wP{;(m7+wP; zgLXo^1>OYmqs1J`AzNH*k;3Qlu&lH2(r+MZ2uJ#eZy;)n-Pjq#vG`)I7E4K`cjE?- zggFHxh==O`%$9T3M?{bySy)10HxW$$1aU3Vml5fKKZf`1F>1hT7AxEsFFv=$#bdM; zH%Dx1U~1tjidZ9dhd?)A>7fh4KZLIcdoR8@gE0YdIP@{hq|kf5khtvp0gmPJo>MVH z!W)s;X_`fCf*rEhr3TM~<5XO0U@3?4r7ef-v0WjE?9{kQE|4V%~~=^tCN6yZv5))N8wGzOk+O5}BhvMS627 zk{hYE09FgJqnD$_k)-t^PK-BC#SZyzZR=(ULGQu0Sl_}t1QB%1GGKp@3faK6pbxtvKte9{*Bmt=clYpVmFpOo7QJZ0m4;G1G zj1McR3}YPdDFp0FKMss&0>-r=S_nuWrSO*oRq#3kOE7lC6h)qbw3UX}x?bigbiG4^ zv_n~%nfTxL3Iyfov2NdO$WccG}*wL5cxv)?Qms-v6eYC_HC@O3cj#z z$hpk=yOwGtEzCMa4WT6yXzxp^UicWyj}^s5Y2QFDFw?ig7Opi6?p2ttirV#>!+NOK z9M-VVniH+lI@W7=VFE{Zqk^V6@Pe6lGtD_0MvB1J#4L_EveF$yTSOksHXt4&V4-_J za0_FGAWG_6IC$L03{&I_-NND82KeKmzF@nlZ(-IAb6>#Bmf}qjQ8PG$AH$RvR5l&` z+N#M0>)$K~wrQAOF^sJmJZ6S59hh4%ER^wS}n@N#r7HO?0KYBCT3o&Lyxj2Vj?tCAZCMd^v1iIndbf%Lfk6FGo?`AEDbpq=W zB2Dv6fd}+JI&2fL>q+#<(6$3~vP~!s+kyBW+XALV>lH#j0_Rg&s%XdH+4PxZJ6Nuo z?LZ_)@XVIBaC7xwNkEGWSMyM55zI6nmcmTy{tNqoh<Dvx) zAhb@i9cJ@2P%QF=_Q~)q9L^`WL2QRTtAcvnu&|=G{~x|c!RBjN0l>)6kaUDCk&vl2 z9*8j&xkRK6nxr2a!fjvlqVPtCb1fVw^FVo*ehY^?`lE$;ybj%m!<{?)Z;tH zqRt&)71*NyW2oxW>pd~l#jUROG(fr4wHP;`-0sCQRu??Z2O5m6@c%u+ z1)kAwcs^FNF$$3)vF8k{+altm%`=5&hn}TEV=zaAMxw4O{ger9G%qdEfE}@VSYvpl zSp88EYSqF7p_=Rl}XZ z6x=E@er=3k2+Q}(ieU0ssL@+I+QwWLz22c`N%ZpE>IcS*GjH_+RsnqvHZE{nF!QU# z4l(2nZ9$4R$^{xVf81| zr>FOb#rkw$%fV-73#aV|6svn6XCEMg?)KC(zV7sZ0E7suQ{^Sbn7fVLAh(2}q%w(B|QPpsnw zwXg`r#d zZ1Kdw5v0bk2+^}b+1XHOT2urYY!wv|XQqYZht6A6d~N z@minIv_@|`#eT_fyfCdFYyCmeYi4z|-PoFjA);qCN7MFN+gn|2 z7qg~i#c6f5HHLy(-SGEGiT2&el$_Pow8mb)cnl~m{R(fr1glEy2Mc>* z+%L={oo0Ot8^1Oml^DOhgm~;LT?vUjqM>9|+AB)hTPdu$Jcft%3IeU4HnS?3met;q z(OTBZ-_Xa$L|g_|+AOlD&ndVy-`!g9btN7NibEP_hd*&{Jq13(nYf-(kXV|g>2`Lp zsIfHheiU@ObmxDVO`MCRVeKc_gM|+(#-?zrERPd*no@FB79#+Ur5q(FygzYv*jexl zFQ<6sZLnA8_B639#XQeERwvSmZw@Hluj*h`!uPyvQok}SED1`6_R@yRRdZ2WpshZ$)>_3|-8{C4wUI!2IZZ^Y zL#1guQAEtcJg-R8@|wwraf&o8FZ9BEtQ0yUzD~fUMH`t@A<~L}hl}>@8?8^6ueEBs zVC_bUqRg{F1$$lkT`t=G*|XJi4P56b{h5&X%1odY(WJ_DB;1{kW`1}p7p}oX=5G_O&1}0JCoinXkA0w=sZlZA75OV~@q!hY7b{Guxwoqeje75vzh; zi@1nA^ZHjN?K7KgKY;VayV?ZdL7loX|dKpthjy;#-pnuA6-f zjqbvag~7FRd`_!fyy-5qk;hsd)e0&Xln)%oi>r3C-6xtR!Os;w2}qY1$&I)_P?Qi zODSxn**pY1vLzMrm}0W}9sV98)W<#1u02a`^_wZsdh7r9weNF#jLy_OM&a)qLEm9Z z{NMGRb2~@Gijq~7M|hZKwv@jHeQxJSaYlL3E7)Vvya|jlJW?Wu@MLhuzLZ@L3U@9L z-u`Z2W`D`to6y!|iasg@`lnhHT&o#t)$DB-#XB|g9}7R0A})%a!|fIBzI{lSJ<8H; z*Ry5cJ|v`h*TP0w?d>jJ%|EwqAM>2hUcT8JN!YT$Ig(j?1Aj?Qvvj4|vcSwX(> zg|$0@Hpk4O6+Tj6*0PYBarSG~vf=uB#oK2=A&;ryw`}31RJtutkbPQ^M7SQqxfpF= zJ3@Bs^JtzKpxRi?BR!zuj!(#|#e{@qHGliaY(E_Q1Gbl%ZkzYh@Tm{~n@mNgo~=h9 z^&*-B&a^L5O;Hr(B|42qc>*kyz-)PS=&ohyevy3E)i6+k9?)gQEsEBXFmdrC-GBP@ z>6c|vdwJDks%T#9TPk);COv3Uth#xz7pNF`#&M;%sKntGSizTe_=)5q(K1a>phc0n zl;S|vzCAMc5-kxBd+lNP+qw$%F>&DjLV1tN zrEgQFpekz*8CFZBu%65cR+`kM#PU-tZdj%m|SgL?S2hXHg2 zL#(#B5)K#+TtS0Lzk=Gfq$D)vupz_Jku^Z;0pR+|(EX5Mi2z;JlzwXuA;RdP3Z3d< zMi>%m(^->F!XQe!0hFcv{ZL;TicERbBdGL90;{DfRxD#$S{76)(GB-7eUl*_Tv+t5 zfk>xAuef+d5es8;faqmR?U0uaWXBN#6Bp?ua)wic8#&6Ph+i0LnqQtfbi_dnW#}v* zabXr|B8loCuX-$eFOvMk(I1m0OT+~`7PR26L|IL0M^ddJ6*8%GkSQ24tgZ?>D658f zKyToq-cfnixD0hgk#~axS?47MEdMj%4!eL>xji9NxoU*DvC4rQ$WITDCQHo-{XrA? zGwK1E@1ipqi>orx8}-_?)I8jDs4DXVE~&3iEvX+jWJzv2wd8wTQePh#c(w2Wsv8Hy zTSvVUKlQ%l2T-f8uXb=7hFS3Jk|ZfHv?{12G%g?^e>1aDQ$;R@FsCYE2KOr+@c3(DE2dK8S2}(Del6s3a>Qk0=C4W*$b5%&NzaX1 zl^$brF~p)~Ike314@@;73p!pFmq5eMCcTMFN6L)zJL4EjJsdbRs1VSt;umasP z5&zIV4u=vUuhNc2h-aO*zLTnChS`*&7edT3Z$0eai+U-M$xoN9AM>ocls!o zZ@B77B~0+S@^YM619H=yK9^brid9i6P7{^+dHG6*l`V`JRzy5?ta=&UTJ+6$9!o2{ro>+}?~DZOOvEgzi(EUS9-DG(w0pqQ5&^ zqXV*ycV#&9vwX@kbdLj?;mgYx!iS2KQ=0)ve&KT$LG$4-qX6A8*&CrYtG>x?aYAoQ za0=IfdFQ@ih8bdycYB>9vs}f)F4dz$}28@+0s2aB6mRUkPsV=55*<;mn&e&u%ti)4u{cHx zy;VjuUuD^B9+`>7KUO}|p9U6(kp-x|dY}ZGJ3ZQKWjc#(xqRk^R(l&~V&E8=se!x( zUAjrgR(WN5l>-tm$ST9DGGV$^2G(q5g0IN`g)GGOpOsA^EkC_eCNih2?wnb5%$rjt zCHaYES1?bfPYJf^F!$n9injcBZonosH?NOXnqYUPdRJq}Ftz1**|m zV3D{cK63s?EAH#H>4hpkSNLFPs$L{7P=z=aii_rERWG9`J0vhD5#GX!R*9R=Q~by>1LjcBxF9Sm5q-j%wJCF>bsu?}ASj0-swob?v@m$f@D=Sc5) zo!ecy;>Pd3HnI-&#lf;1CLWdVB3sloVy95b#C8D_{_OmL!nenMV@E}JAIh){$%H_F7V^2+S{<8zGKQl}zF zP?kD1t&CFeHeT?4UnM_raIdGH^E|WhhNPZM0!U;jLskd9V;iuX zGuTAQ7cQs$_Y>ruzGi3Uc~b=2fM zqFCTBXn)1AKh~klk6ASKuc|lA?^o3f_NT6xpC3ob@pBE~oAdCgdH26`Ys~tZBl~>x z;yn#O0(i0Gr%BgW24znFq5GybwO?qvWM~8MV}yN!%IHw_t^(ckY~S0H?oxfs{?0s_ zdFgM}th?1;t&O0@5+p8#ZafU~9WMQI)59I-#yyv`dvrn>$5d1q4zm&0{r+{YC0RX} zKiuNPte$Jjf>|T%byOw~jpTk3VoLTNV(v9A6UJ4omK&xS6*&3YH4FQDH^)76Yir-v z-|y~@IzsV-aUO@!VR00r;rSty;h8P)`@5i};h9XM@eY|eXdFl6pupqms4+*EuIjQq zaf5Hi&SyXQ>t%h5P<`rAlYYy7;EPIo$kls6gKvj-ntJcii@6}fCSyc zo3cRnvM z`^KW2ZtL6ae{$s0pQ-T(yG{$*jUChs#yzhPt~(cncmoc-z62zgJQTXq7JkP3T`0%( zBS|CkU^yo4ql}i_t`BuU4$`)jHS(m~%~BXGZ$`LUp0X9{ff6P6CC+&-aZUZLw>7?f6GJ{qxyc=le6kj}gYbu@D`Z)dC#@B>4|c@B>V4 zUN6j41q{@>y+YgMZ!hTf#G3g{Hh=Y4B{NttPgP9F*Uf+^)k?Y88iU4tH7CE){P?k6 z^Jn(YuGu8cX$HGXhe;FZPZDY=R?7q`cs`xFjezCpG0Byc#YRInB?1;JMv#UBM4$fl zlMm|tn~|{Um6qonh&;N=4AxxDEq*jc8cV1py_N}7upFK0+OPjc))rn<@Vp1q?tP+K z+K;cz?QzFLEvqi6bMz)N80-iiXC4QW_bwULzxVXs3qKz4QN*)7?*j)$*l{MGt{Mlw zNGOXM+d_32t>^2=g!P){eXpjeuXf4#ct(#Q2u<(UUo z7WY3q>FFcYkH#%dioZPm{krAMV5RL=V5Re|VNFgn{^Zf*l^1xYR&iXp8Zx$OPNd-g z?bkbQ8@l7ATVogAx2aENiX++#R@!a_R&O7j@p#j2mEu#E9{OR;;RQ#21-;?$^Ys3@ z|2FTksORQCxApmEZ@Krtj}cZ3ZpCK>u}q*{f2e&9%;1Qkvqpzr+rB8D61U)|kKY;_ zIb$l|;V|2#Zqu(S^={d7OYU8Rs?<$r3TBP4yHS}uw9c+B{ScJZ{NsY~Q-KO5xzp2K zIb5-N)oQ25P~@LcreqrR?j4ekpio0MVxz#O&iIQ;x`V3N1xq}O|HcQyHD>Yf*xgC8U8j4~zdiNKg$SzmM--5_as zw;w(_+-<2k%?^jz5i4^xjh)*ob;t7k@4axro~yyE5mo}G1T(vVZm*lR9MYY36xx=Q zPzdE7NgDTM%MeN*;>gmR^r4mrJA_hTyHn}lg>UcQa-`Su%WG8mv}xyunO2a_k&%n( z{*D_4ACGGHZ}&|ryG<+mLS{uXSZUiG_<~8RUQZtTW={Ovu^%eGo|>Vq>DZ|*XutBu zq}RT@@P)W#KPT-;a;|PcDvbC!klqY+qpK9|~r30Yb z2rCBrQhE^(Ffizi-0saLKbx{@{e;RJZ>jf=8LTf$iLa4#(>AU{r??IY@lkQ@{l0@7-5IaIB^(bMLP;IgVEKf-f9A(N2?Y<&P&zo zW*ZJ>$P|u`6y6ajo=r#>1{#+0}ss3^+dneu;&)v*r{(GopIO< zR?Lxo=%MilOHsKXXnZ4P=kbj#?@eC*^_Qbs{xxa58O*$c70Kv@Js^2wzCPY?^$k7l zyREnPuZ3OqfZ_kT1Ab4YWTTY)R(VyIpm6`21hDp7&IInIFo|Uc{H#nNI$-+M2ZsJp zb5^grr%y`STBllogU^8l4D!$SZ1?f0i$6`-n(@uvy3Ot%Yz8Za4hS(xVTcQhBmii5 zctaKnC~4K;tjJ*CyPHxUZZxlI>gt=8jcvO6rtN01$~t5kf|6Hc_&7@+duwsWr^ckL z{Cv;n-!%R$9i&+C#bkm9V+SyURpSD5EhfI;mGGj7>XrB(7?+BOTfoe0AY(Wj8huW1 zXoMYRtaSBrSPJ_f;cpoIbC42>ud~Moc$PTX0e0vJ@&Wo3#suwYSML4iYtHYrx$~E0 z4o;it)OUII0q{~*#W&KI|LlqH{=o6iPalq}^qm>37)(&<`2b*`{$smeezew+q|Kvd zy%aNJWLGoTndSq4#>#_NUZdQ6D0$ZY_tqR5HT88f*nial(V3bZZ8+`0+P9@lAK3k$ zgTH;Ct_%Lx9k6(OfE%fgS$4qDh3SCvc8!eM@#YIj54}9N`HS8$&*(cK`v8z>`+sMq z|8Q(}{Hg)9Z++|1yPBK9ilGCRo)2KAC}yz#$_Fs(RMZY3M-rri2hW`o8=si@MeNol z%DmB2K8-Ph{r5gV2cqB0d_0w`h=1ew--GHb$PpN&d- zsQ;o9GY(g+Z3a85OpuwPn8E%l6J*w@&?uo48R_65A+6WdmA{x8v%b-j`&TEHuWSY@ z0TTp$u?<{DQ>M>PZMbCcYfF;nk68TC#ojl(1PY6<6Z<+3jafgZ*Q_N2J3mtE`scux z5oT_98UqC#di53%`D>X#>9&Du>Uipbp!vM)3)bKN+U{<1?;H8g=w835T^qaEek{NB zWaSH{Byahs<>I~D8=gdgP;L328>L;KkPeoNrBV8q+TGG9-9)n4E-LcBEzi;KIT9Xp zX_uUuzwUT?-0k~E9cXymSCL6TMxK~J)+>H{>frVXQE`v%jbC@|N#AiZ*jZ(i%oNBB zW^R;9R>`5PILta7;GvWm>ENTsw5uE3dSZ6BEz6^GYQK2ZUuLlXq60H;kwoM7-$t)~ za?_ouYYy*wvCsI-5d;d!+YDr&gVze;#G`WN?WO#M!gU4iiyyXjxBC9dZap8b_v+3O z+zeLQrUV*fGzkQA?*i>7b=pBo=sSEE;$3-Mf3-G4$Q-Z?B20YX&QA6LdAv_4e8k+y9NO5xe7x zk2BKO^n4ZchQrV8wPwC??cF~n-t|b${CoeL`xW>x!ivEJL5)F@|9HuNXMYn=(uyg- z|ML*!vyvI+&ay)uq>PpwGJ<$1aEHA0hW%qJFHTHZQ{y)0^2lwsFbSZDtw|%gpK|iN z@k_h7doTH+N5a)}D}7}KD~1Lyy`@=|frnO1Na%1Z`OeSWV^@9uSh5++JOnuz@}Wa7 zE&-9hmI;&&x!SHDw53edXTQ03cE>-v&ANQ)6RwZiPeR>Rii|WI;Nj@N6^rh9$k+Xj zdmedb^`U#!#xlZ6U|j^FYUSUO#ax0Y9AR}wkyUUp^UYmzH@+}1_MVm-8^4_Q!Cr7? zgdOGrdIY7g1q-(G+SUud>|C*O++&RwzBYMdUyv8Fb^dcRgD+R$VBNGdGl`+5H-*{- z+WNW!>+b(Is`uI-Gq$8(UZx+D0CL#OG^YFO6aVSnw0FZ^TXJg*UHizFN6cVnm6-tp zefDquZbSMV@h{Z+Ywf3h_kP(7_FtKq&O~4L9ebbL_OUN@<9Oe2<&*NC6DXu2BON@P zta|YE*T;2Fz5B8?r|Mtw)^}#G5->9b+y&Z&C|&J7ba~^o4|Use@~;I)KmY7LaA0Rh z!Hsc$tQqXTGC|mpYTRFJ$JZcapd)BXpgMk(FhET<`D;4(D=6J$Vo>P=GU0l8Jt40# z@+vO)>e+zQk)vH{K8kbXW;rMJc4oW0>K_6Sf32lUYEE31J8g_BUH!^VYEA?{s*X05 zFZ#@Acc_`sE0SO~Pj%&Ua2SWDWP>833xQwTS0(2;kqxcAouvG-gQb^dS9 z4w%RUfC?{=a$R z2Zp%uSBpG$9St-ZKk{t`EA9DF4Wi5VQS@;5`5Kw%2vQCHg6vl!-LK5H`vi<%khLDT zD}+$Iebf*Io*#@oFnj(p|K|3ZyF7Q)jK{M6(5nY4UQ^~`YT#}_<>T^P^f#d5U0JSCbR90tL~>4Uz7Ix1{c5>@3EAzIB4l#H{z$Sc7jP+% zwt_L^i?(Jk?qzD!g_?yw#cskZbDb)gEl;_%mxe?4OfbSiz`fm}@`@gb<6=6E?>++_ zs>dcG106xy{f2;B|GA74WO;YUOhM745$6>`IpYqTclnBguP4sPyXN*X?&`Dkf}r}; zqZ$1gzuImFyE`_{TnT=Ruv}Co53PNEkq~Zq{Lx#^rCvE90BG?L zP%;$VNMm}6L;)&NiqE$xP}CPj3kQZ;{o$~7U3OBwnlf*2u>y}RzxPPlym8_0soQt1 zdGn{Qx{uYjRT+r}LD%_po}7K_-jsxO&Kn0U|FF#yX0SqZUq~xXq6y~`wtAp4&}a-6 zo54!En>Hl6jKOu#8%o`geiMG^2r}H{e^!|x()uQe>h>~{)CFLR~#Ops80&AN<5a9+*&C29`UE=ULM8wa}n zSlM=e%w6@~-0{qsn<|^ZVv$)M8b62t;V2Y8<)~nYFYdAxYDd|w`ej)E_RGqo?ub0H zW^12!)p05u&WzhY!I=@p)~h0=sWU72SE9_xE5Uu94G6z+KP_kqhtbNL_bV4qIi57< z!wNCSTdY|DMvbrxR7Qu9Q8?~qU+5`8R$CFu!S5;CcWs{#d)I|8T|VHZIyZo{P^?;7 zkvMCf)NjiSG(m@fXZZu%7w-n2|tdOrP;T_qey-`H8}GS& z?mSQ)4rj*i;(;?G?2NHP7ZY*D4-AIOXxiZPsO6bcdfmO^@r|u3j?M+6M%Wo(hrkYw zP;F;vZ#Ge>9in{j1Yj&B7TEEqd1KUw&b4YK&&tUhvu$$yF8U5%Mq)BEnP#vBGCwZb zKwWZ4s!Eq{S05UGWtD`r^=`Rr!6j3!F;f*Y7R+F!ttw{C8%ngSDrSSU8LYHb#mton z#ShZT$$oPT4|LojF4p^BH_8k_ixGom!sGJFHCC6;bL2JX;%RvPymx*%5&!hj_9u2M zO4|uGa0CaSSh+0q8$H8Pzb`AysJYTnsp+jJu8Ci_`jg|EK3YG6NdSRm@IyyiI*t3r z%wQ}bl+jGbWIWQLuUSCkuVn(Ilj*nL*M?BW6vMtd)NM6-A`J(4m{{?Xx2_#Cwddo> zjXvEoFYnnUpa91TvNW;GTQhjk@IP_$Aq+CN_Ds zVl^|^S*!4BOpBO&0^FJ%me&2C%v}V1U3p#zef@>nroj4opiWfB_2q8q{$$G*Ka{I< zJYX@J^|d__ZhY6*48{zCPfcHUOSZWud|BkhPS#PpU1fX=63Fay6to{c|KtT_d>^Mi zH|>XIH=Oi7Y6d%}qlIxG@E6)FZE6JRRDpGL-terK5)SX`Id^`KZ`$2(+l{PAXlvF{ zvzM~WV5P02kwl~MEjQ3@r=y_#nXUCsXU@F3`?_0qcRm(-@CGy3|DcX;fc)qvf*tKf zYGbLRg|efKCw((@+;i)Dt*jaS(t>A`On01_{rxF37&8bat?lSn#b!t0@*6)u0o-;v z3fez;Y)8(ikGyx-3)ft>S*C-a*slObQIXRUFtmX`;JL3rap6#>-)Dq z&A7V=O8zwAw^Z`a3S)?qRz12l`kgi@%YQn*#>2lY7-wdP%|2ad24e|9N}7_F{7mjr z!e{&lBxtZxcJOe}bHcZA&d|8m3jhu*pAb~D)jptAF%yuiv{jA4tA7QIl)e)sGl z%7DlIikmTE&$hP?Z~ehc*`rA*jGxOhgRz95Xr-y_h~yeSHwYT+lpQ>LQKe_CDZQF^ zd*IE7?y7WKxt3z@au8+yS`uW z*SL9~n!)}Dm3=VeN5_BZA(sgim+MA>9_iqk@$R{R z$X`wf09rh#C82{jBIztl3>mav`t5*aTi;FVdE4H`_q>_-*WG5YvsOoMfpq97_*xu~ ztpzs7#TcK`mgyGIFe?zA0PKZg(=(g8i%EB99`+GcX1i-8;f$f zt#7yg$&pWgc9|J$qMBR$XnH(BLiIK4GHTi%0JL}rQ1V)osqCb+U*21$ZQQCy-*~9? z(5S^IXJ?2(`?}#*o!r&+gScCcT|FcsBm0<4dL*Wd1(5k zk7}+=UGrSyqu>2`-4gI+guRK%(l)>ii7w*@AHlbsl7se7@BXGy#aegvT5)Sv z&#oEm6*JhGW`IGX@ndLau>Z;cHzN9sAC4nXSncsih5mi}=ZueEaqq9MjY;j<0(==^ z{|g2fd=Hy2>`1FED|-!b|xGuZ#20j>vKqNBhba4~Mb480IirVs{rgJa#H zn_DeUUg3K7^3C7hF~!UPUqf8adHB@4`(L^>W_`_(eLi~eo(5*H(l)>~h^|*0`(qu- z{Fp^!|EhY^{C-u@LUsliwEMoPF}%)+D#@#t9$PcJdTduSSZNtx(2D~e{kHNEdwzO9 zt;hZ2-mX95koy$i;qbG#+ZzjC+xJxOhg&bL;<HwEC*EwojJJY8VI-4hycbM;BITGA(tQ=eb%BY#DSIEEr)WZ-a{@4owQ$U7_Vs z`v=eczdzeQ{OQf+TjS&=N+87wJ3AV5Mz`FCw}|ymxKN z#`{hr-*wv)bC-CB9EK?DIz4EgHFesIrcED9oHe9wh22Z)tv7>}wjI8Z=qijI2JMl< z-v6{^)DztvTv_$PlTc94Bk(4Tvoov}mtGULA%r0~wCYpiROJ13$KeI!?T zT7v7-wNL&?`ao`*SPJLm=DBlxZ6M_9RT;I;R8*&sa^Wjlr6Jl95^J%DR27=3{vzd^ zuAbA?Vle^5tE=4A;RwjC9_Pu<_2iJ{^0pBl$)p+%`5LA-;WF+fJQ3c8-otp#L%L6O*&cI2;(L`MQzm9;3=UfSIE3XyhHJ$U{CT}W%6*`O= z#|tq1nIW0seFIOpo%C{jD;U=~Nz-fU+_J*9eWkF-Kg2e~s%b6$}+1jEZA~`fKttS;F*s7m&>| zfpXm}bN(!^@FLXX68cSXdVLWI6Uh6@ab`sfP`@G=(Vtu)zaw`-=58&o;#+DEe^0kJ z+vV#=p9RZys?c~>hLhZ>fcuZRnB>_n&2nmc(|U)@5F~Eq=@Xg3*q>cobBw%sQeIha zrpae+Clw)QVqj012_Kp?J-SP15Pi?cgd}-o`NE{Bhu`QjC)ddY&gnNefO95G_2ao= zfz{6#-6*j7HI{TUiSkjqSSC;wqxx}gQP9BbMhBPRjF)QMkd9paLtL@m-_> zD_pVKyBd-W1vZQSzUny>$5NqdX=_{;iTnQsE2v@R3#^C*pCeNORm20WIACRrCscd| znjuYSl`6RX2~z|s?R}w&lAxL~sAQ-JOoKR-{}w|fRDcOegSzbCD;wO45(_dI9zum- z=D?~w4yXg5(g-Rl>g{0*uA7G*L4|6eG*TVWU=IrebXQ716%%wNsLX{_^1&s*!4=Y- zxoUCCp=(vlxSe_Sj1JtHEl_8{T6l23umL4xp_1sWeg*~ws0=LZU^PYuR2+kP-1L+2 z+_Y&<8@?G>-kV{O1PdmR!Us^*7;XT?2&hB=0a!u=O|yXjOffhif)qLeF~}L{jqHQX GTJr#3^WxnA diff --git a/Content/OldExampleContent/UI/Widgets/Widget_Filter.uasset b/Content/OldExampleContent/UI/Widgets/Widget_Filter.uasset deleted file mode 100644 index c7b916810141de8b1f62337c47893b42f926048e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139750 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

+
  • Submitting new mods and uploading files + +
  • Classes @@ -888,7 +894,7 @@

    mod.io UE4 Plugin Documentation

  • ModioCreateModFileParams
  • ModioCreateModParams
  • ModioFilterParams
  • -
  • ModioImage
  • +
  • ModioImageWrapper
  • ModioInitializeOptions
  • ModioModCollectionEntry
  • ModioModCreationHandle
  • @@ -901,6 +907,7 @@

    mod.io UE4 Plugin Documentation

  • ModioLink
  • ModioOptionalUser
  • ModioValidationError
  • +
  • ModioCreateModFileMemoryParams
  • Functions @@ -913,7 +920,6 @@

    mod.io UE4 Plugin Documentation

  • Make Api Key
  • Get Value
  • Get Message
  • -
  • Error Code Matches
  • List User Subscription Async
  • Get Logo Thumbnail Size
  • Get Logo Full Size
  • @@ -936,6 +942,8 @@

    mod.io UE4 Plugin Documentation

  • Get Project Environment
  • Get Project Api Key
  • ToString (Filesize)
  • +
  • SubmitNewModFileForModFromMemory
  • +
  • LoadModFileToMemory
  • Enums @@ -952,7 +960,6 @@

    mod.io UE4 Plugin Documentation

  • EModioLogoSize
  • EModioPortal
  • EModioEnvironment
  • -
  • EModioErrorCondition
  • EModioSortDirection
  • EModioSortFieldType
  • EModioImageState
  • @@ -1421,9 +1428,56 @@

    SSO/External authentication

    authenticate user external +
    +

    Note that the SDK will automatically URL encode parameters (such as the auth token) when making the request.

    +
    +
    +
    Steam Authentication Example
    +
    +

    In order to use the Steam authentication functionality, you must add your games Encrypted App Ticket Key from Steamworks. On your games profile on mod.io, go to Edit > Options and add the key. You can then call AuthenticateUserExternalAsync and provide the users Encrypted App Ticket as the Auth Token. Note that the Auth Token must be Base64 encoded when passed

    +
    +
    +

    Below is a sample Blueprint method that will get the users current Encrypted App Ticket that you can use in your Authentication request. Add this to a BlueprintLibrary in your games codebase.

    +
    +
    +C++ Example +
    +
    +
    +
    DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnGetTicket, int32, LocalUserNum, FString, TokenData);
    +
    +UFUNCTION(BlueprintCallable)
    +static void GetSteamAuthTicket(int32 LocalUserNum, FOnGetTicket Callback)
    +{
    +    //Get the steam subsystem
    +    FOnlineSubsystemSteam* SteamSubsystem = static_cast<FOnlineSubsystemSteam*>(IOnlineSubsystem::Get());
    +    //Add a handler to the subsystem for when the ticket has been retrieved
    +    SteamSubsystem->GetEncryptedAppTicketInterface()->OnEncryptedAppTicketResultDelegate.AddLambda(
    +        [LocalUserNum, OnComplete = Callback](bool bEncryptedDataAvailable, int32 ResultCode) {
    +
    +            TArray<uint8> TokenData;
    +            if (bEncryptedDataAvailable)
    +            {
    +                //If the ticket was retrieved successfully, get its data
    +                SteamSubsystem->GetEncryptedAppTicketInterface()->GetEncryptedAppTicket(TokenData);
    +            }
    +            //Call the user callback with the base64-encoded ticket, ready for submission via AuthenticateUserExternalAsync
    +            OnComplete.ExecuteIfBound(LocalUserNum, FBase64::Encode(TokenData));
    +        });
    +    //Begin the actual async request for the ticket, which will invoke the above lambda when it completes
    +    SteamSubsystem->GetEncryptedAppTicketInterface()->RequestEncryptedAppTicket(nullptr, 0);
    +}
    +
    +
    +
    +

    Note that if you are on 4.27 or above, Epic provides a helper method in OnlineIdentityInterface::GetLinkedAccountAuthToken that will get the current account’s auth token without having to take a direct dependency on FOnlineSubsystemSteam. Ensure that the token is Base64 encoded when being passed to AuthenticateUserExternalAsync.

    +
    +
    +

    +

    Plugin quick-start: Browsing available mods

    @@ -1607,7 +1661,7 @@
    Semantic Queries

    In your application, you probably don’t actually need to handle different network errors in different ways, for example. The semantics of networking errors are largely 'try the function again later'.

    -

    This is where Error Code Matches comes in.

    +

    This is where [ErrorCodeMatches] comes in.

    It allows you to query if the error satisfies a particular condition, such as 'does this code represent some kind of networking error', without needing to explicitly check the code against all the individual errors in the category:

    @@ -1643,6 +1697,97 @@

    Parameter Validation Errors


    +
    +

    Submitting new mods and uploading files

    +
    +

    The plugin includes a way for you to support uploading mods from inside your game or editor. In order to upload a mod, the process is to submit a new mod, which will create the mod for your game; and then submit a file for the mod.

    +
    +
    +

    Submitting a new mod

    +
    +

    In order to submit a mod, you have to first create a mod handle using GetModCreationHandle and use that handle when calling SubmitNewModAsync

    +
    +
    +Blueprint Example +
    +
    +
    +submit new mod +
    +
    +
    +
    +
    +C++ Example +
    +
    +
    +
    void UModioManager::SubmitNewMod()
    +{
    +	if (GEngine->GetEngineSubsystem<UModioSubsystem>())
    +	{
    +		FModioModCreationHandle Handle = GEngine->GetEngineSubsystem<UModioSubsystem>()->GetModCreationHandle();
    +
    +		FModioCreateModParams Params;
    +		Params.Name = TEXT("My Awesome Mod");
    +		Params.Description = TEXT("This is an amazing mod");
    +		Params.PathToLogoFile = TEXT("C:\\temp\\image.png");
    +
    +		GEngine->GetEngineSubsystem<UModioSubsystem>()->SubmitNewModAsync(Handle, Params, FOnSubmitNewModDelegateFast::CreateUObject(this, &UModioManager::OnSubmitNewModCallback));
    +	}
    +}
    +
    +void UModioManager::OnSubmitNewModCallback(FModioErrorCode ErrorCode, TOptional<FModioModID> ModId)
    +{
    +	if (ErrorCode == false)
    +	{
    +		// Mod was submitted successfully. Use ModId to submit some files to it.
    +	}
    +}
    +
    +
    +
    +
    +
    +
    +

    Submitting a file for a mod

    +
    +

    Once you have successfully submitted a mod, you can then submit a file for that mod using SubmitNewModFileForMod. When you submit a file, you pass a ModioCreateModFileParams containing the directory of the files that you want to submit. The plugin will then compress this folder into a zip file and upload it as the active version of the mod. Note that there is no callback for this method; you’ll get notified of the completed upload by the Mod Management callbacks.

    +
    +
    +Blueprint Example +
    +
    +

    As an example, after the callback for submitting a mod has completed, you can get the Mod Id to use for file submission.

    +
    +
    +
    +submit new mod file +
    +
    +
    +
    +
    +C++ Example +
    +
    +
    +
    void UModioManager::SubmitNewModFile(FModioModID ModId)
    +{
    +	if (GEngine->GetEngineSubsystem<UModioSubsystem>())
    +	{
    +		FModioCreateModFileParams Params;
    +		Params.PathToModRootDirectory = TEXT("C:\\temp\\mod_folder");
    +
    +		GEngine->GetEngineSubsystem<UModioSubsystem>()->SubmitNewModFileForMod(ModId, Params);
    +	}
    +}
    +
    +
    +
    +
    +
    +
    @@ -4305,7 +4450,7 @@

    ModioFilterParams


    -

    ModioImage

    +

    ModioImageWrapper

    wrapper for images that’s returned by the api

    @@ -4388,6 +4533,26 @@

    ModioModDependencyList

    +

    Variables

    + +++++ + + + + + + + + + + + + +

    FModioPagedResult

    PagedResult

    TArray<FModioModDependency>

    InternalList


    @@ -4407,7 +4572,7 @@

    ModioModDependency

    -

    Variables

    +

    Variables

    @@ -4438,7 +4603,7 @@

    ModioModProgressInfo

    Class representing the progress of a mod installation or update

    -

    Variables

    +

    Variables

    @@ -4484,7 +4649,7 @@

    ModioTerms

    This struct contains strings that should be displayed to a user when displaying the terms of use and offering to create a mod.io account

    -

    Variables

    +

    Variables

    @@ -4528,7 +4693,7 @@

    Variables

    -

    Variables

    +

    Variables

    @@ -4564,7 +4729,7 @@

    ModioValidationError

    Wrapper struct containing information about a field validation error

    -

    Variables

    +

    Variables

    @@ -4584,6 +4749,25 @@

    Variables

    +
    + +
    +

    ModioCreateModFileMemoryParams

    +

    Variables

    + +++++ + + + + + + + +

    TArray<uint8>

    ModMemory

    @@ -4875,48 +5059,6 @@

    Returns


    -

    Error Code Matches

    -
    -
    -nd img ErrorCodeMatches -
    -
    -
    -
    -
    bool ErrorCodeMatches(FModioErrorCode ErrorCode, EModioErrorCondition Condition)
    -
    -
    -
    -

    Checks if the passed-in ErrorCode matches the specified error condition

    -
    -

    Parameters

    - ---- - - - - - - - - - - - - - - -

    Error Code

    The code to check

    Condition

    The error condition to check against

    Return Value

    true if the code matches the condition

    -

    Returns

    -
    -

    true if the code matches the condition

    -
    -
    -
    -

    List User Subscription Async

    @@ -4931,7 +5073,7 @@

    List User Subscription Async

    Runs a filter over the user’s subscription list

    -

    Parameters

    +

    Parameters

    @@ -5001,7 +5143,7 @@

    Load Async

    -
    void LoadAsync(FModioImage Image, FOnLoadImageDelegate OnImageLoaded)
    +
    void LoadAsync(FModioImageWrapper Image, FOnLoadImageDelegate OnImageLoaded)

    @@ -5015,7 +5157,7 @@

    Get Texture

    -
    UTexture2DDynamic* GetTexture(FModioImage Image)
    +
    UTexture2DDynamic* GetTexture(FModioImageWrapper Image)

    @@ -5029,7 +5171,7 @@

    Get State

    -
    EModioImageState GetState(FModioImage Image)
    +
    EModioImageState GetState(FModioImageWrapper Image)

    @@ -5046,7 +5188,7 @@

    Get Logo Size

    FVector2D GetLogoSize(UTexture* Logo, EModioLogoSize LogoSize)
    -

    Parameters

    +

    Parameters

    @@ -5067,7 +5209,7 @@

    Parameters

    -

    Returns

    +

    Returns

    Dimensions of the logo if displayed in a 1:1 pixel ratio

    @@ -5085,7 +5227,7 @@

    Get Gallery Size

    FVector2D GetGallerySize(UTexture* GalleryImage, EModioGallerySize GallerySize)
    -

    Parameters

    +

    Parameters

    @@ -5106,7 +5248,7 @@

    Parameters

    -

    Returns

    +

    Returns

    Dimensions of the gallery image if displayed in a 1:1 pixel ratio

    @@ -5124,7 +5266,7 @@

    Get Avatar Size

    FVector2D GetAvatarSize(UTexture* Avatar, EModioAvatarSize AvatarSize)
    -

    Parameters

    +

    Parameters

    @@ -5145,7 +5287,7 @@

    Parameters

    -

    Returns

    +

    Returns

    Dimensions of the avatar if displayed in a 1:1 pixel ratio

    @@ -5163,7 +5305,7 @@

    Get Path

    FString GetPath(FModioModCollectionEntry Entry)
    -

    Parameters

    +

    Parameters

    @@ -5180,7 +5322,7 @@

    Parameters

    -

    Returns

    +

    Returns

    Path to the mod’s installation folder on disk NOTE: If the mod is not yet installed this path may not yet exist. Check Get Mod State before trying to load files in this location

    @@ -5198,7 +5340,7 @@

    Get Mod State

    EModioModState GetModState(FModioModCollectionEntry Entry)
    -

    Parameters

    +

    Parameters

    @@ -5215,7 +5357,7 @@

    Parameters

    -

    Returns

    +

    Returns

    EModioModState enum representing current state of the mod

    @@ -5233,7 +5375,7 @@

    Get Mod Profile

    FModioModInfo GetModProfile(FModioModCollectionEntry Entry)
    -

    Parameters

    +

    Parameters

    @@ -5250,7 +5392,7 @@

    Parameters

    -

    Returns

    +

    Returns

    FModioModInfo containing mod profile data

    @@ -5268,7 +5410,7 @@

    Get ID

    FModioModID GetID(FModioModCollectionEntry Entry)
    -

    Parameters

    +

    Parameters

    @@ -5285,7 +5427,7 @@

    Parameters

    -

    Returns

    +

    Returns

    Mod ID

    @@ -5306,7 +5448,7 @@

    Get Percent (integer64/integer64)

    Dividend/Divisor and return the floating point result with no checks *

    -

    Parameters

    +

    Parameters

    @@ -5341,7 +5483,7 @@

    Is Valid Security Code Format

    bool IsValidSecurityCodeFormat(FString String)
    -

    Parameters

    +

    Parameters

    @@ -5358,7 +5500,7 @@

    Parameters

    -

    Returns

    +

    Returns

    true if the security code has a valid format

    @@ -5376,7 +5518,7 @@

    Is Valid Email Address Format

    bool IsValidEmailAddressFormat(FString String)
    -

    Parameters

    +

    Parameters

    @@ -5393,7 +5535,7 @@

    Parameters

    -

    Returns

    +

    Returns

    true if the email address has a valid format

    @@ -5467,7 +5609,7 @@

    ToString (Filesize)

    FText Filesize_ToString(int64 FileSize, int32 MaxDecimals, TEnumAsByte<EFileSizeUnit> Unit)
    -

    Parameters

    +

    Parameters

    @@ -5492,10 +5634,112 @@

    Parameters

    -

    Returns

    +

    Returns

    A text formatted from your specifications

    +
    + +
    +

    SubmitNewModFileForModFromMemory

    +
    +
    +nd img K2 SubmitNewModFileForModFromMemory +
    +
    +
    +
    +
    void K2_SubmitNewModFileForModFromMemory(UModioSubsystem* Target, FModioModID Mod, FModioCreateModFileMemoryParams Params)
    +
    +
    +
    +

    Queues the upload of a new mod file release for the specified mod, using the submitted parameters. This upload method accepts a a block of memory TArray<uint8> rather than a file path. The upload’s progress can be tracked in the same way as downloads; when completed, a Mod Management Event will be triggered with the result code for the upload.

    +
    +

    Requirements

    +
    +
      +
    • +

      initialized-sdk

      +
    • +
    • +

      authenticated-user

      +
    • +
    +
    +

    Parameters

    + ++++ + + + + + + + + + + + + + + +

    Target

    Modio Subsystem Object Reference

    Mod

    The ID of the mod you are submitting a file for

    Params

    Information about the mod file being created, including the memory that wiull be uploaded as a mod

    +
    +
    +
    +

    LoadModFileToMemory

    +
    +
    +nd img K2 LoadModFileToMemory +
    +
    +
    +
    +
    bool K2_LoadModFileToMemory(UModioSubsystem* Target, FModioModID ModId, TArray<uint8> ModData)
    +
    +
    +
    +

    Loads an installed mod file into memory.

    +
    +

    Requirements

    +
    +
      +
    • +

      initialized-sdk

      +
    • +
    • +

      authenticated-user

      +
    • +
    +
    +

    Parameters

    + ++++ + + + + + + + + + + + + + + + + + + +

    Target

    Modio Subsystem Object Reference

    Mod Id

    Mod Data

    A byte array of the mod that has been loaded

    Return Value

    True if the mod file is successfully loaded; false if it cannot be loaded

    @@ -5942,60 +6186,11 @@

    Values


    -

    EModioErrorCondition

    -

    Values

    - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    NoError

    NetworkError

    When this condition is true, the error code represents a connection or HTTP error between the client and the mod.io server.

    ConfigurationError

    When this condition is true, the error code indicates the SDK’s configuration is not valid - the game ID or API key are incorrect or the game has been deleted.

    InvalidArgsError

    When this condition is true, the error code indicates the arguments passed to the function have failed validation or were otherwise invalid.

    FilesystemError

    When this condition is true, the error code indicates a permission or IO error when accessing local filesystem data.

    InternalError

    When this condition is true, the error code represents an internal SDK error - please inform mod.io of the error code value.

    EntityNotFoundError

    When this condition is true, the error code indicates that a specified game, mod, media file or mod file was not found.

    UserTermsOfUseError

    When this condition is true, the error code indicates that the user has not yet accepted the mod.io Terms of Use.

    SubmitReportError

    When this condition is true, the error code indicates that a report for the specified content could not be submitted.

    -
    -
    -

    EModioSortDirection

    Enum indicating which direction sorting should be applied

    -

    Values

    +

    Values

    @@ -6019,7 +6214,7 @@

    EModioSortFieldTy

    Enum indicating which field should be used to sort the results

    -

    Values

    +

    Values

    @@ -6056,7 +6251,7 @@

    Values

    EModioImageState

    -

    Values

    +

    Values

    @@ -6088,7 +6283,7 @@

    EModioModState

    Enum representing the current state of a mod

    -

    Values

    +

    Values

    @@ -6125,7 +6320,7 @@

    Values

    EModioRating

    -

    Values

    +

    Values

    @@ -6150,7 +6345,7 @@

    Values

    EModioReportType

    -

    Values

    +

    Values

    @@ -6195,7 +6390,7 @@

    Values

    EFileSizeUnit

    -

    Values

    +

    Values

    @@ -6230,7 +6425,7 @@

    Values

    diff --git a/Doc/getting-started.adoc b/Doc/getting-started.adoc index 94d41558..112ab713 100644 --- a/Doc/getting-started.adoc +++ b/Doc/getting-started.adoc @@ -218,6 +218,50 @@ Here's what steps 1 and 2 might look like in Blueprint: image::img/authenticate_user_external.png[] +Note that the SDK will automatically URL encode parameters (such as the auth token) when making the request. + +===== Steam Authentication Example + +In order to use the Steam authentication functionality, you must add your games https://partner.steamgames.com/apps/sdkauth[Encrypted App Ticket Key] from Steamworks. On your games profile on mod.io, go to Edit > Options and add the key. You can then call <> and provide the users Encrypted App Ticket as the Auth Token. Note that the Auth Token must be Base64 encoded when passed + +Below is a sample Blueprint method that will get the users current Encrypted App Ticket that you can use in your Authentication request. Add this to a BlueprintLibrary in your games codebase. + +.C++ Example +[%collapsible] +==== + +[source] +---- +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnGetTicket, int32, LocalUserNum, FString, TokenData); + +UFUNCTION(BlueprintCallable) +static void GetSteamAuthTicket(int32 LocalUserNum, FOnGetTicket Callback) +{ + //Get the steam subsystem + FOnlineSubsystemSteam* SteamSubsystem = static_cast(IOnlineSubsystem::Get()); + //Add a handler to the subsystem for when the ticket has been retrieved + SteamSubsystem->GetEncryptedAppTicketInterface()->OnEncryptedAppTicketResultDelegate.AddLambda( + [LocalUserNum, OnComplete = Callback](bool bEncryptedDataAvailable, int32 ResultCode) { + + TArray TokenData; + if (bEncryptedDataAvailable) + { + //If the ticket was retrieved successfully, get its data + SteamSubsystem->GetEncryptedAppTicketInterface()->GetEncryptedAppTicket(TokenData); + } + //Call the user callback with the base64-encoded ticket, ready for submission via AuthenticateUserExternalAsync + OnComplete.ExecuteIfBound(LocalUserNum, FBase64::Encode(TokenData)); + }); + //Begin the actual async request for the ticket, which will invoke the above lambda when it completes + SteamSubsystem->GetEncryptedAppTicketInterface()->RequestEncryptedAppTicket(nullptr, 0); +} +---- + +Note that if you are on 4.27 or above, Epic provides a helper method in OnlineIdentityInterface::GetLinkedAccountAuthToken that will get the current account's auth token without having to take a direct dependency on FOnlineSubsystemSteam. Ensure that the token is Base64 encoded when being passed to <>. + +==== + + ''' === Plugin quick-start: Browsing available mods @@ -342,3 +386,89 @@ image::img/get_last_validation_error.png[] ''' +=== Submitting new mods and uploading files + +The plugin includes a way for you to support uploading mods from inside your game or editor. In order to upload a mod, the process is to submit a new mod, which will create the mod for your game; and then submit a file for the mod. + +==== Submitting a new mod + +In order to submit a mod, you have to first create a mod handle using <> and use that handle when calling <> + +.Blueprint Example +[%collapsible] +==== + +image::img/submit_new_mod.png[] + +==== + +.C++ Example +[%collapsible] +==== + +[source] +---- + +void UModioManager::SubmitNewMod() +{ + if (GEngine->GetEngineSubsystem()) + { + FModioModCreationHandle Handle = GEngine->GetEngineSubsystem()->GetModCreationHandle(); + + FModioCreateModParams Params; + Params.Name = TEXT("My Awesome Mod"); + Params.Description = TEXT("This is an amazing mod"); + Params.PathToLogoFile = TEXT("C:\\temp\\image.png"); + + GEngine->GetEngineSubsystem()->SubmitNewModAsync(Handle, Params, FOnSubmitNewModDelegateFast::CreateUObject(this, &UModioManager::OnSubmitNewModCallback)); + } +} + +void UModioManager::OnSubmitNewModCallback(FModioErrorCode ErrorCode, TOptional ModId) +{ + if (ErrorCode == false) + { + // Mod was submitted successfully. Use ModId to submit some files to it. + } +} + +---- + +==== + + +==== Submitting a file for a mod + +Once you have successfully submitted a mod, you can then submit a file for that mod using <>. When you submit a file, you pass a <> containing the directory of the files that you want to submit. The plugin will then compress this folder into a zip file and upload it as the active version of the mod. Note that there is no callback for this method; you'll get notified of the completed upload by the Mod Management callbacks. + +.Blueprint Example +[%collapsible] +==== + +As an example, after the callback for submitting a mod has completed, you can get the Mod Id to use for file submission. + +image::img/submit_new_mod_file.png[] + +==== + +.C++ Example +[%collapsible] +==== + +[source] +---- + +void UModioManager::SubmitNewModFile(FModioModID ModId) +{ + if (GEngine->GetEngineSubsystem()) + { + FModioCreateModFileParams Params; + Params.PathToModRootDirectory = TEXT("C:\\temp\\mod_folder"); + + GEngine->GetEngineSubsystem()->SubmitNewModFileForMod(ModId, Params); + } +} + +---- + +==== \ No newline at end of file diff --git a/Doc/img/nd_img_DisableModManagement.png b/Doc/img/nd_img_DisableModManagement.png index 871ccb5c638144eeb3956990637eb8d058638ff3..312725bef43322d338d7360f34b68f5b8fd5b5a3 100644 GIT binary patch delta 14521 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 delta 14490 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

    Yc@=JM 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 {}iY7Jfu)|>vesG2I^j)22c%v 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 diff --git a/Doc/img/nd_img_ErrorCodeMatches.png b/Doc/img/nd_img_ErrorCodeMatches.png deleted file mode 100644 index 948c7e13976557bbbbdb19a0cf56ea8711334c99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14233 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 diff --git a/Doc/img/nd_img_GetLogoFullSize.png b/Doc/img/nd_img_GetLogoFullSize.png index 58cada6adce8ee55db1ec56fbb9ad6b9e2ab3aa9..4e19f82858a44fef5ab0790b07e23c2d7b3ff156 100644 GIT binary patch delta 5702 zcmV-M7P;xAIHov|BmwQQCG-Vsu| z^JSZmP$NNSI+Z*54v>df^9ptV)a|A(W^%z1LoxCn#$4Z$;y zJdd9|elJd(IgS63<$^= zVEHN&%OBi#`K;X1A zAJr17V&QYIVDq0hW8Wtq;h~>CLd}pgaLgUZKA(-&&2GkjFYXl-#f=BZ4~UNRH! zeYn%e5?qQ*9WFi57cY@7bv+!}f>ZIql~$6+w>*PNpG}Hc{Sf=AEpw*kBEadjM3#94 zs_s2ydDmQMdeh|Nk?sxw^yeEg@Ya1>JoNAU?FZQU_)gs(xP2^b=)pE*LTJ>Wu{OPX z?{2vvla9)Nk#*)A+IMS*aTCU>KdH4+F?+^r)U8t&^A^oRd|W)9pE3>UDe0Io^9AJP z<)NUU08^*^7Uy%$n@zjU_+rlnhyl^fypNtzGX-;Bm@7+hV=R1S0kX2P@Wg~CaC`6D zQ8%qFrcR!!Gu7hPUcvYK^OIi&8c435f;ls+-r|LS$jZ*bFCTsaw~1bq0JfwsfP?=yh>T-La7&k4 z@Uvl~P&>H}Hf-5|2Yz`!cI|#o$I#i>`_W!ZpFa&V=1<4=UE7tsXWt%VpUXk5q!c{= ztLdnJlUfIhSH7&V{q^|<XZ)TpYY8WQ--(eub3DvwS<2?61+W@kO1EP=LVYb^U49#?U;@jnSm*P z?ERCXFC8S`*^*obgSi}W@^LCtQDLFVOrJV`1Mk1PTaPVo|50iEdiO`w#Hx7vowu=J z(>qwdaXqS3se%q|J7AT}wgrU+C@Lz#k~fwhFE`J$#rAmc>X*c`)*W5){(br*DJcoF z=FP&~MRW1!uO_JM(80sdvqw+eHY|8~KISZ#gWo>)8|BebfANQUv**sjyajXd*smUc zHF|@FhPEO7X6oFr3)Zg^zwL3etQxxf3D3lZF)~2ZnZ=eVqvJt2F~uh;ycZ~yo7a5l z=ctE9V$J$B_~F1GVb%QAcGvY#Z7%ZzEu{_aB^uShkZjRF}WM^utO{;E*LYG-J!j(OT4HGJ)mgSaTR?HjL>zuHWeLg;h2A7i%I3> z#E(Xq3UUhJ9w{k7#&V_G8vuF2j;!dHzHI)44-uQx|>O;8-!yKJQ{pk{G+PL{P2~W$mpavd&`VpKsby94^ptj7M zOg|blTo2POP$Q|P>}v@CN0D5N(H?1DKgBOkgmn6A`Fat0Ize5vL$gj%jnXEG%pHRw zrtICt%gwOaM{%xOF2~-Os1*RrsB2NU(>Sxq#a^gYTt5fvwo76 zeT2;8nJV0%egoA_PfJIoN|kW@_;H-eI;Xs}v^2?mN>a-_am?s7sIS5B^aQ9X>bk5_ zz}a(Wv18{BjR#4L>4mR<&MP;us_fT8&08ා$1FPuY-tP`PIP&LM@ah8mUT!3} z$n2MtR2`EZorEs!yWqV&X5UZajL*msqtLE(JG}n;*Rg%4S>|c`$meuc|7rtz_onU)9c0Zv@@nDza7`O(p<%V<_4gm&#TIOlSu$6 zOLeJSd9krF#fwC2iJ*!=Qb+uq%6U#{;>r~ zbY7STK0bi$f8LHB-|c}}Gh}nVdlzny8zEll8OJjCKmi*!zk{ET`8ggK{eaxC)X=uO zbn1$SCXPpTPBzYeoH>IVn%;m34^7aSDnFm!(lSXeFex^uS05wp8t%x*IiI83g|QEe zwRUTw+jqJtf90B$IPmws;h|qVjL|8;L^MMsbxG_I-XyNcypL12)ONb<90uF#4X+s9vqQ z#OPX4nm z4(TkBm!FGMXHKDGyAEjkukG;GJAcsG$=OaxPR5Uah7Lzca*AFAybyR0&U>`r) z_aTOV$lmtQ=ZCO)+a_xtdiVXF+zj!;yR}58PJKa-v?a&q9?c7a|cebp@mq!j`??-!Z(~UQwXZN0H()fB^)i?v^ewAyNY(a@# zy4_<&Q@23mY)Me*tVz^LITARDII@XU%2O_XQc@%v2JKQ_!X^`@JWJ#!K=Fz3-iDaZ z^7IoW-d(99#u?K{uuPlvyVS;ao@lRkeyfM9*Sj{#sUH+z!Dj4$CO=KRFk~ZVWk~WB zt%P4NlytG0*obJxBYFk3;MJt?y>8#be?R*o7B5{akGQ6V@}*{;V}>=%{z$T!*%rBf znvchJ1iMyJYpj^$l%>XEP}Wr_W`uNm#;TW`GPNYx%v8)-NsjJ~mE{qXOw4>d9Xg)O zpW&&Dm1CJna~Xd>&!bzubCGnL+?Ih=uGZdX@q|)Ld<^0eI4ufSmf(O+c~Xp*G99L) z7S)Yzsjsr1t@~2Qa)Z>#+*q9W;1uG27Cn5z`b~&YN*-tW&44Qj<+%HjBRH%E%L3i-0vd~YYVx(_O5n^lT%HYXamoooY zH7AwhiNK^}(3r7JQkf+BygBkKD6rLlNW11d#ULSAB2#LX;DJX7Zb)<{v|=iM>M?w( zLenv%DQ8@1RFq_ino-7qU3qe%&(3esd`T>OHCHx!P$3go{5FZ+AQ7kBe@b4;n{CdZ z&Iu{E9C0IJ<7091qcez?Z|pVh)j&T5+4u4%`lSX(tV@O-rtIf`Q&8(hCch{j19}b62jWNMnd78qCSmXX-R1&zvJ5hH zLV|57F}%QqQAQ+0mWF)E=MSl6Ow(E<{V+l8t1l4F2W`o=;bS{I+5Y>bMc7t7n?fox zru3C|)i!Zr$||RgI-cZ_{C6@J$<+luifA_YdQ_?|50d2(gFe5MrJbLDDj9G}`)(E$ z2e_Q`3#R&fOl0`w<~=X&L;ksZon_Tqku!k^I!%J1Ij4O*>tIO7NYjo7ZCNoxw>%Z| zZe1K9Q2C(FE$ynPKsCm^PLL77amQCZHf}pgM>HJH zA+4*F=cIO)B)`|(VtAym07VLzlXXg7JI1UR9P+J<6Q!za+R)^GZ2pwxc#NP1(I+1& zC=6YXjlU|Z2924JGwr(=Iit+|No9m!<@|Bfn0a){Sh-+k>`NS(Li+FOb{psV=llug zDoAy8fhW_hwRf?;sfIau?fPh1^yzXB%4fRX6327+odqoXadIhjb(2tY{uCXYejog`pb>(b2LR zC7pJH{Z)Nir!JrTSyxOuPS)BX(Zy5m(kZMw$v8n70d2>Bl;y0ANFHum1+M($0n~eJ zB#(o%1AH_j05$Ce9W-sS2jUYDSM(E|BMZax}q64rI?fJI|Z1SQO$K;%gQ0q zi-}TPoibh!jjZZBI}vS==wyTTLuk&v$94*iVErW7KS0;xRRo3cQ(+Wx>Z7IIYC+ciz{7AR9LUO9IedSp@TJhPuNYU9> zHucMqG?ZN8qbVAJYb^p?;-kpC)#6b9FH1fl@FriUl$Toj;D3|!L@ zhywJQ9-fLjSF2Vn{nACwQJYL`W& zo?tWlj^?s;*0qB*|Ni~R$;rXSjT=$FzWg*gEM3Ysibm>Rm=hDDA)AmsAds8J&Y0RhRxH;Qnnoib&L4nE&-GGW35 z3>q{D>(;Hq#EBCza^%P`Yh|n46K>nKO=oCwIZN~PJ@x9g~pis{p*mr>%DgCHd+ zndsl0cisuktW5ki+MGFa@W>;NfWPN|=LPiCQ%@#etjX_v3Ma^*@-kV`#hUV@YtK#LYFJf6S68QTH0SFc|BoBF?h{N*ny z!o72oCQWqatX8cWcJAEiT>yR?mnvUY|EkEFUvg!}H2>K_S+k^*PdUEoM)E*|^s;j0 zpm<+cE{E(tg$S2hz7i)rJzZzZapT5e>eQ)d*s!6_T=(5~pBD!%(^oU`JyVq{%b-R` z8#ZhJ!N+BuKy|YxMG5lfo_h{|_uqfN?o0WWl)ZcRMzC^m(q;88L12^5H)h+JGu$lc z`LfI>$lGQJP$tf%HIw9r{TEEVoaZP&!veK+>sH+#lFa3jcgX}OXH4ETbH911#J7bI zAY67ivt6ykw~;Jgz8rVmbr%K?9*mwndwQn(^y#D93+^F#(To~33jPa!$q8P{xAOK+ zZSh^QiSkY@?mHual*>71PkrYszY{O%LN1UauSL4d6kXyk5iq`5hj;W$TefULN=gdu zzWZ*SN!zq(gYMnCD~|(z-F4R~FpnHLg6!;U+;-b-x*g!GcC`{`&C#Pr+I(#hwnDO-Un1t;6({2REOXL4nnjS~JTBM?Xt5Z17F^IYoXwe7m>b7mzt zb7a;$D|ho1Nc@pq6rdFd;6J-+pt?K@O_EiF`%T_BanH$RolE+8nLR6*q5!R60Hf;P zYy=3<=pOW&jd9d}dIcj81!x5W7*+pfBM=4XHyhum^$JEn0UG_$Tm_>TRln*HaF`@O z2S8G`P>kq{7M-ylNMWs3WL}NVrYQQ2}&;Y4xlBR#wAGJY^e>JhP5%NSFTwJwVKpKgYVW+ zyZN$BNT`vZGjfb`%(m#9Wc7uo{|8+BS~Y`OC}C zLy=s(s;Va;E2_nSTCHj|Oq)0Zl`B`l@^#BlTwH{~{f6L~ zN1n$|9={hS&K$>zb<0(M*XY=W3`K2dQOPtaHP!t2$`) z~P7FslG ziN!Pj7aO;2z$?pMRyP@MP83WmbFv^XcxuqN5o%PgiOql7gxRmmRO07{KgZzy|Au<0 z^-(RMDi%KX3O4_FGxmM*5gz*KBh(B@1IOHf?DN@Z-Rx$6{NmoRxV~W%WS+{z>?Jet z-iJGlEWxG7)Zx+-een|cQrE+gEjSe)TxlhFe9JSa^x34C)eo_++A?QqE&|-}mdG-% zK-ImcEbp2NO>dffJks4Efc|_#2Hv`Fi--Q5zx@DPAK$6l1GkT*4L#U~ObCq{G}fkf z@7*moWYST8IkL{2L;G&+FmA$F^(VDfDrV1^jkwfM^HZiFJtZA8X1;*D zygU>X6kzJK-{O4Ed9!KP8DH$#05KrCnfK9CYNlZB3v*>DZj6PmEI?LP7M_^!1a9wr zJL;y@#nj1Db*5VU+AH{ee}3}IKm*CuQ!rTk zKzed*q$Q^#tya2h_$zsS1>~Bc4y>QF&$wtJC?&p395lTz5Wtoc25|5n2a$2?2yW?e z3w}0i6ly2e!Gd2dq3KX>GP*y#{B8nzH7UZ_w3t)>~lG&m6U?# ze>EL{byDkK@yeGqw!a?#Ur0?#lZ%5Fg^aP}+OLo@d6sX-lKnM0R$l0?f9z90V`Ijc z^-|uBaLgqJ0oJMS>ZEZ#F(I@7Wu1YNrCbM-SB4I#&~3TY@!UW&eqK3%x*gLIBQr4N zkG+3V^reI3J6n?LU@(^>PCia$Dk>~gndwu1XW;#Jck8j`?LR85U+?~?nphQYzww%8sIUj34I*1Drh-oHM#CKZ}!|-n73dq9{bgQ zqegGg(9kxd-%Oo5cES2p;(*0$-n}F4 z1rL{!Yo!G3IpSsHb?X?r85tRB=fueq3UtoYwbM;MGLB}btBea1GpBb%^hnPB8c8)}UrPWuisWL9_DJ*kDSmk(q|;x^*Nf283F@jHnsth5lr~9Z?ids? zW$!LtZidZ1iklrN>)u@hA|c_O4$G49=}?S0sbT8zQ<}7v$!r4`nCa1 zN60*$slpBFH&EU5v~*OeR0+qAAIG_@bIMCgOOxEEB(=;F$BbTs`Wg&RPk^eTuFEO~ zoIQ6IJ9h5Sc#y=HUij*NymAw(%6>i6ywx(98z9y^u!{ce{qDenBY%zsuP(sv3Ge3hi3A!|T6)9ou)BWuCTAo;I6yhy~B2&xD~PSeu50#-m76D#FXiJCZ-RKJ>=Nt;&^1|WaG?#nKQVd=?$3h&;*^S^7HvEEtB*DlVXE<^)ceE;f{=)^EtX*82i9j zYquu4eW#o9SFTx!1AqS;9{R<@82!^R>PvU=kBRm+Y}$aa4~!GN2gRRSK|R@S1aFT` zELF!l1q+`Z`c!79Vhrdz0O!x2N0&}r$P7swV4VaURbwW970LJiZ68uoQZY_uO|CGx zxw*LWj=?I)m}-1k6WO+{+R0eZ@i zY&*B>ghwY$&=>_lMh%W5b4kqQZ~zPDq+2;JHwvoj^i|o~A={tqYN8}7FEGGle!Z?{ zlj?|wvcZ+755M^9P-sob8n4Wc+A<=y0SYr|3n%3xNj#z3|nA;M0TF zEnA~+ufFUgUYh?BR<2orbJ^!`LT1Dc?K+C>jyUki0lm}zKh7KAA_VJ^A zA7Y4q>}?Nyeh8blZL;>Eci->H%@8lVTf6l{r}mxoDZ~r2-<94qfrx&fWBQXUlqgdE_wmezXTS-FOpvcJGNMjjz{LjWclWSGjh{7L?ef z+dXD9bqhq!mIRf~nnbOXBY~5MBb!L2Jmn&PB}KAf&@SaAY%*cWvqXLZ6rULHZHW0S zPd`!O-IY3GoH30A%d}a)OKp7TiS~Nuw|dBWy=$YK`auB}Y{m{~^3&7{LpE|&h9qCn zO85msNf)b$jfiGEqE}E0UQG($>-IhT_p>iz@zTZeh-+FXUuxz#W>~}Qk0hI!ZIP>g z`FLzcuxll?#)?T!S!yf>WnG10Mo713ta`~QQ%jP~OvRj)j#LUOjq2tN? z8J@~mIhL6;m+|-WJi6sO7fH9tZ5deQYVCa%PbkI2#~?0&)1q)?2@dF#C&hRv(_uPl zQQhd4`YQX`x-W$+H%Oh#jm3!%P9aWzKJX84b?9 zG#x{la>kWLMM;*Z8D$*Ul_w|q?EEIpm&CGHb7iv!6*7UvZ7?r{tx4CdC=l zIU(hiBW^@&d@N3WbO!PAjlIUb8tA7W`(FM;zjUI_&^dakx!CZRm8dLxvV6%bi=`mX zRg5{UIg-DkL2(3;b;;1fl>K~v3ToZRUb2bDZ?dB<$V4+g!j-mO-XY zNU%*Mh8MUn%7}!>(vUCt{2{fBXQ%GgT zl)log+9pm+S>?1*$CEsg|4!y2xw^nd5zPi)k4n|$L9#qz(C3%3wDVJcB?C@r-_4@p z0GD%q!Bn4*i44EoyywMz$Um2_v#fe6awZT#r%5n0=d_P!9SrFhY1;9iEh}c|mZxH# z92+)@p=~)$!?z-iD1Ir$YtOao6DUJcf`3fi09aG1>uAmpd5-3nlX9?XO2)Jib}F73 zpTC}7IE{5OZDty9F?YFtwJ5S`M^B<+b=9ORQ&cA_+O+zlSw$mjc^;jGizhGc6tQh< zQI>c!d5s2198+85Y$sBWFcD+otZ*Eu(L21^uLe zwW-Ql^9Dkh?xd;|vVDy}=l(Ge;2zT$qpQT7bD0I@kZwer70tut4Bo}6Fmxj!I$Bnv zq|;8Yzp8KR)a8>u>xyZ|$yz%kx_IhcI)#-d87C+spzWA{vYfRM$-`}{z?GjofO?OO zYKop?Y^zcNTivl!?fonPf zQGj04!&7nRYSpTxU%IGUw{FFa{XbZU0@N3DezeBlHSu>oCr_Tl;>C+mLw*bOb!o(i z5$M{r>(_~0F@NpawRryd=R@@41!!0#+qP|ss`87==FOXv6Qr5ImmM&e2p+kp; z{Jf-h@80@*uFab_UqtJhB?nUE!cCPoyYPD)S@KKO!}7~k=Bx`{`B%Y(C_pa~#B=A) zVb!WtXy3lQC(*HEN9@_N2WQWo#gZjU^d$~|Yu2p6fB^&W?6c2e!GZ-K!1=}#ms+=O zt-qaT{id64Qr#C{d=Vdi{IS+EGc)nvgAXeG;K76F(Zl?T)af&48>y+O=-k=IMO!RH%JCQO)s zL4yWi-MV#{IB_CIjvN_gt!$Nh!fo5O=?qOSXKB8^r(V5!c=gp+F@5^M7-w_jIxTMbuA{C0yQef-~9j;w!$} z#y&`A&N}JjQ%=6?7icKIS<^4EMznTGVicfZ;n}xupZ<>g@ZrPYjm48sKB*F1QVCwZ z35DP|dh{r6z4g{G?ebMuu3YH}a;fLcOOWycXwjmD$MY9BV>^KM>eWksQ~#HLzx+i- zxOZ;Sq>0X))v8s)&Ye5G3&3yVQsv9)Uln=tORmhA=07_qYnF8KDaTjcNFHdAURJIg z6z>bm<&gcS5aDvmSK_3nr|WDvZrnIbojMf_8#dIL>%RN$^Wwl|`f4V=XR2~#8Po`A z!-fqY__)jysBZS8C_(<*bI;*_{`>FOeJS6PvUl&^2v#mmx~%>s2yF8C#%w!thMOfl zUzYg)SC@Q$8o%a$!jNlC%o zci*iuX`41}(7k(i<#FJzyY4y#=8+>uke!{4+itr}w*#Eju2$l#IePSH96NSQZ-|^- z?n${tpue06BY~5$m-6j@QvGx7csXas#47Sz^^4s6kX}{zl;aJOfHUUksmNgVj7Ba* z0U9|jNrb{dDjt34Lh=(73SZ_iWEn0-c#6*>2`JQ|3(Hk7T2Z^AZH*X%e zkL8{9)k-^d?9jIT%R6oJuKnG2-v#~UlZWlwx9i0e-tMJ*yHx*w!tLm6SV@4FCXboq z;_z;OICHX2I{BP6Wh-!{;AFd;e*>5EOsQ_Ai4wD4v z;OLJ!uX=o=1}ho?^C{|JK4v0F^}jOHH>Fk7a8y4UfeJ=IXHNrAdFP@$sF!0P&u&_+ zp#7+NGy+!~0UtOAiV=O$qBHgbDXi6s%&XDa)P*IQe;W}v@Bx#}5u9(bz$M-#mU)o5 r+7Y99Gy>mZ1O`i6oFuub>mvVuZNyEF^3fGX00000NkvXXu0mjf>=RJH diff --git a/Doc/img/nd_img_GetLogoThumbnailSize.png b/Doc/img/nd_img_GetLogoThumbnailSize.png index 40d14e989f141a6c6f0640fdd304e0f7ba3822fe..94b400fa253a62bbb17473032d5a9886d4332841 100644 GIT binary patch delta 1152 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 delta 5415 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 R((V8N002ovPDHLkV1hl?J{AA~ diff --git a/Doc/img/nd_img_IsModManagementBusy.png b/Doc/img/nd_img_IsModManagementBusy.png index da7ea0268c569e724eab527557b2f6ecc2563fb2..ee27ef2c29c8691e7974a46a21a3818ccd44e4cb 100644 GIT binary patch delta 6363 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 D>hpQC literal 0 HcmV?d00001 diff --git a/Doc/img/nd_img_K2_SubmitNewModFileForModFromMemory.png b/Doc/img/nd_img_K2_SubmitNewModFileForModFromMemory.png new file mode 100644 index 0000000000000000000000000000000000000000..bbdf142c61296d9e436d265199826e44add38ce5 GIT binary patch literal 15324 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 aVE-SNg{DZleo(pq000013 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 WI|5mN4h=cnTTzzRkgJoi4EsN*KC6NN diff --git a/Doc/img/nd_img_MakeApiKey.png b/Doc/img/nd_img_MakeApiKey.png index 5e6ad782d1bf537d2fe7685a1c701cd92b2cb0ac..1f1526a5271dc9ce7cca4bcf5807c1771e1af0a0 100644 GIT binary patch delta 8976 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 z zMd^=t``@R1Us0vgVpQY07*)G0MislpD5J5-Q3sv*KE5<%#7v1tyjeVvtV7jl6!oRr zykp5fx-4%@!brzKN7phPeBeIhDe0i3dnuc@Ul1nZrj9o0fF0Y-i{=jy5 zlnyQr@MMgaYNbdBs_$bP>2x}YhEQkONWq%!9bVbpO*3g)($Z3B{pCfliGa-o?0RDR zJxY-Wel8D`D)3;;)TAXem6rTmcKsrHd-v`w8w&WQ1U7hzO4tVfsR`fLjDOO>>46fj z@eZ_`@cGSwdf_hCn)u>1KFcdEVOJGjttxH8M=1C_GD-)h2THZZJ2+hxzG`g2w{6>2 z{jWq;bKl##ES!j)PL>`DdP_zf|1xt=O zY_1^q^03XKKQahTlp+sA9w=K6xF6T#uUsSO5QBZ>mo}rJuWUUXX^T8yJ>UghA128! zOsjKxbHRMUG8+BVCs7`G;3s*&3pnUO(8+&RW2&hMWgK9>sKh9bJR}f#;3s>aA8Wv% drvE}m{}02usreWUNRt2n002ovPDHLkV1l%BmXrVh diff --git a/Doc/img/nd_img_MakeAuthParams.png b/Doc/img/nd_img_MakeAuthParams.png index 20cec3b9e773ca1cad5c7077e00c7865c1d0d779..5487d46da3ade19ac6e8904a1022637c0001755a 100644 GIT binary patch literal 14558 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 HlhFSGnLglx delta 14420 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 diff --git a/Doc/img/nd_img_Pct_Int64Int64.png b/Doc/img/nd_img_Pct_Int64Int64.png index 8eb144520a75666bfe0b8c31a7fca385bab2d4e3..da4f752d8f02a2160e11caf76e0694252eb3d27f 100644 GIT binary patch literal 4471 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 U|20EQ(45cggZ+!_c=^_U0Ir;sp#T5? diff --git a/Doc/img/submit_new_mod.png b/Doc/img/submit_new_mod.png new file mode 100644 index 0000000000000000000000000000000000000000..49879184a20b7ba271e7f22158f809510d2d522c GIT binary patch literal 94638 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�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 literal 0 HcmV?d00001 diff --git a/Doc/img/submit_new_mod_file.png b/Doc/img/submit_new_mod_file.png new file mode 100644 index 0000000000000000000000000000000000000000..041117f51fda2bb2dfc8e054a807eba2c54a4f48 GIT binary patch literal 95951 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 literal 0 HcmV?d00001 diff --git a/Modio.uplugin b/Modio.uplugin index 8722f99b..965672fb 100644 --- a/Modio.uplugin +++ b/Modio.uplugin @@ -10,7 +10,7 @@ "DocsURL": "", "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/1ab22ed2961a4cc19b9151bd072df998", "SupportURL": "http://discord.mod.io", - "EngineVersion": "4.25.0", + "EngineVersion": "4.26.0", "CanContainContent": true, "IsBetaVersion": true, "Installed": true, @@ -18,12 +18,48 @@ { "Name": "Modio", "Type": "Runtime", - "LoadingPhase": "Default" + "LoadingPhase": "Default", + "WhitelistPlatforms": [ + "Win64", + "Mac", + "Linux" + ] + }, + { + "Name": "ModioEx", + "Type": "Runtime", + "LoadingPhase": "Default", + "WhitelistPlatforms": [ + "Win64", + "Mac", + "Linux" + ] }, { "Name": "ModioTests", "Type": "Editor", - "LoadingPhase": "Default" + "LoadingPhase": "Default", + "WhitelistPlatforms": [ + "Win64", + "Mac", + "Linux" + ] + }, + { + "Name": "uring", + "Type": "Runtime", + "LoadingPhase": "Default", + "WhitelistPlatforms": [ + "Linux" + ] + }, + { + "Name": "mbedtls", + "Type": "Runtime", + "LoadingPhase": "Default", + "WhitelistPlatforms": [ + "Linux" + ] } ] } \ No newline at end of file diff --git a/README.adoc b/README.adoc index c38a6660..2f778064 100644 --- a/README.adoc +++ b/README.adoc @@ -5,9 +5,9 @@ image:https://img.shields.io/badge/license-MIT-brightgreen.svg[alt="License", link="https://github.com/modio/modio-sdk/blob/master/LICENSE"] image:https://img.shields.io/discord/389039439487434752.svg?label=Discord&logo=discord&color=7289DA&labelColor=2C2F33[alt="Discord", link="https://discord.mod.io"] -image:https://img.shields.io/badge/Unreal-4.25%2B-dea309[alt="Unreal", link="https://www.unrealengine.com"] +image:https://img.shields.io/badge/Unreal-4.26%2B-dea309[alt="Unreal", link="https://www.unrealengine.com"] -Welcome to the mod.io UE4 plugin public repository. It allows game developers to host and automatically install user-created mods in their games which use UE 4.25 or newer. It provides a C++ and Blueprint interface around the mod.io SDK, which connects to the https://docs.mod.io[mod.io REST API]. We have a https://test.mod.io[test environment] available, and developers can create a game profile there to evaluate the plugin with. +Welcome to the mod.io UE4 plugin public repository. It allows game developers to host and automatically install user-created mods in their games which use UE 4.26 or newer. It provides a C++ and Blueprint interface around the mod.io SDK, which connects to the https://docs.mod.io[mod.io REST API]. We have a https://test.mod.io[test environment] available, and developers can create a game profile there to evaluate the plugin with. ++++ @@ -30,8 +30,8 @@ Welcome to the mod.io UE4 plugin public repository. It allows game developers to . Add this repository as a submodule to your repository in your project's `Plugins/Modio` directory + -In the directory with your .uproject file: `git add submodule https://github.com/modio/modio-ue4 Plugins/Modio` -. Initialize our submodules with `git submodule update --init --recursive`. +In the directory with your .uproject file: `git submodule add https://github.com/modio/modio-ue4 Plugins/Modio` +. Initialize our submodules with `git submodule update --init --recursive` ==== In a non-git project, or without submodules diff --git a/Source/Modio/GeneratedHeader/Private/ModioGeneratedVariables.h b/Source/Modio/GeneratedHeader/Private/ModioGeneratedVariables.h deleted file mode 100644 index e69de29b..00000000 diff --git a/Source/Modio/GeneratedHeader/Public/ModioErrorCondition.h b/Source/Modio/GeneratedHeader/Public/ModioErrorCondition.h deleted file mode 100644 index ec3b83a6..00000000 --- a/Source/Modio/GeneratedHeader/Public/ModioErrorCondition.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#pragma once - -#include "ModioErrorCondition.generated.h" - -UENUM(BlueprintType) -enum class EModioErrorCondition: uint8 -{ - NoError = 0, - NetworkError = 2 UMETA(ToolTip="When this condition is true, the error code represents a connection or HTTP error between the client and the mod.io server.") , - ConfigurationError = 3 UMETA(ToolTip="When this condition is true, the error code indicates the SDK's configuration is not valid - the game ID or API key are incorrect or the game has been deleted.") , - InvalidArgsError = 4 UMETA(ToolTip="When this condition is true, the error code indicates the arguments passed to the function have failed validation or were otherwise invalid.") , - FilesystemError = 5 UMETA(ToolTip="When this condition is true, the error code indicates a permission or IO error when accessing local filesystem data.") , - InternalError = 6 UMETA(ToolTip="When this condition is true, the error code represents an internal SDK error - please inform mod.io of the error code value.") , - EntityNotFoundError = 12 UMETA(ToolTip="When this condition is true, the error code indicates that a specified game, mod, media file or mod file was not found.") , - UserTermsOfUseError = 13 UMETA(ToolTip="When this condition is true, the error code indicates that the user has not yet accepted the mod.io Terms of Use.") , - SubmitReportError = 14 UMETA(ToolTip="When this condition is true, the error code indicates that a report for the specified content could not be submitted.") , -}; diff --git a/Source/Modio/GeneratedSource/ArchiveFileImplementation.cpp b/Source/Modio/GeneratedSource/ArchiveFileImplementation.cpp deleted file mode 100644 index 08f4e74d..00000000 --- a/Source/Modio/GeneratedSource/ArchiveFileImplementation.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/detail/compression/zip/ArchiveFileImplementation.h" -#endif - -namespace Modio -{ - namespace Detail - { - void ArchiveFileImplementation::AddEntry(ArchiveEntry Entry) - { - ArchiveEntries.push_back(Entry); - } - - void ArchiveFileImplementation::AddEntry(std::string FileName, std::uintmax_t FileOffset, - std::uintmax_t CompressedSize, std::uintmax_t UncompressedSize, - CompressionMethod Compression, std::uint32_t CRCValue, bool bIsDirectory) - { - ArchiveEntries.push_back( - ArchiveEntry {Compression, FileName, FileOffset, CompressedSize, UncompressedSize, CRCValue, bIsDirectory}); - } - - std::uintmax_t ArchiveFileImplementation::GetNumberOfEntries() - { - return ArchiveEntries.size(); - } - - std::vector::iterator ArchiveFileImplementation::begin() - { - return ArchiveEntries.begin(); - } - - std::vector::iterator ArchiveFileImplementation::end() - { - return ArchiveEntries.end(); - } - - } // namespace Detail -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/HttpSharedState.cpp b/Source/Modio/GeneratedSource/HttpSharedState.cpp deleted file mode 100644 index d92f3cf8..00000000 --- a/Source/Modio/GeneratedSource/HttpSharedState.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION -#include "common/HttpSharedState.h" -#endif - - - HttpSharedStateBase::HttpSharedStateBase(HINTERNET SessionHandle) : CurrentSession(SessionHandle) {} - -void HttpSharedStateBase::InitializeRequest(std::shared_ptr Request, Modio::ErrorCode& ec) -{ - Modio::Detail::Logger().Log(Modio::LogLevel::Info, Modio::LogCategory::Http, "Initializing {0} request for {1} {2}", Request->GetParameters().GetVerb(), - Request->GetParameters().GetServerAddress(), Request->GetParameters().GetFormattedResourcePath()); - //"https://api.test.mod.io" - // WinHttpConnect always blocks so no need to spin this off as an async operation - auto ConnectionHandle = - WinHttpConnect(CurrentSession, UTF8ToWideChar(Request->GetParameters().GetServerAddress()).c_str(), - INTERNET_DEFAULT_HTTPS_PORT, 0); - if (ConnectionHandle == nullptr) - { - auto ConnectionStatus = GetLastError(); - if (ConnectionStatus == ERROR_WINHTTP_OPERATION_CANCELLED || ConnectionStatus == ERROR_WINHTTP_SHUTDOWN) - { - ec = Modio::make_error_code(Modio::GenericError::OperationCanceled); - return; - } - else - { - ec = Modio::make_error_code(Modio::HttpError::CannotOpenConnection); - return; - } - } - - // TODO: @ModioGDK specify accept types properly - // constexpr auto AcceptJsonType = L"application/json"; - auto RequestHandle = - WinHttpOpenRequest(ConnectionHandle, UTF8ToWideChar(Request->GetParameters().GetVerb()).c_str(), - UTF8ToWideChar(Request->GetParameters().GetFormattedResourcePath()).c_str(), nullptr, - WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); - - bool Success = WinHttpSetOption(RequestHandle, WINHTTP_OPTION_CONTEXT_VALUE, this, sizeof(uintptr_t)); - if (RequestHandle == nullptr) - { - ec = Modio::make_error_code(Modio::HttpError::CannotOpenConnection); - return; - } - else - { - ConnectionHandles[RequestHandle] = ConnectionHandle; - CallbackStatus[RequestHandle] = WinHTTPCallbackStatus::Waiting; - Request->ConnectionHandle = ConnectionHandle; - Request->RequestHandle = RequestHandle; - ec = {}; - return; - } -} - -void HttpSharedStateBase::SetHandleStatus(HINTERNET Handle, WinHTTPCallbackStatus Status, void* ExtendedStatusData, - unsigned long ExtendedStatusLength) -{ - ExtendedStatus[Handle] = std::make_pair((std::uintptr_t) ExtendedStatusData, ExtendedStatusLength); - CallbackStatus[Handle].exchange(Status); -} - -WinHTTPCallbackStatus HttpSharedStateBase::PeekHandleStatus(HINTERNET Handle) -{ - return CallbackStatus[Handle].load(); -} - -WinHTTPCallbackStatus HttpSharedStateBase::FetchAndClearHandleStatus(HINTERNET Handle) -{ - return CallbackStatus[Handle].exchange(WinHTTPCallbackStatus::Waiting); -} - -std::pair HttpSharedStateBase::GetExtendedStatus(HINTERNET Handle) -{ - auto StatusValues = ExtendedStatus[Handle]; - ExtendedStatus[Handle] = std::make_pair(0, 0); - return StatusValues; -} - -bool HttpSharedStateBase::IsClosing() -{ - return CurrentServiceState == HttpServiceState::Closing; -} - -void HttpSharedStateBase::Close() - { - CurrentServiceState = HttpServiceState::Closing; - } diff --git a/Source/Modio/GeneratedSource/ModioBuffer.cpp b/Source/Modio/GeneratedSource/ModioBuffer.cpp deleted file mode 100644 index 87c298fb..00000000 --- a/Source/Modio/GeneratedSource/ModioBuffer.cpp +++ /dev/null @@ -1,434 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/ModioBuffer.h" -#endif - -#include - -namespace Modio -{ - namespace Detail - { - std::size_t Buffer::GetAlignment() const - { - return Alignment; - } - - Buffer::Buffer(std::size_t Size, std::size_t Alignment /*= 1*/) : Alignment(Alignment), Size(Size) - { - // find how many 4k blocks we need to allocate - auto NumBlocks = ((Size / (4 * 1024)) + 1); - // Add worst case amount of alignment bytes - auto HeaderSize = Alignment - 1; - // Calculate size big enough to include the desired size (padded to 4k boundaries) + the worst-case - // amount of alignment bytes - auto TotalSize = NumBlocks * (4 * 1024) + HeaderSize; - - InternalData = std::make_unique(TotalSize); - std::fill_n(InternalData.get(), TotalSize, (unsigned char) 0); - // Perform the alignment calculation to know where we should consider the start of the data buffer - void* RawBufferPtr = InternalData.get(); - std::align(Alignment, Size, RawBufferPtr, TotalSize); - // store the offset required to align reads or writes to the 4k boundary - AlignmentOffset = (unsigned char*) RawBufferPtr - InternalData.get(); - } - - Buffer::~Buffer() - { - InternalData.reset(); - } - - Buffer Buffer::CopyRange(std::size_t BeginIndex, std::size_t EndIndex) - { - Buffer RangedCopy = Buffer(EndIndex - BeginIndex, Alignment); - std::copy(begin() + BeginIndex, begin() + EndIndex, RangedCopy.begin()); - return RangedCopy; - } - - Buffer Buffer::CopyRange(const_iterator Start, const_iterator End) - { - Buffer RangedCopy = Buffer(End - Start, Alignment); - std::copy(Start, End, RangedCopy.begin()); - return RangedCopy; - } - - Buffer Buffer::Clone() const - { - Buffer MyClone = Buffer(Size, Alignment); - std::copy(begin(), end(), MyClone.begin()); - return MyClone; - } - - unsigned char* const Buffer::Data() const - { - return InternalData.get() + AlignmentOffset; - } - - unsigned char* const Buffer::begin() const - { - return InternalData.get() + AlignmentOffset; - } - - unsigned char* const Buffer::end() const - { - return InternalData.get() + AlignmentOffset + Size; - } - - unsigned char& Buffer::operator[](size_t Index) const - { - return InternalData[Index + AlignmentOffset]; - } - - std::size_t Buffer::GetSize() const - { - return Size; - } - - Buffer& Buffer::operator=(Buffer&& Source) noexcept - { - if (this != &Source) - { - InternalData = std::move(Source.InternalData); - Size = std::move(Source.Size); - Alignment = std::move(Source.Alignment); - AlignmentOffset = std::move(Source.AlignmentOffset); - } - return *this; - } - - std::vector::const_iterator DynamicBuffer::end() const - { - return InternalBuffers->end(); - } - - std::vector::iterator DynamicBuffer::end() - { - return InternalBuffers->end(); - } - - DynamicBuffer::DynamicBuffer(const DynamicBuffer& Other) - : InternalBuffers(Other.InternalBuffers), - Alignment(Other.Alignment), - BufferLock(Other.BufferLock) - {} - - DynamicBuffer::DynamicBuffer(std::size_t Alignment /*= 1*/) - : InternalBuffers(std::make_shared>()), - Alignment(Alignment), - BufferLock(std::make_shared()) - {} - - Modio::Detail::DynamicBuffer DynamicBuffer::Clone() const - { - DynamicBuffer NewBuffer(Alignment); - for (const Modio::Detail::Buffer& OriginalBuffer : *InternalBuffers) - { - // Make a copy of the buffer in other array - NewBuffer.AppendBuffer(OriginalBuffer.Clone()); - } - - return std::move(NewBuffer); - } - - void DynamicBuffer::CopyBufferConfiguration(const DynamicBuffer& Other) - { -// @todo: When modio/ModioSDK.h is included after Windows.h when WINDOWS_LEAN_AND_MEAN is defined, we -// need to do this for packaged mode. There must be a nicer way to do it -#undef min - - Alignment = Other.Alignment; - // Reconfigure overlapping buffers - for (int Idx = 0; Idx < InternalBuffers->size() && Idx < Other.InternalBuffers->size(); ++Idx) - { - Modio::Detail::Buffer& MyBuffer = InternalBuffers->at(Idx); - const Modio::Detail::Buffer& OtherBuffer = Other.InternalBuffers->at(Idx); - if (MyBuffer.GetSize() != OtherBuffer.GetSize() || - MyBuffer.GetAlignment() != OtherBuffer.GetAlignment()) - { - InternalBuffers->at(Idx) = Modio::Detail::Buffer(OtherBuffer.GetSize(), OtherBuffer.GetAlignment()); - } - } - - // If we have more buffers than the other buffer, then reduce our size to others size - while (InternalBuffers->size() > Other.InternalBuffers->size()) - { - InternalBuffers->pop_back(); - } - // The other has more buffers, create new buffers from that one - if (InternalBuffers->size() < Other.InternalBuffers->size()) - { - // Reserve memory upfront to minimize memory allocations - InternalBuffers->reserve(Other.size()); - for (std::size_t Idx = std::min(InternalBuffers->size(), Other.InternalBuffers->size()); - Idx < Other.InternalBuffers->size(); ++Idx) - { - const Modio::Detail::Buffer& OtherBuffer = Other.InternalBuffers->at(Idx); - InternalBuffers->push_back( - Modio::Detail::Buffer(OtherBuffer.GetSize(), OtherBuffer.GetAlignment())); - } - } - } - - std::unique_lock DynamicBuffer::Lock() - { - return std::move(std::unique_lock(*BufferLock)); - } - - void DynamicBuffer::Clear() - { - InternalBuffers->clear(); - } - - std::size_t DynamicBuffer::size() const - { - std::size_t CumulativeSize = 0; - - for (Modio::Detail::Buffer& CurrentBuffer : *InternalBuffers) - { - if (CurrentBuffer.Data() == nullptr) - { - throw; - } - CumulativeSize += CurrentBuffer.GetSize(); - } - return CumulativeSize; - } - - std::size_t DynamicBuffer::max_size() const - { - // @todo: When modio/ModioSDK.h is included after Windows.h when WINDOWS_LEAN_AND_MEAN is defined, - // we need to do this for packaged mode. There must be a nicer way to do it - -#undef max - - return std::numeric_limits::max(); - } - - std::size_t DynamicBuffer::capacity() const - { - return size(); - } - - Modio::Detail::DynamicBuffer::mutable_buffers_type DynamicBuffer::data() - { - return DynamicBufferSequence(InternalBuffers); - } - - Modio::Detail::DynamicBuffer::const_buffers_type DynamicBuffer::data() const - { - return DynamicBufferSequence(InternalBuffers); - } - - Modio::Detail::DynamicBuffer::mutable_buffers_type DynamicBuffer::data(std::size_t pos, std::size_t n) - { - return DynamicBufferSequence(InternalBuffers, pos, n); - } - - Modio::Detail::DynamicBuffer::const_buffers_type DynamicBuffer::data(std::size_t pos, std::size_t n) const - { - return DynamicBufferSequence(InternalBuffers, pos, n); - } - - void DynamicBuffer::grow(std::size_t n) - { - InternalBuffers->push_back(Modio::Detail::Buffer(n, Alignment)); - } - - void DynamicBuffer::shrink(std::size_t n) - { - if (InternalBuffers->size() == 0) - { - return; - } - // if n is bigger than the last buffer, erase the last buffer and continue to iterate backwards erasing - // until n is less than the current tail buffer size or there are no buffers left - if (n >= InternalBuffers->back().GetSize()) - { - do - { - n -= InternalBuffers->back().GetSize(); - InternalBuffers->pop_back(); - if (InternalBuffers->size() == 0) - { - return; - } - - } while (n >= InternalBuffers->back().GetSize()); - } - - if (n > 0) - { - // Create a new buffer that is a copy of the unerased bytes of the tail buffer and swap that in - Modio::Detail::Buffer& OldTailBuffer = InternalBuffers->back(); - Modio::Detail::Buffer NewTailBuffer = - OldTailBuffer.CopyRange(OldTailBuffer.begin(), OldTailBuffer.begin() + OldTailBuffer.GetSize() - n); - std::swap(InternalBuffers->back(), NewTailBuffer); - } - } - - void DynamicBuffer::consume(std::size_t n) - { - if (InternalBuffers->size() == 0) - { - return; - } - if (n >= InternalBuffers->front().GetSize()) - { - do - { - n -= InternalBuffers->front().GetSize(); - InternalBuffers->erase(InternalBuffers->begin()); - if (InternalBuffers->size() == 0) - { - return; - } - } while (n >= InternalBuffers->front().GetSize()); - } - if (n > 0) - { - Modio::Detail::Buffer& OldHeadBuffer = InternalBuffers->front(); - Modio::Detail::Buffer NewHeadBuffer = - OldHeadBuffer.CopyRange(OldHeadBuffer.begin() + n, OldHeadBuffer.end()); - std::swap(InternalBuffers->front(), NewHeadBuffer); - } - } - - Modio::Optional DynamicBuffer::TakeInternalBuffer() - { - if (InternalBuffers->size() == 0) - { - return {}; - } - Modio::Detail::Buffer HeadBuffer = std::move(InternalBuffers->front()); - InternalBuffers->erase(InternalBuffers->begin()); - return HeadBuffer; - } - - void DynamicBuffer::AppendBuffer(Modio::Detail::Buffer NewBuffer) - { - if (NewBuffer.GetAlignment() == Alignment) - { - InternalBuffers->push_back(std::move(NewBuffer)); - } - else - { - Modio::Detail::Buffer AlignedCopy(NewBuffer.GetSize(), Alignment); - std::copy(NewBuffer.begin(), NewBuffer.end(), AlignedCopy.begin()); - InternalBuffers->push_back(std::move(AlignedCopy)); - } - } - - std::vector::const_iterator DynamicBuffer::begin() const - { - return InternalBuffers->begin(); - } - - std::vector::iterator DynamicBuffer::begin() - { - return InternalBuffers->begin(); - } - - bool DynamicBuffer::Equals(const Modio::Detail::DynamicBuffer& Other) const - { - // Does the buffers contain different amount of buffers - if (InternalBuffers->size() != Other.InternalBuffers->size()) - { - return false; - } - - // Are all the internal buffers of the same size - for (std::size_t Idx = 0; Idx < InternalBuffers->size(); ++Idx) - { - if ((*InternalBuffers)[Idx].GetSize() != (*Other.InternalBuffers)[Idx].GetSize()) - { - return false; - } - } - - // Is the content of all the internal buffers the same - for (std::size_t Idx = 0; Idx < InternalBuffers->size(); ++Idx) - { - if (std::memcmp((*InternalBuffers)[Idx].Data(), (*Other.InternalBuffers)[Idx].Data(), - (*InternalBuffers)[Idx].GetSize()) != 0) - { - return false; - } - } - - return true; - } - - DynamicBuffer::DynamicBufferSequence::DynamicBufferSequence( - std::shared_ptr> BuffersToView) - { - for (Modio::Detail::Buffer& CurrentBuffer : *BuffersToView) - { - BufferViews.push_back(Modio::MutableBufferView(CurrentBuffer.Data(), CurrentBuffer.GetSize())); - } - } - - DynamicBuffer::DynamicBufferSequence::DynamicBufferSequence( - std::shared_ptr> BuffersToView, std::size_t ByteOffset, - std::size_t NumberOfBytes) - { - bool FirstBufferLocated = false; - - for (Modio::Detail::Buffer& CurrentBuffer : *BuffersToView) - { - if (!FirstBufferLocated && (ByteOffset < CurrentBuffer.GetSize())) - { - // Construct the first buffer view, containing the last n bytes of the current buffer from - // the collection we're viewing - FirstBufferLocated = true; - std::size_t BytesInFirstBuffer = CurrentBuffer.GetSize() - ByteOffset; - BufferViews.push_back( - Modio::MutableBufferView(CurrentBuffer.Data() + ByteOffset, BytesInFirstBuffer)); - NumberOfBytes -= BytesInFirstBuffer; - } - else - { - if (NumberOfBytes < CurrentBuffer.GetSize()) - { - // Construct the last buffer view, containing the first n bytes of the current buffer - // from the collection we're viewing - BufferViews.push_back(Modio::MutableBufferView(CurrentBuffer.Data(), NumberOfBytes)); - NumberOfBytes = 0; - } - else - { - // Construct another buffer view, consisting of the entire buffer from the collection - // we're viewing - BufferViews.push_back(Modio::MutableBufferView(CurrentBuffer.Data(), CurrentBuffer.GetSize())); - NumberOfBytes -= CurrentBuffer.GetSize(); - } - } - // If we run out of bytes to represent in our view before we're done iterating through all the - // buffers in the collection we're viewing, bail early - if (NumberOfBytes == 0) - { - return; - } - } - } - - std::vector::const_iterator DynamicBuffer::DynamicBufferSequence::begin() const - { - return BufferViews.begin(); - } - - const std::vector::const_iterator DynamicBuffer::DynamicBufferSequence::end() const - { - return BufferViews.end(); - } - - } // namespace Detail -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioCacheService.cpp b/Source/Modio/GeneratedSource/ModioCacheService.cpp deleted file mode 100644 index aa506a61..00000000 --- a/Source/Modio/GeneratedSource/ModioCacheService.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/cache/ModioCacheService.h" -#endif - -#include "modio/core/ModioLogger.h" -#include "modio/core/ModioLogEnum.h" -#include "modio/core/ModioBuffer.h" - -namespace Modio -{ - namespace Detail - { - CacheService::CacheService(asio::io_context& IOService) - : asio::detail::service_base(IOService) - { - CacheInstance = std::make_shared(); - } - - void CacheService::Shutdown() - { - // Cancel all timers - for(auto& CacheEntry : CacheInstance->CacheEntries) - { - CacheEntry.second.Timer->cancel(); - } - ClearCache(); - } - - void CacheService::construct(implementation_type& Implementation) {} - - void CacheService::destroy(implementation_type& Implementation) {} - - void CacheService::SetCacheExpireTime(std::chrono::steady_clock::duration ExpireTime) - { - CacheExpiryTime = ExpireTime; - } - - void CacheService::AddToCache(std::string ResourceURL, Modio::Detail::DynamicBuffer ResponseData) - { - auto Hasher = std::hash(); - std::uint32_t URLHash = (std::uint32_t) Hasher(ResourceURL); - - // Don't add the instance again as if the instance is already in there, then we will destroy the old timer and it will expire causing unnecessary removals - if(CacheInstance->CacheEntries.find(URLHash) == std::end(CacheInstance->CacheEntries)) - { - // @todo-optimize This will fragment the heap quite much, rewrite using another container so we don't need to allocate so many objects on the heap - std::unique_ptr CacheExpiryTimer = std::make_unique(get_io_context()); - CacheExpiryTimer->expires_after(CacheExpiryTime); - - Modio::Detail::Logger().Log(LogLevel::Info, LogCategory::Http, "Adding hash {} to cache", URLHash); - - auto DeleteCacheEntry = [WeakCacheReference = std::weak_ptr(CacheInstance), URLHash](std::error_code) { - std::shared_ptr CacheReference = WeakCacheReference.lock(); - Modio::Detail::Logger().Log(LogLevel::Info, LogCategory::Http, "Removing hash {} from cache", URLHash); - if (CacheReference) - { - CacheReference->CacheEntries.erase(URLHash); - } - }; - - CacheExpiryTimer->async_wait(DeleteCacheEntry); - - CacheEntry Entry = { std::move(CacheExpiryTimer), std::move(ResponseData) }; - CacheInstance->CacheEntries.emplace(URLHash, std::move(Entry) ); - } - } - - Modio::Optional CacheService::FetchFromCache(std::string ResourceURL) const - { - auto Hasher = std::hash(); - std::uint32_t URLHash = (std::uint32_t) Hasher(ResourceURL); - - auto CacheEntryIterator = CacheInstance->CacheEntries.find(URLHash); - if (CacheEntryIterator != CacheInstance->CacheEntries.end()) - { - return (CacheEntryIterator)->second.Data; - } - else - { - return {}; - } - } - - void CacheService::ClearCache() - { - CacheInstance.reset(new Cache()); - } - } // namespace Detail -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioCompressionService.cpp b/Source/Modio/GeneratedSource/ModioCompressionService.cpp deleted file mode 100644 index 5096c944..00000000 --- a/Source/Modio/GeneratedSource/ModioCompressionService.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION -#include "modio/compression/ModioCompressionService.h" -#endif - - -void Modio::Detail::CompressionService::construct(implementation_type& Implementation) -{ - PlatformImplementation->InitializeIOObjectImplementation(Implementation); -} - -void Modio::Detail::CompressionService::move_construct(implementation_type& Implementation, implementation_type& Other) -{ - PlatformImplementation->MoveIOObjectImplementation(Implementation, Other); -} - -void Modio::Detail::CompressionService::move_assign(implementation_type& Implementation, - Modio::Detail::CompressionService& OtherService, - implementation_type& Other) -{ - // No difference between this and move_construct for us because our application will only have a single - // io_context and a single HttpService instance - PlatformImplementation->MoveIOObjectImplementation(Implementation, Other); -} - -void Modio::Detail::CompressionService::converting_move_construct(implementation_type& impl, - Modio::Detail::CompressionService&, - implementation_type& other_impl) -{ - move_construct(impl, other_impl); -} - -void Modio::Detail::CompressionService::converting_move_assign(implementation_type& impl, - Modio::Detail::CompressionService& other_service, - implementation_type& other_impl) -{ - move_assign(impl, other_service, other_impl); -} diff --git a/Source/Modio/GeneratedSource/ModioFileMetadata.cpp b/Source/Modio/GeneratedSource/ModioFileMetadata.cpp deleted file mode 100644 index 871b25b1..00000000 --- a/Source/Modio/GeneratedSource/ModioFileMetadata.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/entities/ModioFileMetadata.h" -#else - #pragma once -#endif - -#include "modio/detail/ModioJsonHelpers.h" -#include "nlohmann/json.hpp" - -namespace Modio -{ - NLOHMANN_JSON_SERIALIZE_ENUM(FileMetadata::VirusScanStatus, {{FileMetadata::VirusScanStatus::NotScanned, 0}, - {FileMetadata::VirusScanStatus::ScanComplete, 1}, - {FileMetadata::VirusScanStatus::InProgress, 2}, - {FileMetadata::VirusScanStatus::TooLargeToScan, 3}, - {FileMetadata::VirusScanStatus::FileNotFound, 4}, - {FileMetadata::VirusScanStatus::ErrorScanning, 5}}) - - NLOHMANN_JSON_SERIALIZE_ENUM(FileMetadata::VirusStatus, - {{FileMetadata::VirusStatus::NoThreat, 0}, {FileMetadata::VirusStatus::Malicious, 1}}) - - void from_json(const nlohmann::json& Json, Modio::FileMetadata& FileMetadata) - { - std::string debug = Json.dump(); - Detail::ParseSafe(Json, FileMetadata.MetadataId, "id"); - Detail::ParseSafe(Json, FileMetadata.ModId, "mod_id"); - Detail::ParseSafe(Json, FileMetadata.DateAdded, "date_added"); - Detail::ParseSafe(Json, FileMetadata.CurrentVirusScanStatus, "virus_status"); - Detail::ParseSafe(Json, FileMetadata.CurrentVirusStatus, "virus_positive"); - Detail::ParseSafe(Json, FileMetadata.Filesize, "filesize"); - Detail::ParseSafe(Json, FileMetadata.Filename, "filename"); - Detail::ParseSafe(Json, FileMetadata.Version, "version"); - Detail::ParseSafe(Json, FileMetadata.Changelog, "changelog"); - Detail::ParseSafe(Json, FileMetadata.MetadataBlob, "metadata_blob"); - Detail::ParseSubobjectSafe(Json, FileMetadata.DownloadBinaryURL, "download", "binary_url"); - Detail::ParseSubobjectSafe(Json, FileMetadata.DownloadExpiryDate, "download", "date_expires"); - } - - void to_json(nlohmann::json& Json, const Modio::FileMetadata& FileMetadata) - { - Json = {{"id", FileMetadata.MetadataId}, - {"mod_id", FileMetadata.ModId}, - {"date_added", FileMetadata.DateAdded}, - {"virus_status", FileMetadata.CurrentVirusScanStatus}, - {"virus_positive", FileMetadata.CurrentVirusStatus}, - {"filesize", FileMetadata.Filesize}, - {"filename", FileMetadata.Filename}, - {"version", FileMetadata.Version}, - {"changelog", FileMetadata.Changelog}, - {"metadata_blob", FileMetadata.MetadataBlob}, - {"download", nlohmann::json::object({{"binary_url", FileMetadata.DownloadBinaryURL}, - {"date_expires", FileMetadata.DownloadExpiryDate}})}}; - } -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioFilterParams.cpp b/Source/Modio/GeneratedSource/ModioFilterParams.cpp deleted file mode 100644 index 245cd93c..00000000 --- a/Source/Modio/GeneratedSource/ModioFilterParams.cpp +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/ModioFilterParams.h" -#endif - -#include "modio/detail/FmtWrapper.h" -#include "modio/detail/ModioFormatters.h" - -namespace Modio -{ - Modio::FilterParams& FilterParams::SortBy(SortFieldType ByField, SortDirection ByDirection) - { - SortField = ByField; - Direction = ByDirection; - return *this; - } - - Modio::FilterParams& FilterParams::NameContains(const std::vector& SearchString) - { - // @todo: NameContains overloads behave differently. Take single arguments won't append empty values but this - // version will same seem to be correct of different functions - if (SearchString.size()) - { - SearchKeywords.clear(); - SearchKeywords.insert(SearchKeywords.end(), SearchString.begin(), SearchString.end()); - } - return *this; - } - - Modio::FilterParams& FilterParams::NameContains(std::string SearchString) - { - if (SearchString.size()) - { - SearchKeywords.clear(); - SearchKeywords.push_back(SearchString); - } - return *this; - } - - Modio::FilterParams& FilterParams::MatchingIDs(const std::vector& IDSet) - { - IncludedIDs = IDSet; - return *this; - } - - Modio::FilterParams& FilterParams::ExcludingIDs(const std::vector& IDSet) - { - ExcludedIDs = IDSet; - return *this; - } - - Modio::FilterParams& FilterParams::MarkedLiveAfter(std::chrono::system_clock::time_point LiveAfter) - { - DateRangeBegin = LiveAfter; - return *this; - } - - Modio::FilterParams& FilterParams::MarkedLiveBefore(std::chrono::system_clock::time_point LiveBefore) - { - DateRangeEnd = LiveBefore; - return *this; - } - - Modio::FilterParams& FilterParams::WithTags(std::vector NewTags) - { - Tags = std::move(NewTags); - return *this; - } - - Modio::FilterParams& FilterParams::WithTags(std::string Tag) - { - Tags.clear(); - Tags.push_back(Tag); - return *this; - } - - Modio::FilterParams& FilterParams::WithoutTags(std::vector NewTags) - { - ExcludedTags = std::move(NewTags); - return *this; - } - - Modio::FilterParams& FilterParams::WithoutTags(std::string Tag) - { - ExcludedTags.clear(); - ExcludedTags.push_back(Tag); - return *this; - } - - Modio::FilterParams& Modio::FilterParams::MetadataLike(std::string SearchString) - { - MetadataBlobSearchString = SearchString; - return *this; - } - - Modio::FilterParams& FilterParams::IndexedResults(std::size_t StartIndex, std::size_t ResultCount) - { - IsPaged = false; - Index = std::max(std::size_t(0), StartIndex); - Count = std::max(std::size_t(0), ResultCount); - return *this; - } - - Modio::FilterParams& FilterParams::PagedResults(std::size_t PageNumber, std::size_t PageSize) - { - IsPaged = true; - Index = std::max(std::size_t(0), PageNumber); - Count = std::max(std::size_t(0), PageSize); - return *this; - } - - FilterParams::FilterParams() - : SortField(SortFieldType::ID), - Direction(SortDirection::Ascending), - IsPaged(false), - Index(0), - Count(100) - {} - - std::string FilterParams::ToString() const - { - std::vector FilterFields; - std::string SortStr; - - // The sorts listed at https://docs.mod.io/#get-mods is inverted for some reason compared to the explanation at - // https://docs.mod.io/#sorting - bool bInvertedSort = false; - - switch (SortField) - { - case SortFieldType::DateMarkedLive: - SortStr = "date_live"; - break; - case SortFieldType::DateUpdated: - SortStr = "date_updated"; - break; - case SortFieldType::DownloadsToday: - SortStr = "popular"; - bInvertedSort = true; - break; - case SortFieldType::Rating: - SortStr = "rating"; - bInvertedSort = true; - break; - case SortFieldType::SubscriberCount: - SortStr = "subscribers"; - bInvertedSort = true; - break; - case SortFieldType::ID: - SortStr = "id"; - break; - default: - break; - } - - SortStr = fmt::format("_sort={}{}", - ((Direction == SortDirection::Descending && !bInvertedSort) || - (Direction == SortDirection::Ascending && bInvertedSort)) - ? "-" - : "", - SortStr); - FilterFields.push_back(SortStr); - - if (SearchKeywords.size()) - { - std::string SearchStr; - for (std::string Keyword : SearchKeywords) - { - SearchStr += Keyword + " "; - } - SearchStr.resize(SearchStr.size() - 1); - FilterFields.push_back(fmt::format("_q={}", SearchStr)); - } - - if (DateRangeBegin) - { - FilterFields.push_back(fmt::format("date_live-min={}", DateRangeBegin->time_since_epoch())); - } - - if (DateRangeEnd) - { - FilterFields.push_back(fmt::format("date_live-max={}", DateRangeBegin->time_since_epoch())); - } - - if (Tags.size()) - { - std::string TagStr; - for (std::string Tag : Tags) - { - TagStr += Tag + ","; - } - TagStr.resize(TagStr.size() - 1); - FilterFields.push_back(fmt::format("tags={}", TagStr)); - } - - if (ExcludedTags.size()) - { - std::string ExcludedTagStr; - for (std::string Tag : ExcludedTags) - { - ExcludedTagStr += Tag + ","; - } - ExcludedTagStr.resize(ExcludedTagStr.size() - 1); - FilterFields.push_back(fmt::format("tags-not-in={}", ExcludedTagStr)); - } - - if (MetadataBlobSearchString) - { - FilterFields.push_back(fmt::format("metadata_blob-lk=*{}*", *MetadataBlobSearchString)); - } - - std::string ResultLimitStr; - if (IsPaged) - { - FilterFields.push_back(fmt::format("_limit={}&_offset={}", Count, Count * Index)); - } - else - { - FilterFields.push_back(fmt::format("_limit={}&_offset={}", Count, Index)); - } - - if (IncludedIDs.size()) - { - FilterFields.push_back(fmt::format("id-in={}", fmt::join(IncludedIDs, ","))); - } - - if (ExcludedIDs.size()) - { - FilterFields.push_back(fmt::format("id-not-in={}", fmt::join(ExcludedIDs, ","))); - } - - std::string FilterString; - - for (std::string Filter : FilterFields) - { - FilterString += Filter + "&"; - } - FilterString.resize(FilterString.size() - 1); - // FilterString.pop_back(); - return FilterString; - } - - Modio::FilterParams& FilterParams::AppendValue(std::vector& Vector, std::string Tag) - { - Tags.push_back(Tag); - return *this; - } - -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioHttpParams.cpp b/Source/Modio/GeneratedSource/ModioHttpParams.cpp deleted file mode 100644 index 9c9dba11..00000000 --- a/Source/Modio/GeneratedSource/ModioHttpParams.cpp +++ /dev/null @@ -1,591 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/http/ModioHttpParams.h" -#endif - -#include "modio/core/ModioLogger.h" -#include "modio/detail/FmtWrapper.h" -#include "modio/detail/ModioSDKSessionData.h" - -namespace Modio -{ - namespace Detail - { - /// @brief Helper to construct payload content from a raw buffer - /// @param RawBuffer The buffer to submit - /// @return PayloadContent wrapping the buffer - MODIO_IMPL PayloadContent MakePayloadContent(Modio::Detail::Buffer RawBuffer) - { - return PayloadContent(std::move(RawBuffer)); - } - - /// @brief Helper to construct payload content referencing a file - /// @param PathToFile The path to the file that will be submitted - /// @return Optional payload content. Will be empty if the file doesn't exist or we could otherwise not retrieve - /// the file size - MODIO_IMPL Modio::Optional MakePayloadContent(Modio::filesystem::path PathToFile) - { - Modio::ErrorCode ec; - std::uintmax_t TmpSize = Modio::filesystem::file_size(PathToFile, ec); - if (!ec) - { - return PayloadContent(PathToFile, Modio::FileSize(TmpSize)); - } - else - { - Modio::Detail::Logger().Log(Modio::LogLevel::Error, Modio::LogCategory::File, - "Could not get size for file payload at {}, got error = {}", - PathToFile.generic_string(), ec.message()); - return {}; - } - } - - Modio::Detail::HttpRequestParams& HttpRequestParams::SetGameID(Modio::GameID ID) - { - this->GameID = ID; - return *this; - } - - Modio::Detail::HttpRequestParams HttpRequestParams::SetGameID(Modio::GameID ID) const - { - auto NewParamsInstance = HttpRequestParams(*this); - NewParamsInstance.GameID = ID; - return NewParamsInstance; - } - - Modio::Detail::HttpRequestParams& HttpRequestParams::SetModID(Modio::ModID ID) - { - ModID = ID; - return *this; - } - - Modio::Detail::HttpRequestParams HttpRequestParams::SetModID(Modio::ModID ID) const - { - auto NewParamsInstance = HttpRequestParams(*this); - NewParamsInstance.ModID = ID; - return NewParamsInstance; - } - - Modio::Detail::HttpRequestParams HttpRequestParams::SetLocale(Modio::Language Locale) const - { - auto NewParamsInstance = HttpRequestParams(*this); - NewParamsInstance.OverrideLocale = Locale; - return NewParamsInstance; - } - - Modio::Detail::HttpRequestParams& HttpRequestParams::SetLocale(Modio::Language Locale) - { - OverrideLocale = Locale; - return *this; - } - - Modio::Detail::HttpRequestParams& HttpRequestParams::SetFilterString(const std::string& InFilterString) - { - // If there was a provided filter string, append on & to ensure that we can append on the API key - if (InFilterString.size()) - { - // @todo: Move away this & as it makes it hard to follow the logic of how the URL is built - FilterString = InFilterString + "&"; - } - - return *this; - } - - HttpRequestParams HttpRequestParams::SetFilterString(const std::string& InFilterString) const - { - auto NewParamsInstance = HttpRequestParams(*this); - NewParamsInstance.SetFilterString(InFilterString); - return NewParamsInstance; - } - - HttpRequestParams HttpRequestParams::AppendPayloadValue(std::string Key, std::string Value) const - { - Modio::Detail::Buffer ValueBuffer(Value.length()); - std::copy(Value.begin(), Value.end(), ValueBuffer.begin()); - return AppendPayloadValue(Key, std::move(ValueBuffer)); - } - - HttpRequestParams HttpRequestParams::AppendPayloadValue(std::string Key, - Modio::Detail::Buffer RawPayloadBuffer) const - { - HttpRequestParams NewParamsInstance = HttpRequestParams(*this); - auto KeyIterator = NewParamsInstance.PayloadMembers.find(Key); - if (KeyIterator != NewParamsInstance.PayloadMembers.end()) - { - NewParamsInstance.PayloadMembers.erase(KeyIterator); - } - NewParamsInstance.PayloadMembers.emplace(Key, MakePayloadContent(std::move(RawPayloadBuffer))); - return NewParamsInstance; - } - - HttpRequestParams HttpRequestParams::AppendPayloadFile(std::string Key, - Modio::filesystem::path PathToFileToUpload) const - { - HttpRequestParams NewParamsInstance = HttpRequestParams(*this); - Modio::Optional MaybePayload = MakePayloadContent(PathToFileToUpload); - if (MaybePayload) - { - auto KeyIterator = NewParamsInstance.PayloadMembers.find(Key); - if (KeyIterator != NewParamsInstance.PayloadMembers.end()) - { - NewParamsInstance.PayloadMembers.erase(KeyIterator); - } - NewParamsInstance.PayloadMembers.emplace(Key, MaybePayload.value()); - } - // Warning about null payload file will be emitted by MakePayloadContent, so we don't need to do it again - // here - return NewParamsInstance; - } - - Modio::Detail::HttpRequestParams& HttpRequestParams::SetAuthTokenOverride(const std::string& AuthToken) - { - AuthTokenOverride = AuthToken; - return *this; - } - - Modio::Detail::HttpRequestParams HttpRequestParams::SetAuthTokenOverride(const std::string& AuthToken) const - { - auto NewParamsInstance = HttpRequestParams(*this); - NewParamsInstance.AuthTokenOverride = AuthToken; - return NewParamsInstance; - } - - Modio::Detail::HttpRequestParams& HttpRequestParams::SetRange(Modio::FileOffset Start, - Modio::Optional End) - { - StartOffset = Start; - EndOffset = End; - return *this; - } - - Modio::Detail::HttpRequestParams HttpRequestParams::SetRange(Modio::FileOffset Start, - Modio::Optional End) const - { - auto NewParamsInstance = HttpRequestParams(*this); - NewParamsInstance.StartOffset = Start; - NewParamsInstance.EndOffset = End; - return NewParamsInstance; - } - - std::string HttpRequestParams::GetServerAddress() const - { - if (bFileDownload) - { - return FileDownloadServer; - } - else - { - // @todo: Break this out so that we don't need to use this class in conjunction with the SessionData - switch (Modio::Detail::SDKSessionData::GetEnvironment()) - { - case Environment::Live: - return "api.mod.io"; - case Environment::Test: - return "api.test.mod.io"; - } - return ""; - } - } - - std::string HttpRequestParams::GetFormattedResourcePath() const - { - if (bFileDownload) - { - return ResourcePath; - } - else - { - // @todo: We want to clean up this, this is getting messy - std::string Filter = FilterString.value_or(""); - return std::string(GetAPIVersionString() + GetResolvedResourcePath() + "?" + Filter + - GetAPIKeyString()); - } - } - - std::string HttpRequestParams::GetVerb() const - { - switch (CurrentOperationType) - { - case Verb::GET: - return "GET"; - case Verb::HEAD: - return "HEAD"; - case Verb::POST: - return "POST"; - case Verb::PUT: - return "PUT"; - case Verb::DELETE: - return "DELETE"; - } - return ""; - } - - Modio::Detail::Verb HttpRequestParams::GetTypedVerb() const - { - return CurrentOperationType; - } - - bool HttpRequestParams::ContainsFormData() const - { - if (ContentType) - { - if (Modio::Detail::hash_64_fnv1a_const(ContentType->c_str()) == "multipart/form-data"_hash) - { - return true; - } - } - return false; - } - - const Modio::Optional HttpRequestParams::GetUrlEncodedPayload() const - { - // TODO: make this more performant by treating the mime type as a constant so we can do a early exit if we - // are using form-data - if (Modio::Detail::hash_64_fnv1a_const(ContentType->c_str()) != "application/x-www-form-urlencoded"_hash) - { - return {}; - } - std::string PayloadString; - for (auto& Entry : PayloadMembers) - { - if (Entry.second.RawBuffer) - { - if (PayloadString.length()) - { - PayloadString += "&"; - } - PayloadString += - Entry.first + "=" + std::string(Entry.second.RawBuffer->begin(), Entry.second.RawBuffer->end()); - } - else - { - // Notify the caller we're rejecting the call for a url encoded payload - Modio::Detail::Logger().Log( - Modio::LogLevel::Error, Modio::LogCategory::Http, - "Rejecting request for URLencoded payload because at least one payload parameter is a file {}", - Entry.second.PathToFile.value_or("").u8string()); - - return {}; - } - } - if (PayloadString.length()) - { - return PayloadString; - } - else - { - return {}; - } - } - - Modio::FileSize HttpRequestParams::GetPayloadSize() const - { - if (PayloadMembers.size() == 0) - { - return Modio::FileSize(0); - } - else - { - const std::string BoundaryString = - fmt::format("\r\n--{}\r\nContent-Disposition: form-data; name=\"\"\r\n\r\n", GetBoundaryHash()); - Modio::FileSize PayloadSize = Modio::FileSize(0); - for (auto& ContentElement : PayloadMembers) - { - // Length of the name - PayloadSize += Modio::FileSize(ContentElement.first.size()); - // Length of the data - PayloadSize += ContentElement.second.Size; - if (ContentElement.second.bIsFile) - { - PayloadSize += Modio::FileSize( - fmt::format("; filename=\"{}\"", ContentElement.second.PathToFile->filename().u8string()).size()); - } - // Length of the boundary string - PayloadSize += Modio::FileSize(BoundaryString.size()); - } - // Add final boundary string - const std::string FinalBoundaryString = fmt::format("\r\n--{}\r\n", GetBoundaryHash()); - PayloadSize += Modio::FileSize(FinalBoundaryString.size()); - return PayloadSize; - } - } - - Modio::Optional> HttpRequestParams:: - TakeNextPayloadElement() - { - if (PayloadMembers.size()) - { - auto FirstElementIt = PayloadMembers.begin(); - Modio::Optional> FirstElement = - std::move(*FirstElementIt); - PayloadMembers.erase(FirstElementIt); - return FirstElement; - } - else - { - return {}; - } - } - - Modio::Detail::HttpRequestParams::HeaderList HttpRequestParams::GetHeaders() const - { - // Default headers - HeaderList Headers = {{"User-Agent", "Modio-SDKv2-" MODIO_COMMIT_HASH}, - {"x-modio-platform", MODIO_TARGET_PLATFORM_ID}}; - - switch (Modio::Detail::SDKSessionData::GetPortal()) - { - case Portal::Apple: - Headers.push_back({"x-modio-portal", "Apple"}); - break; - case Portal::EpicGamesStore: - Headers.push_back({"x-modio-portal", "EGS"}); - break; - case Portal::GOG: - Headers.push_back({"x-modio-portal", "GOG"}); - break; - case Portal::Google: - Headers.push_back({"x-modio-portal", "Google"}); - break; - case Portal::Itchio: - Headers.push_back({"x-modio-portal", "Itchio"}); - break; - case Portal::Nintendo: - Headers.push_back({"x-modio-portal", "Nintendo"}); - break; - case Portal::PSN: - Headers.push_back({"x-modio-portal", "PSN"}); - break; - case Portal::Steam: - Headers.push_back({"x-modio-portal", "Steam"}); - break; - case Portal::XboxLive: - Headers.push_back({"x-modio-portal", "XboxLive"}); - break; - default: - break; - } - - /*if (Payload || CurrentOperationType == Modio::Detail::Verb::POST || - CurrentOperationType == Modio::Detail::Verb::DELETE) - { - Headers.push_back({"Content-Type", "application/x-www-form-urlencoded"}); - }*/ - if (ContentType.has_value()) - { - if (ContainsFormData()) - { - Headers.push_back( - {"Content-Type", fmt::format("{}; boundary=\"{}\"", *ContentType, GetBoundaryHash())}); - } - else - { - Headers.push_back({"Content-Type", *ContentType}); - } - } - - const Modio::Optional& AuthToken = GetAuthToken(); - if (AuthToken) - { - Headers.push_back({"Authorization", fmt::format("Bearer {}", *AuthToken)}); - } - if (StartOffset || EndOffset) - { - Headers.push_back( - {"Range", fmt::format("bytes={}-{}", StartOffset ? StartOffset.value() : (std::uintmax_t) 0, - EndOffset ? fmt::format("{}", EndOffset.value()) : "")}); - } - if (OverrideLocale) - { - Headers.push_back({"Accept-Language", Modio::Detail::ToString(*OverrideLocale)}); - } - // @todo: Set Content-Type: multipart/form-data for binary payload - return Headers; - } - - HttpRequestParams::HttpRequestParams(std::string Server, std::string ResourcePath) - : bFileDownload(true), - FileDownloadServer(Server), - ResourcePath(ResourcePath), - GameID(0), - ModID(0), - CurrentOperationType(Modio::Detail::Verb::GET), - CurrentAPIVersion(Modio::Detail::APIVersion::V1) - {} - - Modio::Detail::Buffer HttpRequestParams::GetRequestBuffer(bool bPerformURLEncoding) const - { - std::string HeaderString = fmt::format("{0} {1} HTTP/1.1\r\n", GetVerb(), GetFormattedResourcePath()); - HeaderString += fmt::format("Host: {0}\r\n", GetServerAddress()); - for (auto& CurrentHeader : GetHeaders()) - { - HeaderString += fmt::format("{0}: {1}\r\n", CurrentHeader.first, CurrentHeader.second); - } - auto CurrentPayloadString = GetUrlEncodedPayload(); - if (CurrentPayloadString.has_value()) - { - if (bPerformURLEncoding) - { - std::string EncodedPayload = Modio::Detail::String::URLEncode(CurrentPayloadString.value()); - HeaderString += fmt::format("content-length: {0}\r\n", EncodedPayload.size()); - HeaderString += fmt::format("\r\n{0}\r\n", EncodedPayload); - } - else - - { - HeaderString += fmt::format("content-length: {0}\r\n", CurrentPayloadString->length()); - HeaderString += fmt::format("\r\n{0}\r\n", CurrentPayloadString.value()); - } - } - Modio::Detail::Buffer HeaderBuffer(HeaderString.length()); - // Use HeaderBuffer size as param for copy to prevent ever having an overrun - std::copy(HeaderString.begin(), HeaderString.begin() + HeaderBuffer.GetSize(), HeaderBuffer.begin()); - return HeaderBuffer; - } - - Modio::Optional HttpRequestParams::FileDownload(std::string URL) - { - std::regex URLPattern("(https:\\/\\/)?(.*\\.io)(.+)$", std::regex::icase); - std::smatch MatchInfo; - if (std::regex_search(URL, MatchInfo, URLPattern)) - { - if (MatchInfo.size() == 4) - { - return HttpRequestParams(MatchInfo[2].str(), MatchInfo[3].str()); - } - } - return {}; - } - Modio::Optional HttpRequestParams::RedirectURL(std::string URL) const - { - std::regex URLPattern("(https:\\/\\/)?(.*\\.io)(.+)$", std::regex::icase); - std::smatch MatchInfo; - if (std::regex_search(URL, MatchInfo, URLPattern)) - { - if (MatchInfo.size() == 4) - { - auto NewParamsInstance = HttpRequestParams(*this); - NewParamsInstance.bFileDownload = true; - NewParamsInstance.FileDownloadServer = MatchInfo[2].str(); - NewParamsInstance.ResourcePath = MatchInfo[3].str(); - return NewParamsInstance; - } - } - return {}; - } - - std::string HttpRequestParams::GetAPIVersionString() const - { - switch (CurrentAPIVersion) - { - case APIVersion::V1: - return "/v1"; - } - return ""; - } - - std::string HttpRequestParams::GetAPIKeyString() const - { - using namespace Modio::Detail; - - return std::string("api_key=") + *SDKSessionData::CurrentAPIKey(); - } - - const Modio::Optional HttpRequestParams::GetAuthToken() const - { - using namespace Modio::Detail; - - return AuthTokenOverride.has_value() ? AuthTokenOverride.value() - : Modio::Detail::SDKSessionData::GetAuthenticationToken().and_then( - &Modio::Detail::OAuthToken::GetToken); - } - - std::string HttpRequestParams::GetResolvedResourcePath() const - { - using namespace Modio::Detail; - - // @todo: This does allocation, would be nice if we could avoid doing allocation or "lock-in" the - // parameters after we have done this call first time so that we don't need to do allocations if we call - // it again. But maybe we won't reuse a resource path, so it won't be a problem anyway - std::string TempResourcePath = ResourcePath; - String::ReplaceAll(TempResourcePath, "{game-id}", std::to_string(GameID)); - String::ReplaceAll(TempResourcePath, "{mod-id}", std::to_string(ModID)); - - return TempResourcePath; - } -#ifdef MODIO_SEPARATE_COMPILATION - HttpRequestParams InvalidParams; -#endif - - PayloadContent::PayloadContent(const PayloadContent& Other) - - { - if (Other.bIsFile) - { - RawBuffer = {}; - PathToFile = Other.PathToFile; - } - else - { - RawBuffer = Other.RawBuffer.value().Clone(); - PathToFile = {}; - } - bIsFile = Other.bIsFile; - Size = Other.Size; - } - - PayloadContent::PayloadContent(Modio::Detail::Buffer InRawBuffer) - : RawBuffer(std::move(InRawBuffer)), - bIsFile(false) - { - Size = Modio::FileSize(this->RawBuffer->GetSize()); - } - - PayloadContent::PayloadContent(Modio::filesystem::path PathToFile, Modio::FileSize Size) - : PathToFile(PathToFile), - bIsFile(true), - Size(Size) - {} - - Modio::Detail::PayloadContent& PayloadContent::operator=(PayloadContent&& Other) - { - bIsFile = std::move(Other.bIsFile); - RawBuffer = std::move(Other.RawBuffer); - PathToFile = std::move(Other.PathToFile); - Size = std::move(Other.Size); - return *this; - } - - PayloadContent& PayloadContent::operator=(const PayloadContent& Other) - { - if (this == &Other) - { - return *this; - } - - if (Other.bIsFile) - { - RawBuffer = {}; - PathToFile = Other.PathToFile; - } - else - { - RawBuffer = Other.RawBuffer.value().Clone(); - PathToFile = {}; - } - bIsFile = Other.bIsFile; - Size = Other.Size; - return *this; - } - - } // namespace Detail -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioHttpRequest.cpp b/Source/Modio/GeneratedSource/ModioHttpRequest.cpp deleted file mode 100644 index d94413b7..00000000 --- a/Source/Modio/GeneratedSource/ModioHttpRequest.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/http/ModioHttpRequest.h" -#endif - -#include "modio/core/ModioLogger.h" - -namespace Modio -{ - namespace Detail - { - HttpRequest::HttpRequest(HttpRequest&& Other) - : asio::basic_io_object(std::move(Other)), - RequestParameters(std::move(Other.RequestParameters)) - - {} - - HttpRequest::HttpRequest(asio::io_context& Context, HttpRequestParams RequestParams) - : asio::basic_io_object(Context), - RequestParameters(RequestParams) - - { - get_implementation()->Parameters = RequestParams; - Logger().Log(LogLevel::Trace, LogCategory::Http, "Creating Request for {}", - RequestParams.GetFormattedResourcePath()); - } - - HttpRequest::HttpRequest(HttpRequestParams RequestParams) - : asio::basic_io_object(Modio::Detail::Services::GetGlobalContext()), - RequestParameters(RequestParams) - { - get_implementation()->Parameters = RequestParameters; - Logger().Log(LogLevel::Trace, LogCategory::Http, "Creating Request for {}", - RequestParams.GetFormattedResourcePath()); - } - - HttpRequest::~HttpRequest() {} - - Modio::Detail::HttpRequestParams& HttpRequest::Parameters() - { - return get_implementation()->Parameters; - } - - std::uint32_t HttpRequest::GetResponseCode() - { - return get_implementation()->GetResponseCode(); - } - - Modio::Optional HttpRequest::GetRedirectURL() const - { - return get_implementation()->GetRedirectURL(); - } - - - } // namespace Detail -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioHttpService.cpp b/Source/Modio/GeneratedSource/ModioHttpService.cpp deleted file mode 100644 index 59b74bc0..00000000 --- a/Source/Modio/GeneratedSource/ModioHttpService.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION -#include "modio/http/ModioHttpService.h" -#endif - -namespace Modio -{ - namespace Detail - { - HttpService::HttpService(asio::io_context& IOService) : asio::detail::service_base(IOService) - { - APIQueue = std::make_shared(IOService); - FileDownloadQueue = std::make_shared(IOService); - - auto NewImplementation = std::make_shared(*this); - - PlatformImplementation.swap(NewImplementation); - } - - void HttpService::construct(implementation_type& Implementation) - { - PlatformImplementation->InitializeIOObjectImplementation(Implementation); - } - - void HttpService::move_construct(implementation_type& Implementation, implementation_type& Other) - { - PlatformImplementation->MoveIOObjectImplementation(Implementation, Other); - } - - void HttpService::move_assign(implementation_type& Implementation, Modio::Detail::HttpService& OtherService, - implementation_type& Other) - { - // No difference between this and move_construct for us because our application will only have a single - // io_context and a single HttpService instance - PlatformImplementation->MoveIOObjectImplementation(Implementation, Other); - } - - void HttpService::converting_move_construct(implementation_type& impl, Modio::Detail::HttpService&, - implementation_type& other_impl) - { - move_construct(impl, other_impl); - } - - void HttpService::converting_move_assign(implementation_type& impl, Modio::Detail::HttpService& other_service, - implementation_type& other_impl) - { - move_assign(impl, other_service, other_impl); - } - - void HttpService::destroy(implementation_type& Implementation) - { - } - - Modio::Detail::OperationQueue::Ticket HttpService::GetAPIRequestTicket() - { - return APIQueue->GetTicket(); - } - - Modio::Detail::OperationQueue::Ticket HttpService::GetFileDownloadTicket() - { - return FileDownloadQueue->GetTicket(); - } - - void HttpService::Shutdown() - { - PlatformImplementation->Shutdown(); - APIQueue->CancelAll(); - FileDownloadQueue->CancelAll(); - } - - void HttpService::shutdown_service() {} - - } // namespace Detail -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioInitializeOptions.cpp b/Source/Modio/GeneratedSource/ModioInitializeOptions.cpp deleted file mode 100644 index ea623f0d..00000000 --- a/Source/Modio/GeneratedSource/ModioInitializeOptions.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/ModioInitializeOptions.h" -#endif - -namespace Modio -{ - InitializeOptions::InitializeOptions() {} - - InitializeOptions::InitializeOptions(Modio::GameID GameID, Modio::ApiKey APIKey, Modio::Environment GameEnvironment, - Modio::Portal PortalInUse, Modio::UserHandleType User) - : GameID(GameID), - APIKey(APIKey), - User(User), - PortalInUse(PortalInUse), - GameEnvironment(GameEnvironment) - {} -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioJsonHelpers.cpp b/Source/Modio/GeneratedSource/ModioJsonHelpers.cpp deleted file mode 100644 index d19ef09c..00000000 --- a/Source/Modio/GeneratedSource/ModioJsonHelpers.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION -#include "modio/detail/ModioJsonHelpers.h" -#endif - -#include "modio/core/ModioBuffer.h" - -bool Modio::Detail::GetSubobjectSafe(const nlohmann::json& Json, const std::string& SubobjectKey, - nlohmann::json& OutSubobjectJson) -{ - if (Json.contains(SubobjectKey)) - { - const nlohmann::json& Subobject = Json.at(SubobjectKey); - if (!Subobject.is_null()) - { - OutSubobjectJson = Subobject; - return true; - } - else - { - Modio::Detail::Logger().Log(Modio::LogLevel::Warning, Modio::LogCategory::Core, - "Subobject is null for SubobjectKey: {}", SubobjectKey); - } - } - else - { - Modio::Detail::Logger().Log(Modio::LogLevel::Warning, Modio::LogCategory::Core, - "Json does not contain SubobjectKey: {}", SubobjectKey); - } - return false; -} - -bool Modio::Detail::ParseArraySizeSafe(const nlohmann::json& Json, std::size_t& OutVar, const std::string& Key) -{ - if (Json.contains(Key) && !Json.at(Key).is_null()) - { - OutVar = Json.at(Key).size(); - return true; - } - else - { - Modio::Detail::Logger().Log(Modio::LogLevel::Warning, Modio::LogCategory::Core, - "Json ParseArraySizeSafe failed for Key: {}", Key); - return false; - } -} - -nlohmann::json Modio::Detail::ToJson(const Modio::Detail::DynamicBuffer& ResponseBuffer) -{ - Modio::Detail::Buffer LinearBuffer(ResponseBuffer.size()); - Modio::Detail::BufferCopy(LinearBuffer, ResponseBuffer); - - return nlohmann::json::parse(LinearBuffer.Data(), nullptr, false); -} - -nlohmann::json Modio::Detail::ToJson(const Modio::filesystem::path& Path) -{ - return nlohmann::json::parse(Path.string(), nullptr, false); -} - -nlohmann::json Modio::Detail::ToJson(const Modio::Detail::Buffer& InBuffer) -{ - return nlohmann::json::parse(InBuffer.Data(), nullptr, false); -} diff --git a/Source/Modio/GeneratedSource/ModioLogService.cpp b/Source/Modio/GeneratedSource/ModioLogService.cpp deleted file mode 100644 index 396a6423..00000000 --- a/Source/Modio/GeneratedSource/ModioLogService.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/ModioLogService.h" -#endif - -namespace Modio -{ - namespace Detail - { - LogService::LogService(asio::io_context& IOService) - : asio::detail::service_base(IOService), - CurrentLogLevel(LogLevel::Trace), - LogStrand(asio::make_strand(IOService)) - {} - - void LogService::construct(implementation_type& Implementation) - { - Implementation = std::make_shared(LogStrand); - } - - void LogService::destroy(implementation_type& Implementation) - { - Implementation.reset(); - } - - void LogService::Shutdown() - { - FlushLogBuffer(); - } - - void LogService::SetLogLevel(LogLevel Level) - { - CurrentLogLevel = Level; - } - - Modio::LogLevel LogService::GetLogLevel() const - { - return CurrentLogLevel; - } - - void LogService::FlushLogBuffer() - { - if (UserCallbackFunction) - { - for (const LogMessage& Log : LogBuffer) - { - UserCallbackFunction(Log.Level, Log.Message); - } - } - LogBuffer.clear(); - } - - void LogService::SetLogCallback(std::function LogCallback) - { - // Flush out the current logs - if (UserCallbackFunction) - { - // @todo: What will happen here if there is no service alive as the global context is dead? - Modio::Detail::Services::GetGlobalService().FlushLogBuffer(); - } - UserCallbackFunction = LogCallback; - } - - void LogService::SetGlobalLogLevel(Modio::LogLevel Level) - { - auto& LogService = - asio::use_service(Modio::Detail::Services::GetGlobalContext()); - LogService.SetLogLevel(Level); - } -#ifdef MODIO_SEPARATE_COMPILATION - std::function LogService::UserCallbackFunction; -#endif - } // namespace Detail -} - diff --git a/Source/Modio/GeneratedSource/ModioModCollectionEntry.cpp b/Source/Modio/GeneratedSource/ModioModCollectionEntry.cpp deleted file mode 100644 index c37274d1..00000000 --- a/Source/Modio/GeneratedSource/ModioModCollectionEntry.cpp +++ /dev/null @@ -1,423 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/ModioModCollectionEntry.h" -#endif - -#include "modio/core/ModioErrorCode.h" -#include "modio/core/ModioLogger.h" -#include "modio/detail/ModioConstants.h" -#include "modio/detail/ModioJsonHelpers.h" -#include "nlohmann/json.hpp" -#include - -namespace Modio -{ - ModCollectionEntry::ModCollectionEntry(ModInfo ProfileData, Modio::filesystem::path CalculatedModPath) - : ID(ProfileData.ModId), - CurrentState(Modio::ModState::InstallationPending), - ModProfile(ProfileData), - LocalUserSubscriptions(), - PathOnDisk(CalculatedModPath), - RetriesRemainingThisSession(Modio::Detail::Constants::Configuration::DefaultNumberOfRetries) {}; - - ModCollectionEntry::ModCollectionEntry(const ModCollectionEntry& Other) - : ID(Other.ID), - CurrentState(Other.CurrentState.load()), - ModProfile(Other.ModProfile), - LocalUserSubscriptionCount(Other.LocalUserSubscriptionCount.load()), - LocalUserSubscriptions(Other.LocalUserSubscriptions), - PathOnDisk(Other.PathOnDisk), - RetriesRemainingThisSession(Modio::Detail::Constants::Configuration::DefaultNumberOfRetries) {}; - - uint8_t ModCollectionEntry::GetRetriesRemaining() - { - return RetriesRemainingThisSession; - } - - void ModCollectionEntry::UpdateModProfile(ModInfo ProfileData) - { - // check version in metadata and set pending install if need be - if (ModProfile.FileInfo.MetadataId != ProfileData.FileInfo.MetadataId) - { - SetModState(ModState::UpdatePending); - } - ModProfile = ProfileData; - } - - uint8_t ModCollectionEntry::AddLocalUserSubscription(Modio::Optional User) - { - if (User.has_value()) - { - if (CurrentState == Modio::ModState::UninstallPending) - { - CurrentState.store(ModState::Installed); - } - - LocalUserSubscriptions.insert(User->UserId); - } - return (std::uint8_t) LocalUserSubscriptions.size(); - } - - uint8_t ModCollectionEntry::RemoveLocalUserSubscription(Modio::Optional User) - { - if (User.has_value()) - { - LocalUserSubscriptions.erase(User->UserId); - if (LocalUserSubscriptions.size() == 0) - { - CurrentState.store(ModState::UninstallPending); - Modio::Detail::Logger().Log(Modio::LogLevel::Info, Modio::LogCategory::ModManagement, - "Reference count for mod {} now 0, marking for uninstallation", ID); - } - } - return (std::uint8_t) LocalUserSubscriptions.size(); - } - - void ModCollectionEntry::SetModState(Modio::ModState NewState) - { - CurrentState = NewState; - if (CurrentState == Modio::ModState::Installed) - { - RetriesRemainingThisSession = Modio::Detail::Constants::Configuration::DefaultNumberOfRetries; - } - } - - void ModCollectionEntry::MarkModNoRetryThisSession() - { - ShouldNotRetry.store(true); - } - - void ModCollectionEntry::SetLastError(Modio::ErrorCode Reason) - { - // For uninstallations, defer immediately if the error indicates we should defer, else make a number of retry - // attempts then stop - if (GetModState() == ModState::UninstallPending) - { - if (Modio::ErrorCodeMatches(Reason, Modio::ErrorConditionTypes::ModDeleteDeferredError)) - { - MarkModNoRetryThisSession(); - return; - } - else - { - if (RetriesRemainingThisSession > 0) - { - RetriesRemainingThisSession--; - } - if (RetriesRemainingThisSession == 0) - { - MarkModNoRetryThisSession(); - } - } - } - // For installations, if we should retry, make a fixed number of attempts then stop. - // If the error is unrecoverable, prevent future reattempts permanently. - // Otherwise, defer to next startup - else - { - if (Modio::ErrorCodeMatches(Reason, Modio::ErrorConditionTypes::ModInstallRetryableError)) - { - if (RetriesRemainingThisSession > 0) - { - RetriesRemainingThisSession--; - } - if (RetriesRemainingThisSession == 0) - { - MarkModNoRetryThisSession(); - } - } - else if (Modio::ErrorCodeMatches(Reason, Modio::ErrorConditionTypes::ModInstallUnrecoverableError)) - { - NeverRetryReason = Reason; - } - else - { - MarkModNoRetryThisSession(); - } - } - } - - void ModCollectionEntry::ClearModNoRetry() - { - ShouldNotRetry.store(false); - } - - bool ModCollectionEntry::ShouldRetry() - { - // Should only retry if we have don't have a never retry reason AND ShouldNotRetry is not set - return !NeverRetryReason && !ShouldNotRetry.load(); - } - - Modio::ModState ModCollectionEntry::GetModState() const - { - return CurrentState; - } - - Modio::ModID ModCollectionEntry::GetID() const - { - return ID; - } - - Modio::ModInfo ModCollectionEntry::GetModProfile() const - { - return ModProfile; - } - - Modio::filesystem::path ModCollectionEntry::GetPath() const - { - return PathOnDisk; - } - - void ModCollectionEntry::UpdateSizeOnDisk(Modio::FileSize NewSize) - { - SizeOnDisk = NewSize; - } - - void RollbackTransactionImpl(ModCollectionEntry& Entry) - { - if (!Entry.RollbackState.has_value()) - { - Modio::Detail::Logger().Log(Modio::LogLevel::Warning, Modio::LogCategory::ModManagement, - "Tried to rollback a transaction on a mod in the system collection while no " - "transaction was occurring!"); - return; - } - else - { - Entry.CurrentState.store(Entry.RollbackState.take().value()); - } - } - - void BeginTransactionImpl(ModCollectionEntry& Entry) - { - if (Entry.CurrentState == Modio::ModState::Downloading || Entry.CurrentState == Modio::ModState::Extracting || - Entry.RollbackState.has_value()) - { - Modio::Detail::Logger().Log( - Modio::LogLevel::Warning, Modio::LogCategory::ModManagement, - "Beginning transaction on a mod in the system collection while a transaction is " - "already occurring!"); - return; - } - else - { - Entry.RollbackState = Entry.CurrentState.load(); - } - } - - ModCollectionEntry& ModCollectionEntry::operator=(const ModCollectionEntry& Other) - { - ID = Other.ID; - CurrentState.store(Other.CurrentState.load()); - ModProfile = Other.ModProfile; - LocalUserSubscriptions = Other.LocalUserSubscriptions; - LocalUserSubscriptionCount.store(Other.LocalUserSubscriptionCount.load()); - PathOnDisk = Other.PathOnDisk; - RetriesRemainingThisSession = Other.RetriesRemainingThisSession; - return *this; - }; - - void to_json(nlohmann::json& j, const ModCollectionEntry& Entry) - { - Modio::ModState EntryState = Entry.CurrentState.load(); - // If the current state is in progress, then we store the previous state. As when loading, the user might - // not want to start the download/installation during SDK initialization. Instead the progress will be - // resumed when the mod management loop is enabled - if (Entry.CurrentState == Modio::ModState::Downloading || Entry.CurrentState == Modio::ModState::Extracting) - { - if (Entry.RollbackState.has_value()) - { - EntryState = *Entry.RollbackState; - } - else - { - Modio::Detail::Logger().Log(Modio::LogLevel::Warning, Modio::LogCategory::ModManagement, - "Mod {0} is in state Downloading or Extracting without a transaction in " - "progress. Saving state as InstallationPending", - Entry.ID); - EntryState = Modio::ModState::InstallationPending; - } - } - - j = nlohmann::json::object( - {{Modio::Detail::Constants::JSONKeys::ModEntryID, Entry.ID}, - {Modio::Detail::Constants::JSONKeys::ModEntryProfile, Entry.ModProfile}, - {Modio::Detail::Constants::JSONKeys::ModEntrySubCount, Entry.LocalUserSubscriptions}, - {Modio::Detail::Constants::JSONKeys::ModEntryState, EntryState}, - {Modio::Detail::Constants::JSONKeys::ModSizeOnDisk, Entry.SizeOnDisk}, - {Modio::Detail::Constants::JSONKeys::ModPathOnDisk, Entry.PathOnDisk.string()}, - {Modio::Detail::Constants::JSONKeys::ModNeverRetryCode, Entry.NeverRetryReason.value()}, - {Modio::Detail::Constants::JSONKeys::ModNeverRetryCategory, - Modio::Detail::ModioErrorCategoryID(Entry.NeverRetryReason.category())}}); - } - - void from_json(const nlohmann::json& j, ModCollectionEntry& Entry) - { - Modio::Detail::ParseSafe(j, Entry.ID, Modio::Detail::Constants::JSONKeys::ModEntryID); - Modio::Detail::ParseSafe(j, Entry.ModProfile, Modio::Detail::Constants::JSONKeys::ModEntryProfile); - Modio::Detail::ParseSafe(j, Entry.LocalUserSubscriptions, Modio::Detail::Constants::JSONKeys::ModEntrySubCount); - Modio::Detail::ParseSafe(j, Entry.SizeOnDisk, Modio::Detail::Constants::JSONKeys::ModSizeOnDisk); - Modio::ModState StateTmp = ModState::InstallationPending; - Modio::Detail::ParseSafe(j, StateTmp, Modio::Detail::Constants::JSONKeys::ModEntryState); - Entry.CurrentState.store(StateTmp); - Modio::Detail::ParseSafe(j, Entry.PathOnDisk, Modio::Detail::Constants::JSONKeys::ModPathOnDisk); - if (j.contains(Modio::Detail::Constants::JSONKeys::ModNeverRetryCode) && - j.contains(Modio::Detail::Constants::JSONKeys::ModNeverRetryCategory)) - { - Entry.NeverRetryReason = - std::error_code(j.at(Modio::Detail::Constants::JSONKeys::ModNeverRetryCode).get(), - Modio::Detail::GetModioErrorCategoryByID( - j.at(Modio::Detail::Constants::JSONKeys::ModNeverRetryCategory).get())); - } - } - - UserSubscriptionList::UserSubscriptionList(std::vector&& NewIDs) - : InternalList(std::make_move_iterator(NewIDs.begin()), std::make_move_iterator(NewIDs.end())) - {} - - UserSubscriptionList::UserSubscriptionList(std::vector NewIDs) - : InternalList(NewIDs.begin(), NewIDs.end()) - {} - - UserSubscriptionList::UserSubscriptionList() {} - - bool UserSubscriptionList::AddMod(Modio::ModInfo Mod) - { - return InternalList.insert(Mod.ModId).second; - } - - void UserSubscriptionList::RemoveMod(Modio::ModID Mod) - { - InternalList.erase(Mod); - } - - const std::set& UserSubscriptionList::Get() const - { - return InternalList; - } - - std::map UserSubscriptionList::CalculateChanges( - const UserSubscriptionList& Original, const UserSubscriptionList& Updated) - { - std::map Diff; - - std::vector ChangedMods; - // Get a vector of all ModIDs that only occur in either Original or Updated but not both - std::set_symmetric_difference(Original.InternalList.begin(), Original.InternalList.end(), - Updated.InternalList.begin(), Updated.InternalList.end(), - std::back_inserter(ChangedMods)); - // For each Mod ID that was present only in one set... - for (Modio::ModID ChangedModID : ChangedMods) - { - // If the Mod ID not present in the original set, it must be an addition - if (Original.InternalList.find(ChangedModID) == Original.InternalList.end()) - { - Diff[ChangedModID] = ChangeType::Added; - } - else - { - // if the mod ID was present in the original set, it must NOT be in the new set. Therefore it is a - // removal. - Diff[ChangedModID] = ChangeType::Removed; - } - } - - return Diff; - } - - const Modio::ModCollection ModCollection::FilterByUserSubscriptions( - const UserSubscriptionList& UserSubscriptions) const - { - ModCollection FilteredCollection; - for (Modio::ModID UserModID : UserSubscriptions.Get()) - { - if (ModEntries.count(UserModID)) - { - FilteredCollection.ModEntries[UserModID] = ModEntries.at(UserModID); - } - else - { - // Silently fail for now, don't spam the log - empty list should only occur before first - // FetchExternalUpdatesAsync - /*Modio::Detail::Logger().Log(Modio::LogLevel::Warning, Modio::LogCategory::ModManagement, - "Trying to look up mod ID {} but it is not present in local metadata", - UserModID);*/ - } - } - return FilteredCollection; - } - - bool ModCollection::AddOrUpdateMod(Modio::ModInfo ModToAdd, Modio::filesystem::path CalculatedModPath) - { - if (ModEntries.find(ModToAdd.ModId) == ModEntries.end()) - { - ModEntries[ModToAdd.ModId] = std::make_shared(ModToAdd, CalculatedModPath); - return true; - } - else - { - ModEntries[ModToAdd.ModId]->UpdateModProfile(ModToAdd); - return false; - } - } - - const std::map>& ModCollection::Entries() - { - return ModEntries; - } - - Modio::Optional ModCollection::GetByModID(Modio::ModID ModId) const - { - if (ModEntries.count(ModId)) - { - return *(ModEntries.at(ModId)); - } - else - { - return {}; - } - } - - bool ModCollection::RemoveMod(Modio::ModID ModId) - { - if (ModEntries.count(ModId)) - { - if (ModEntries.at(ModId)->GetModState() == ModState::UninstallPending) - { - ModEntries.erase(ModId); - return true; - } - } - return false; - } - - std::vector> ModCollection::SortEntriesByRetryPriority() const - { - std::vector> SortedEntries; - // Copy the entries to the vector - for (const std::pair>& Elem : ModEntries) - { - SortedEntries.push_back(Elem.second); - } - // Sort the entries by priority (that is, entries which can be retried should be first, and entries which - // haven't been retried this session should be higher ) - auto FirstElemWithNoRetry = - std::partition(SortedEntries.begin(), SortedEntries.end(), - [](std::shared_ptr Elem) { return Elem->ShouldRetry(); }); - std::partition( - SortedEntries.begin(), FirstElemWithNoRetry, [](std::shared_ptr Elem) { - return Elem->GetRetriesRemaining() == Modio::Detail::Constants::Configuration::DefaultNumberOfRetries; - }); - return SortedEntries; - } - -} // namespace Modio \ No newline at end of file diff --git a/Source/Modio/GeneratedSource/ModioModDetails.cpp b/Source/Modio/GeneratedSource/ModioModDetails.cpp deleted file mode 100644 index 02e46d87..00000000 --- a/Source/Modio/GeneratedSource/ModioModDetails.cpp +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/entities/ModioModDetails.h" -#endif - -#include "modio/detail/ModioJsonHelpers.h" - -namespace Modio -{ - void from_json(const nlohmann::json& Json, Modio::ModDetails& ModDetails) - { - from_json(Json, static_cast(ModDetails)); - - Modio::Detail::ParseSafe(Json, ModDetails.InternalList, "data"); - } -} \ No newline at end of file diff --git a/Source/Modio/GeneratedSource/ModioModInfo.cpp b/Source/Modio/GeneratedSource/ModioModInfo.cpp deleted file mode 100644 index 38c7e7fe..00000000 --- a/Source/Modio/GeneratedSource/ModioModInfo.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/entities/ModioModInfo.h" -#endif - -#include "modio/detail/ModioJsonHelpers.h" -#include -namespace Modio -{ - void from_json(const nlohmann::json& Json, Modio::Metadata& Metadata) - { - Detail::ParseSafe(Json, Metadata.Key, "metakey"); - Detail::ParseSafe(Json, Metadata.Value, "metavalue"); - } - - void to_json(nlohmann::json& Json, const Modio::Metadata& Metadata) - { - Json = nlohmann::json {{"metakey", Metadata.Key}, {"metavalue", Metadata.Value}}; - } - - void from_json(const nlohmann::json& Json, Modio::ModTag& ModTag) - { - Detail::ParseSafe(Json, ModTag.Tag, "name"); - } - - void to_json(nlohmann::json& Json, const Modio::ModTag& Tag) - { - Json = nlohmann::json {{"name", Tag.Tag}}; - } - - void from_json(const nlohmann::json& Json, Modio::ModInfo& ModInfo) - { - Detail::ParseSafe(Json, ModInfo.ModId, "id"); - - { - Detail::ParseSafe(Json, ModInfo.FileInfo, "modfile"); - Detail::ParseSafe(Json, ModInfo.MetadataBlob, "metadata_blob"); - Detail::ParseSafe(Json, ModInfo.MetadataKvp, "metadata_kvp"); - Detail::ParseSafe(Json, ModInfo.Tags, "tags"); - } - - { - Detail::ParseSafe(Json, ModInfo.ProfileDateAdded, "date_added"); - Detail::ParseSafe(Json, ModInfo.ProfileDateLive, "date_live"); - Detail::ParseSafe(Json, ModInfo.ProfileDateUpdated, "date_updated"); - Detail::ParseSafe(Json, ModInfo.ProfileDescription, "description"); - Detail::ParseSafe(Json, ModInfo.ProfileDescriptionPlaintext, "description_plaintext"); - Detail::ParseSafe(Json, ModInfo.ProfileMaturityOption, "maturity_option"); - Detail::ParseSafe(Json, ModInfo.ProfileName, "name"); - Detail::ParseSafe(Json, ModInfo.ProfileURL, "profile_url"); - Detail::ParseSafe(Json, ModInfo.ProfileSubmittedBy, "submitted_by"); - Detail::ParseSafe(Json, ModInfo.ProfileSummary, "summary"); - } - - { - Detail::ParseSafe(Json, ModInfo.Stats, "stats"); - } - if (Json.contains("media")) - { - Detail::ParseSafe(Json.at("media"), ModInfo.YoutubeURLs.GetRawList(), "youtube"); - Detail::ParseSafe(Json.at("media"), ModInfo.SketchfabURLs.GetRawList(), "sketchfab"); - Detail::ParseSafe(Json.at("media"), ModInfo.GalleryImages, "images"); - ModInfo.NumGalleryImages = ModInfo.GalleryImages.Size(); - } - } - - void to_json(nlohmann::json& Json, const Modio::ModInfo& Info) - { - Json = nlohmann::json {{"id", Info.ModId}, - {"modfile", Info.FileInfo}, - {"metadata_blob", Info.MetadataBlob}, - {"metadata_kvp", Info.MetadataKvp}, - {"tags", Info.Tags}, - {"date_added", Info.ProfileDateAdded}, - {"date_live", Info.ProfileDateLive}, - {"date_updated", Info.ProfileDateUpdated}, - {"description", Info.ProfileDescription}, - {"description_plaintext", Info.ProfileDescriptionPlaintext}, - {"maturity_option", Info.ProfileMaturityOption}, - {"name", Info.ProfileName}, - {"profile_url", Info.ProfileURL}, - {"submitted_by", Info.ProfileSubmittedBy}, - {"summary", Info.ProfileSummary}, - {"stats", Info.Stats}, - {"media", nlohmann::json::object({{"youtube", Info.YoutubeURLs.GetRawList()}, - {"sketchfab", Info.SketchfabURLs.GetRawList()}, - {"images", Info.GalleryImages}})}}; - } - -} // namespace Modio \ No newline at end of file diff --git a/Source/Modio/GeneratedSource/ModioModStats.cpp b/Source/Modio/GeneratedSource/ModioModStats.cpp deleted file mode 100644 index a094f0a4..00000000 --- a/Source/Modio/GeneratedSource/ModioModStats.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/entities/ModioModStats.h" -#endif - -#include "modio/detail/ModioJsonHelpers.h" - -namespace Modio -{ - void from_json(const nlohmann::json& Json, Modio::ModStats& ModStats) - { - Detail::ParseSafe(Json, ModStats.PopularityRankPosition, "popularity_rank_position"); - Detail::ParseSafe(Json, ModStats.PopularityRankTotalMods, "popularity_rank_total_mods"); - Detail::ParseSafe(Json, ModStats.DownloadsTotal, "downloads_total"); - Detail::ParseSafe(Json, ModStats.SubscribersTotal, "subscribers_total"); - Detail::ParseSafe(Json, ModStats.RatingTotal, "ratings_total"); - Detail::ParseSafe(Json, ModStats.RatingPositive, "ratings_positive"); - Detail::ParseSafe(Json, ModStats.RatingNegative, "ratings_negative"); - Detail::ParseSafe(Json, ModStats.RatingPercentagePositive, "ratings_percentage_positive"); - Detail::ParseSafe(Json, ModStats.RatingWeightedAggregate, "ratings_weighted_aggregate"); - Detail::ParseSafe(Json, ModStats.RatingDisplayText, "ratings_display_text"); - } - - void to_json(nlohmann::json& Json, const Modio::ModStats Stats) - { - Json = nlohmann::json {{"popularity_rank_position", Stats.PopularityRankPosition}, - {"popularity_rank_total_mods", Stats.PopularityRankTotalMods}, - {"downloads_total", Stats.DownloadsTotal}, - {"subscribers_total", Stats.SubscribersTotal}, - {"ratings_total", Stats.RatingTotal}, - {"ratings_positive", Stats.RatingPositive}, - {"ratings_negative", Stats.RatingNegative}, - {"ratings_percentage_positive", Stats.RatingPercentagePositive}, - {"ratings_weighted_aggregate", Stats.RatingWeightedAggregate}, - {"ratings_display_text", Stats.RatingDisplayText}}; - } - -} - diff --git a/Source/Modio/GeneratedSource/ModioObjectTrack.cpp b/Source/Modio/GeneratedSource/ModioObjectTrack.cpp deleted file mode 100644 index dd9c321e..00000000 --- a/Source/Modio/GeneratedSource/ModioObjectTrack.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#pragma once -#ifdef MODIO_SEPARATE_COMPILATION -#include "modio/detail/ModioObjectTrack.h" -#endif -#include "modio/core/ModioLogger.h" - -namespace Modio -{ - namespace Detail - { -#if MODIO_TRACK_OPS - template - BaseOperation::BaseOperation() - { - ++BaseOperation::Count; - - char output[512]; - sprintf(output, "%s %d\n", __FUNCTION__, Count); - OutputDebugStringA(output); - } - - template - BaseOperation::BaseOperation(BaseOperation&& Other) - { - Other.bMovedFrom = true; - } - - template - BaseOperation::~BaseOperation() - { - if (bMovedFrom) - { - return; - } - - --BaseOperation::Count; - - char output[512]; - sprintf(output, "%s %d\n", __FUNCTION__, Count); - OutputDebugStringA(output); - } -#endif -#if MODIO_SEPARATE_COMPILATION - bool BaseOperationCommonImpl::RequiresShutdown = false; -#endif - } // namespace Detail -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioPagedResult.cpp b/Source/Modio/GeneratedSource/ModioPagedResult.cpp deleted file mode 100644 index 8614f381..00000000 --- a/Source/Modio/GeneratedSource/ModioPagedResult.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/entities/ModioPagedResult.h" -#endif - -#include "modio/detail/ModioJsonHelpers.h" -#include - -namespace Modio -{ - void from_json(const nlohmann::json& Json, Modio::PagedResult& PagedResult) - { - Detail::ParseSafe(Json, PagedResult.ResultCount, "result_count"); - Detail::ParseSafe(Json, PagedResult.PageSize, "result_limit"); - Detail::ParseSafe(Json, PagedResult.TotalResultCount, "result_total"); - - // Convert offset to pages - int ResultOffset = 0; - Detail::ParseSafe(Json, ResultOffset, "result_offset"); - PagedResult.PageIndex = (std::int32_t) std::floor(ResultOffset / (float) PagedResult.PageSize); - PagedResult.PageCount = (std::int32_t) std::ceil(PagedResult.TotalResultCount / (float) PagedResult.PageSize); - }; -} \ No newline at end of file diff --git a/Source/Modio/GeneratedSource/ModioReportParams.cpp b/Source/Modio/GeneratedSource/ModioReportParams.cpp deleted file mode 100644 index 5424ba0d..00000000 --- a/Source/Modio/GeneratedSource/ModioReportParams.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/ModioReportParams.h" -#endif - -#include "modio/detail/ModioConstants.h" -#include "modio/http/ModioHttpParams.h" - -namespace Modio -{ - ReportParams::ReportParams(std::int64_t ResourceID, ResourceType ReportedResourceType, Modio::ReportType Type, - std::string ReportDescription, Modio::Optional ReporterName, - Modio::Optional ReporterContact) - : ReporterName(ReporterName), - ReporterContact(ReporterContact), - ReportDescription(ReportDescription), - ReportedResourceType(ReportedResourceType), - ResourceID(ResourceID), - Type(Type) - {} - - ReportParams::ReportParams(Modio::GameID Game, Modio::ReportType Type, std::string ReportDescription, - Modio::Optional ReporterName, Modio::Optional ReporterContact) - : ReportParams(Game, ResourceType::Game, Type, ReportDescription, ReporterName, ReporterContact) - {} - - ReportParams::ReportParams(Modio::ModID Mod, Modio::ReportType Type, std::string ReportDescription, - Modio::Optional ReporterName, Modio::Optional ReporterContact) - : ReportParams(Mod, ResourceType::Mod, Type, ReportDescription, ReporterName, ReporterContact) - {} - - ReportParams::ReportParams(Modio::UserID User, Modio::ReportType Type, std::string ReportDescription, - Modio::Optional ReporterName, Modio::Optional ReporterContact) - : ReportParams(User, ResourceType::User, Type, ReportDescription, ReporterName, ReporterContact) - {} - Modio::Detail::HttpRequestParams ToRequest(const Modio::ReportParams& Params) - { - std::string ResourceString; - switch (Params.ReportedResourceType) - { - case ReportParams::ResourceType::Game: - ResourceString = "games"; - break; - case ReportParams::ResourceType::Mod: - ResourceString = "mods"; - break; - case ReportParams::ResourceType::User: - ResourceString = "users"; - break; - } - - Modio::Detail::HttpRequestParams Request = Modio::Detail::SubmitReportRequest; - if (Params.ReporterName) - { - Request.AppendPayloadValue(Modio::Detail::Constants::APIStrings::ReportSubmitterName, Params.ReporterName.value()); - } - if (Params.ReporterContact) - { - Request.AppendPayloadValue(Modio::Detail::Constants::APIStrings::ReportSubmitterContact, Params.ReporterContact.value()); - } - - return Request.AppendPayloadValue(Modio::Detail::Constants::APIStrings::ReportResourceType, ResourceString) - .AppendPayloadValue(Modio::Detail::Constants::APIStrings::ReportResourceID, - fmt::format("{}", Params.ResourceID)) - .AppendPayloadValue(Modio::Detail::Constants::APIStrings::ReportType, - fmt::format("{}", static_cast(Params.Type))) - .AppendPayloadValue(Modio::Detail::Constants::APIStrings::ReportSummary, Params.ReportDescription); - } -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioSDKSessionData.cpp b/Source/Modio/GeneratedSource/ModioSDKSessionData.cpp deleted file mode 100644 index 0f12e30d..00000000 --- a/Source/Modio/GeneratedSource/ModioSDKSessionData.cpp +++ /dev/null @@ -1,356 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/detail/ModioSDKSessionData.h" -#endif - -#include "modio/core/ModioBuffer.h" -#include "modio/core/ModioInitializeOptions.h" -#include "modio/core/ModioLogger.h" - -namespace Modio - -{ - namespace Detail - { - SDKSessionData& SDKSessionData::Get() - { - static SDKSessionData Instance; - return Instance; - } - - MODIO_IMPL bool SDKSessionData::Initialize(const Modio::InitializeOptions& Options) - { - // If we are already initializing or done with init, bail - if (Get().CurrentInitializationState != InitializationState::NotInitialized) - { - return false; - } - else - { - Get() = std::move(SDKSessionData(Options)); - Get().CurrentInitializationState = InitializationState::Initializing; - return true; - } - } - - void SDKSessionData::Deinitialize() - { - Get().FlushModManagementLog(); - - Get().CurrentInitializationState = InitializationState::NotInitialized; - } - - void SDKSessionData::ConfirmInitialize() - { - Get().CurrentInitializationState = InitializationState::InitializationComplete; - } - - bool SDKSessionData::IsInitialized() - { - return Get().CurrentInitializationState == InitializationState::InitializationComplete; - } - - Modio::GameID SDKSessionData::CurrentGameID() - { - return Get().GameID; - } - - const Modio::ApiKey& SDKSessionData::CurrentAPIKey() - { - return Get().APIKey; - } - - Modio::Environment SDKSessionData::GetEnvironment() - { - return Get().Environment; - } - - Modio::Portal SDKSessionData::GetPortal() - { - return Get().PortalInUse; - } - - bool SDKSessionData::IsModManagementEnabled() - { - return Get().bModManagementEnabled; - } - - void SDKSessionData::AllowModManagement() - { - Get().bModManagementEnabled = true; - } - - void SDKSessionData::DisableModManagement() - { - Get().bModManagementEnabled = false; - } - - void SDKSessionData::MarkAsRateLimited() - { - Get().bRateLimited = true; - Get().RateLimitedStart = std::chrono::system_clock::now(); - } - - bool SDKSessionData::IsRateLimited() - { - // TODO: @modio-core need to compare the timestamp of start to now and work out time elapsed, reset flag if - // need be - return Get().bRateLimited; - } - - Modio::ModCollection& SDKSessionData::GetSystemModCollection() - { - return Get().SystemModCollection; - } - - Modio::ModCollection SDKSessionData::FilterSystemModCollectionByUserSubscriptions() - { - return Get().SystemModCollection.FilterByUserSubscriptions(Get().UserData.UserSubscriptions); - } - - void SDKSessionData::InitializeForAuthenticatedUser(Modio::Detail::AuthenticatedUser AuthenticatedUser, - Modio::Detail::OAuthToken AuthToken) - { - Get().UserData.InitializeForAuthenticatedUser(std::move(AuthenticatedUser), std::move(AuthToken)); - } - - const Modio::Optional SDKSessionData::GetAuthenticationToken() - { - return Get().UserData.GetAuthenticationToken(); - } - - Modio::UserSubscriptionList& SDKSessionData::GetUserSubscriptions() - { - return Get().UserData.UserSubscriptions; - } - - Modio::Detail::Buffer SDKSessionData::SerializeUserData() - { - nlohmann::json Data(Get().UserData); - Data["version"] = 1; - std::string UserData = Data.dump(); - Modio::Detail::Buffer DataBuffer(UserData.size()); - std::copy(UserData.begin(), UserData.end(), DataBuffer.begin()); - return DataBuffer; - } - - bool SDKSessionData::DeserializeUserDataFromBuffer(Modio::Detail::Buffer UserDataBuffer) - { - nlohmann::json UserDataJson = Modio::Detail::ToJson(std::move(UserDataBuffer)); - from_json(UserDataJson, Get().UserData); - return Get().UserData.IsValid(); - } - - void SDKSessionData::ClearUserData() - { - Get().UserData.ResetUserData(); - } - - const Modio::Optional SDKSessionData::GetAuthenticatedUser() - { - return Get().UserData.GetAuthenticatedUser(); - } - - const Modio::Optional SDKSessionData::GetAuthenticatedUserAvatar() - { - return Get().UserData.GetAuthenticatedUserAvatar(); - } - - void SDKSessionData::AddToDeferredUnsubscriptions(Modio::ModID Mod) - { - Get().UserData.DeferredUnsubscriptions.push_back(Mod); - } - - bool SDKSessionData::HasDeferredUnsubscriptions() - { - return Get().UserData.DeferredUnsubscriptions.size() > 0; - } - - Modio::ModID SDKSessionData::GetDeferredUnsubscription() - { - return Get().UserData.DeferredUnsubscriptions.front(); - } - - void SDKSessionData::RemoveDeferredUnsubscription(Modio::ModID NoLongerDeferredUnsubscription) - { - UserDataContainer& UserData = Get().UserData; - UserData.DeferredUnsubscriptions.erase(std::remove(UserData.DeferredUnsubscriptions.begin(), - UserData.DeferredUnsubscriptions.end(), - NoLongerDeferredUnsubscription), - UserData.DeferredUnsubscriptions.end()); - } - - Modio::Optional SDKSessionData::GetUserModDirectoryOverride() - { - return Get().UserData.UserModDirectoryOverride; - } - - void SDKSessionData::SetUserModManagementCallback(std::function Callback) - { - Get().ModManagementEventCallback = Callback; - } - - void SDKSessionData::FlushModManagementLog() - { - if (auto&& Callback = Get().ModManagementEventCallback) - { - for (auto&& Event : Get().EventLog.ClearLog()) - { - Callback(Event); - } - } - } - - Modio::ModEventLog& SDKSessionData::GetModManagementEventLog() - { - return Get().EventLog; - } - - void SDKSessionData::SetLastValidationError(std::vector ExtendedErrorInformation) - { - Get().LastValidationError = ExtendedErrorInformation; - } - - std::vector SDKSessionData::GetLastValidationError() - { - return Get().LastValidationError; - } - - void SDKSessionData::ClearLastValidationError() - { - Get().LastValidationError.clear(); - } - - void SDKSessionData::AddPendingModfileUpload(Modio::ModID ID, Modio::CreateModFileParams Params) - { - if (Params.RootDirectory.has_filename()) - { - Params.RootDirectory /= ""; - Modio::Detail::Logger().Log( - Modio::LogLevel::Warning, Modio::LogCategory::ModManagement, - "Modfile directory path {} does not end in a path separator. Adding manually"); - } - - auto ExistingEntry = Get().PendingModUploads.find(ID); - if (ExistingEntry != Get().PendingModUploads.end()) - { - Modio::Detail::Logger().Log(Modio::LogLevel::Warning, Modio::LogCategory::ModManagement, - "New modfile upload queued for mod {} which already had a pending upload. " - "Dropping previous modfile upload request.", - ID); - Get().PendingModUploads.erase(ID); - } - Get().PendingModUploads.insert({ID, Params}); - } - - Modio::Optional> SDKSessionData:: - GetNextPendingModfileUpload() - { - if (Get().PendingModUploads.size()) - { - std::pair PendingUpload = *Get().PendingModUploads.begin(); - Get().PendingModUploads.erase(Get().PendingModUploads.begin()); - return PendingUpload; - } - else - { - return {}; - } - } - - std::weak_ptr SDKSessionData::StartModDownloadOrUpdate(Modio::ModID ID) - { - if (Get().CurrentModInProgress != nullptr) - { - return std::weak_ptr(); - } - else - { - Get().CurrentModInProgress = std::make_shared(ID); - return Get().CurrentModInProgress; - } - } - - bool SDKSessionData::CancelModDownloadOrUpdate(Modio::ModID ID) - { - if (Get().CurrentModInProgress != nullptr) - { - if (Get().CurrentModInProgress->ID == ID) - { - FinishModDownloadOrUpdate(); - return true; - } - } - return false; - } - - void SDKSessionData::FinishModDownloadOrUpdate() - { - Get().CurrentModInProgress.reset(); - } - - Modio::Optional SDKSessionData::GetModProgress() - { - if (Get().CurrentModInProgress == nullptr) - { - return {}; - } - else - { - return *(Get().CurrentModInProgress); - } - } - - Modio::ModCreationHandle SDKSessionData::GetNextModCreationHandle() - { - if (Get().CreationHandles.size()) - { - Modio::ModCreationHandle NextHandle = Get().CreationHandles.rbegin()->first; - NextHandle += Modio::ModCreationHandle(1); - Get().CreationHandles.insert({NextHandle, {}}); - return NextHandle; - } - else - { - Modio::ModCreationHandle NextHandle = Modio::ModCreationHandle(0); - Get().CreationHandles.insert({NextHandle, {}}); - return NextHandle; - } - } - - Modio::Optional SDKSessionData::ResolveModCreationHandle(Modio::ModCreationHandle Handle) - { - return Get().CreationHandles.at(Handle); - } - - void SDKSessionData::LinkModCreationHandle(Modio::ModCreationHandle Handle, Modio::ModID ID) - { - if (Get().CreationHandles.find(Handle) != Get().CreationHandles.end()) - { - Modio::Detail::Logger().Log(Modio::LogLevel::Warning, Modio::LogCategory::ModManagement, - "Attempting to relink handle {} to mod id {}", Handle, ID); - } - Get().CreationHandles.insert({Handle, ID}); - } - - SDKSessionData::SDKSessionData() {} - - SDKSessionData::SDKSessionData(const Modio::InitializeOptions& Options) - : GameID(Options.GameID), - APIKey(Options.APIKey), - Environment(Options.GameEnvironment), - PortalInUse(Options.PortalInUse), - CurrentInitializationState(InitializationState::NotInitialized) - {} - } // namespace Detail - -} // namespace Modio \ No newline at end of file diff --git a/Source/Modio/GeneratedSource/ModioURLList.cpp b/Source/Modio/GeneratedSource/ModioURLList.cpp deleted file mode 100644 index c26a61bf..00000000 --- a/Source/Modio/GeneratedSource/ModioURLList.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/core/entities/ModioURLList.h" -#endif - -#include "modio/detail/ModioJsonHelpers.h" - - -namespace Modio -{ - void from_json(const nlohmann::json& Json, Modio::YoutubeURLList& YoutubeURLList) - { - Detail::ParseSafe(Json, YoutubeURLList.InternalList, "youtube"); - } - - void from_json(const nlohmann::json& Json, Modio::SketchfabURLList& SketchfabURLList) - { - Detail::ParseSafe(Json, SketchfabURLList.InternalList, "sketchfab"); - } - - void to_json(nlohmann::json& Json, const Modio::YoutubeURLList& YoutubeURLList) - { - Json = nlohmann::json {{"youtube", YoutubeURLList.GetRawList()}}; - } - - void to_json(nlohmann::json& Json, const Modio::SketchfabURLList& SketchfabURLList) - { - Json = nlohmann::json {{"sketchfab", SketchfabURLList.GetRawList()}}; - } -} \ No newline at end of file diff --git a/Source/Modio/GeneratedSource/ModioUserDataContainer.cpp b/Source/Modio/GeneratedSource/ModioUserDataContainer.cpp deleted file mode 100644 index 31ed8a1e..00000000 --- a/Source/Modio/GeneratedSource/ModioUserDataContainer.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/detail/userdata/ModioUserDataContainer.h" -#endif - -namespace Modio -{ - namespace Detail - { - void UserDataContainer::ResetUserData() - { - UserSubscriptions = {}; - DeferredUnsubscriptions = {}; - AuthenticatedProfile = {}; - } - - void UserDataContainer::InitializeForAuthenticatedUser(Modio::Detail::AuthenticatedUser AuthenticatedUser, - Modio::Detail::OAuthToken AuthToken) - { - ResetUserData(); - AuthenticatedProfile = Modio::Detail::ProfileData {AuthenticatedUser, AuthToken}; - } - - const Modio::Optional UserDataContainer::GetAuthenticatedUser() const - { - return AuthenticatedProfile.map_or(&Modio::Detail::ProfileData::GetUser, Modio::Optional {}); - } - - const Modio::Optional UserDataContainer::GetAuthenticatedUserAvatar() const - { - return AuthenticatedProfile.map_or(&Modio::Detail::ProfileData::GetAvatar, - Modio::Optional {}); - } - - const Modio::Optional UserDataContainer::GetAuthenticationToken() const - { - if (AuthenticatedProfile) - { - Modio::Optional Token = AuthenticatedProfile->GetToken(); - if (Token && Token->GetTokenState() == OAuthTokenState::Valid) - { - return Token; - } - } - return {}; - } - - const bool UserDataContainer::IsValid() const - { - return AuthenticatedProfile.has_value(); - } - - } // namespace Detail -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/ModioUserProfile.cpp b/Source/Modio/GeneratedSource/ModioUserProfile.cpp deleted file mode 100644 index 80ed2d76..00000000 --- a/Source/Modio/GeneratedSource/ModioUserProfile.cpp +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#ifdef MODIO_SEPARATE_COMPILATION -#include "modio/detail/userdata/ModioUserProfile.h" -#endif - - -namespace Modio -{ - namespace Detail - { - #ifdef MODIO_SEPARATE_COMPILATION - Modio::Optional OAuthToken::NoToken {}; - #endif - } -} - - diff --git a/Source/Modio/GeneratedSource/SDKCore.cpp b/Source/Modio/GeneratedSource/SDKCore.cpp deleted file mode 100644 index e2877243..00000000 --- a/Source/Modio/GeneratedSource/SDKCore.cpp +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#pragma once - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/ModioSDK.h" -#endif - -#include "modio/cache/ModioCacheService.h" -#include "modio/detail/ModioSDKSessionData.h" -#include "modio/detail/ops/ServiceInitializationOp.h" -#include "modio/detail/ops/ReportContentOp.h" -#include "modio/detail/ops/Shutdown.h" -#include "modio/file/ModioFileService.h" -#include "modio/http/ModioHttpService.h" -#include "modio/impl/SDKPostAsync.h" -#include "modio/impl/SDKPreconditionChecks.h" -#include "modio/userdata/ModioUserDataService.h" -// Implementation header - do not include directly - -#include - -namespace Modio -{ - void InitializeAsync(Modio::InitializeOptions InitOptions, std::function OnInitComplete) - { - if (Modio::Detail::RequireValidInitParams(InitOptions, OnInitComplete)) - { - auto WrappedCallback = Modio::Detail::ApplyPostAsyncChecks(OnInitComplete); - return asio::async_compose, void(Modio::ErrorCode)>( - ServiceInitializationOp(InitOptions), - WrappedCallback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void RunPendingHandlers() - { - // Run any pending handlers on the global io_context - if (Modio::Detail::Services::GetGlobalContext().stopped()) - { - Modio::Detail::Services::GetGlobalContext().restart(); - } - Modio::Detail::Services::GetGlobalContext().poll(); - - // invoke the mod management log callback if the user has set it - Modio::Detail::SDKSessionData::FlushModManagementLog(); - // invoke log callback if the user has set it - Modio::Detail::Services::GetGlobalService().FlushLogBuffer(); - } - -#ifndef MODIO_SEPARATE_COMPILATION - // Forward declaration - void DisableModManagement(); -#endif - - void Shutdown() - { - // We need to be initialized to shutdown - if (!Modio::Detail::SDKSessionData::IsInitialized()) - { - return; - } - - Modio::DisableModManagement(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::SDKSessionData::Deinitialize(); - auto OldContext = Modio::Detail::Services::ResetGlobalContext(); - auto ExhaustOldContext = [OldContext]() mutable { - OldContext->restart(); - OldContext->run(); - OldContext.reset(); - }; - asio::post(Modio::Detail::Services::GetGlobalContext().get_executor(), std::move(ExhaustOldContext)); - - // Ensure that we run the exhaust function and empties out the work queue - Modio::Detail::Services::GetGlobalContext().restart(); - Modio::Detail::Services::GetGlobalContext().run(); - } - - // This might need a timeout parameter - void ShutdownAsync(std::function OnShutdownComplete) - { - if (Modio::Detail::RequireSDKIsInitialized(OnShutdownComplete)) - { - // Halt the mod management loop - Modio::DisableModManagement(); - // Signal the internal services their operations should shut down ASAP - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::Services::GetGlobalService().Shutdown(); - Modio::Detail::SDKSessionData::Deinitialize(); - // Steal the old io context (and associated services) - auto OldContext = Modio::Detail::Services::ResetGlobalContext(); - // Post to the new io_context an operation that will exhaust the old context and call the user callback when - // it's completed - asio::async_compose, void(Modio::ErrorCode)>( - Modio::Detail::ShutdownOp(std::move(OldContext)), OnShutdownComplete, - Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void SetLogLevel(Modio::LogLevel Level) - { - Modio::Detail::LogService::SetGlobalLogLevel(Level); - } - - void SetLogCallback(std::function LogCallback) - { - Modio::Detail::LogService::SetLogCallback(LogCallback); - } - - std::vector GetLastValidationError() - { - return Modio::Detail::SDKSessionData::GetLastValidationError(); - } - - void ReportContentAsync(Modio::ReportParams Report, std::function Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback)) - { - - asio::async_compose, void(Modio::ErrorCode)>( - Modio::Detail::ReportContentOp(Report), Callback, - Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/SDKModManagement.cpp b/Source/Modio/GeneratedSource/SDKModManagement.cpp deleted file mode 100644 index 825823d9..00000000 --- a/Source/Modio/GeneratedSource/SDKModManagement.cpp +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#pragma once - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/ModioSDK.h" -#endif - -#include "modio/core/ModioCoreTypes.h" -#include "modio/core/ModioModCollectionEntry.h" -#include "modio/core/ModioServices.h" -#include "modio/detail/AsioWrapper.h" -#include "modio/detail/ModioSDKSessionData.h" -#include "modio/detail/ops/ModManagementLoop.h" -#include "modio/detail/ops/SubscribeToModOp.h" -#include "modio/detail/ops/UnsubscribeFromMod.h" -#include "modio/detail/ops/mod/SubmitNewModFileOp.h" -#include "modio/detail/ops/mod/SubmitNewModOp.h" -#include "modio/detail/ops/modmanagement/ForceUninstallModOp.h" -#include "modio/impl/SDKPreconditionChecks.h" -#include "modio/userdata/ModioUserDataService.h" - -namespace Modio -{ - Modio::ErrorCode EnableModManagement(std::function ModManagementHandler) - { - if (!Modio::Detail::SDKSessionData::IsInitialized()) - { - return Modio::make_error_code(Modio::GenericError::SDKNotInitialized); - } - if (Modio::Detail::SDKSessionData::IsModManagementEnabled()) - { - return Modio::make_error_code(Modio::ModManagementError::ModManagementAlreadyEnabled); - } - Modio::Detail::SDKSessionData::SetUserModManagementCallback(ModManagementHandler); - Modio::Detail::SDKSessionData::AllowModManagement(); - Modio::Detail::BeginModManagementLoopAsync([](Modio::ErrorCode ec) mutable { - if (ec) - { - Modio::Detail::Logger().Log(LogLevel::Info, Modio::LogCategory::Core, - "Mod Management Loop halted: status message {}", ec.message()); - } - }); - return {}; - } - void DisableModManagement() - { - Modio::Detail::SDKSessionData::SetUserModManagementCallback(std::function {}); - Modio::Detail::SDKSessionData::DisableModManagement(); - } - - void FetchExternalUpdatesAsync(std::function OnFetchDone) - { - if (Modio::Detail::RequireSDKIsInitialized(OnFetchDone) && Modio::Detail::RequireNotRateLimited(OnFetchDone) && - Modio::Detail::RequireUserIsAuthenticated(OnFetchDone) && - Modio::Detail::RequireModManagementEnabled(OnFetchDone)) - { - Modio::Detail::FetchExternalUpdatesAsync(OnFetchDone); - } - } - - void SubscribeToModAsync(Modio::ModID ModToSubscribeTo, std::function OnSubscribeComplete) - { - if (Modio::Detail::RequireSDKIsInitialized(OnSubscribeComplete) && - Modio::Detail::RequireNotRateLimited(OnSubscribeComplete) && - Modio::Detail::RequireUserIsAuthenticated(OnSubscribeComplete) && - Modio::Detail::RequireModManagementEnabled(OnSubscribeComplete)) - - { - return asio::async_compose, void(Modio::ErrorCode)>( - Modio::Detail::SubscribeToModOp(Modio::Detail::SDKSessionData::CurrentGameID(), - Modio::Detail::SDKSessionData::CurrentAPIKey(), ModToSubscribeTo), - OnSubscribeComplete, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void UnsubscribeFromModAsync(Modio::ModID ModToUnsubscribeFrom, - std::function OnUnsubscribeComplete) - { - if (Modio::Detail::RequireSDKIsInitialized(OnUnsubscribeComplete) && - Modio::Detail::RequireNotRateLimited(OnUnsubscribeComplete) && - Modio::Detail::RequireUserIsAuthenticated(OnUnsubscribeComplete) && - Modio::Detail::RequireModManagementEnabled(OnUnsubscribeComplete)) - { - return Modio::Detail::UnsubscribeFromModAsync(ModToUnsubscribeFrom, OnUnsubscribeComplete); - } - } - - bool IsModManagementBusy() - { - if (!Modio::Detail::SDKSessionData::IsModManagementEnabled()) - { - return false; - } - - Modio::ModCollection UserModCollection = - Modio::Detail::SDKSessionData::FilterSystemModCollectionByUserSubscriptions(); - - for (auto ModEntry : UserModCollection.Entries()) - { - Modio::ModState CurrentState = ModEntry.second->GetModState(); - if (CurrentState != Modio::ModState::Installed) - { - return true; - } - } - return false; - } - - Modio::Optional QueryCurrentModUpdate() - { - return Modio::Detail::SDKSessionData::GetModProgress(); - } - - std::map QueryUserSubscriptions() - { - Modio::Detail::UserDataService& UserService = - Modio::Detail::Services::GetGlobalService(); - Modio::ModCollection UserModCollection = - Modio::Detail::SDKSessionData::FilterSystemModCollectionByUserSubscriptions(); - std::map UserSubscriptions; - - for (auto ModEntry : UserModCollection.Entries()) - { - UserSubscriptions.emplace(std::make_pair(ModEntry.first, (*ModEntry.second))); - } - return UserSubscriptions; - } - - std::map QueryUserInstallations(bool bIncludeOutdatedMods) - { - Modio::Detail::UserDataService& UserService = - Modio::Detail::Services::GetGlobalService(); - Modio::ModCollection UserModCollection = - Modio::Detail::SDKSessionData::FilterSystemModCollectionByUserSubscriptions(); - std::map UserInstallations; - - // Only return mods that are either installed, and if bIncludeOutdatedMods mods that are installed but have - // an update available that isn't currently being processed - for (auto ModEntry : UserModCollection.Entries()) - { - if (ModEntry.second->GetModState() == ModState::Installed) - { - UserInstallations.emplace(std::make_pair(ModEntry.first, (*ModEntry.second))); - } - if (bIncludeOutdatedMods && ModEntry.second->GetModState() == ModState::UpdatePending) - { - UserInstallations.emplace(std::make_pair(ModEntry.first, (*ModEntry.second))); - } - } - return UserInstallations; - } - - std::map QuerySystemInstallations() - { - std::map InstalledMods; - Modio::ModCollection& AllInstalledMods = Modio::Detail::SDKSessionData::GetSystemModCollection(); - for (auto& ModEntry : AllInstalledMods.Entries()) - { - InstalledMods.emplace(std::make_pair(ModEntry.first, (*ModEntry.second))); - } - return InstalledMods; - } - - void ForceUninstallModAsync(Modio::ModID ModToRemove, std::function Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireUserIsAuthenticated(Callback) && - Modio::Detail::RequireModManagementEnabled(Callback) && - Modio::Detail::RequireUserNotSubscribed(ModToRemove, Callback)) - { - asio::async_compose, void(Modio::ErrorCode)>( - Modio::Detail::ForceUninstallModOp(ModToRemove), Callback, - Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void SubmitNewModAsync(Modio::ModCreationHandle Handle, Modio::CreateModParams Params, - std::function CreatedModID)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireUserIsAuthenticated(Callback)) - { - if (Modio::Optional ResolvedID = - Modio::Detail::SDKSessionData::ResolveModCreationHandle(Handle)) - { - Modio::Detail::Logger().Log( - Modio::LogLevel::Warning, Modio::LogCategory::ModManagement, - "Attempted to call SubmitNewModAsync with an already-used handle. Returning existing Mod ID"); - asio::post(Modio::Detail::Services::GetGlobalContext().get_executor(), - [ID = ResolvedID.value(), Callback]() { Callback({}, ID); }); - return; - } - return Modio::Detail::SubmitNewModAsync(Handle, Params, Callback); - } - } - Modio::ModCreationHandle GetModCreationHandle() - { - return Modio::Detail::SDKSessionData::GetNextModCreationHandle(); - } - - MODIOSDK_API void SubmitNewModFileForMod(Modio::ModID Mod, Modio::CreateModFileParams Params) - { - //TODO: @modio-core we should return the error code from this function so we can do our precondition checks - Modio::Detail::SDKSessionData::AddPendingModfileUpload(Mod, Params); - - //(Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireUserIsAuthenticated(Callback)) && RequireModManagementEnabled - - } - -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/SDKModMetadata.cpp b/Source/Modio/GeneratedSource/SDKModMetadata.cpp deleted file mode 100644 index a3e767d3..00000000 --- a/Source/Modio/GeneratedSource/SDKModMetadata.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#pragma once - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/ModioSDK.h" -#endif - -#include "modio/core/ModioStdTypes.h" -#include "modio/core/entities/ModioModDetails.h" -#include "modio/core/entities/ModioModInfo.h" -#include "modio/core/entities/ModioModInfoList.h" -#include "modio/core/entities/ModioModTagOptions.h" -#include "modio/detail/ops/mod/GetModDependenciesOp.h" -#include "modio/detail/ops/mod/GetModDetailsOp.h" -#include "modio/detail/ops/mod/GetModInfoOp.h" -#include "modio/detail/ops/mod/GetModMediaAvatarOp.h" -#include "modio/detail/ops/mod/GetModMediaGalleryOp.h" -#include "modio/detail/ops/mod/GetModMediaLogoOp.h" -#include "modio/detail/ops/mod/GetModTagsOp.h" -#include "modio/detail/ops/mod/ListAllModsOp.h" -#include "modio/detail/ops/mod/SubmitModRatingOp.h" -#include "modio/impl/SDKPreconditionChecks.h" - -// Implementation header - do not include directly - -namespace Modio -{ - void ListAllModsAsync(FilterParams Filter, - std::function)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback)) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::ListAllModsOp(Modio::Detail::SDKSessionData::CurrentGameID(), std::move(Filter)), - Callback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void GetModInfoAsync(Modio::ModID ModId, - std::function)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback)) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetModInfoOp(Modio::Detail::SDKSessionData::CurrentGameID(), - Modio::Detail::SDKSessionData::CurrentAPIKey(), ModId), - Callback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } -// Disabled -#if (0) - void GetModFileDetailsAsync(Modio::ModID ModId, - std::function)> Callback) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetModDetailsOp(Modio::Detail::SDKSessionData::CurrentGameID(), - Modio::Detail::SDKSessionData::CurrentAPIKey(), ModId), - Callback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } -#endif - void GetModMediaAsync(Modio::ModID ModId, Modio::LogoSize LogoSize, - std::function)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback)) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetModMediaLogoOp(Modio::Detail::SDKSessionData::CurrentGameID(), - Modio::Detail::SDKSessionData::CurrentAPIKey(), ModId, LogoSize), - Callback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void GetModMediaAsync(Modio::ModID ModId, Modio::AvatarSize AvatarSize, - std::function)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback)) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetModMediaAvatarOp(Modio::Detail::SDKSessionData::CurrentGameID(), - Modio::Detail::SDKSessionData::CurrentAPIKey(), ModId, AvatarSize), - Callback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void GetModMediaAsync(Modio::ModID ModId, Modio::GallerySize GallerySize, Modio::GalleryIndex Index, - std::function)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback)) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetModMediaGalleryOp(Modio::Detail::SDKSessionData::CurrentGameID(), - Modio::Detail::SDKSessionData::CurrentAPIKey(), ModId, GallerySize, - Index), - Callback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void GetModTagOptionsAsync(std::function)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback)) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetModTagsOp(), Callback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void SubmitModRatingAsync(Modio::ModID ModID, Modio::Rating Rating, std::function Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback) && - Modio::Detail::RequireUserIsAuthenticated(Callback)) - { - return asio::async_compose, void(Modio::ErrorCode)>( - Modio::Detail::SubmitModRatingOp(ModID, Rating), Callback, - Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void GetModDependenciesAsync( - Modio::ModID ModID, - std::function Dependencies)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback)) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetModDependenciesOp(ModID, Modio::Detail::SDKSessionData::CurrentGameID()), Callback, - Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/SDKUserData.cpp b/Source/Modio/GeneratedSource/SDKUserData.cpp deleted file mode 100644 index 50fc9cad..00000000 --- a/Source/Modio/GeneratedSource/SDKUserData.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -#pragma once -// Implementation header - do not include directly - -#ifdef MODIO_SEPARATE_COMPILATION - #include "modio/ModioSDK.h" -#endif - -#include "modio/core/ModioCoreTypes.h" -#include "modio/detail/ops/AuthenticateUserByEmailOp.h" -#include "modio/detail/ops/RequestEmailAuthCodeOp.h" -#include "modio/detail/ops/auth/AuthenticateUserByDiscord.h" -#include "modio/detail/ops/auth/AuthenticateUserByGog.h" -#include "modio/detail/ops/auth/AuthenticateUserByItch.h" -#include "modio/detail/ops/auth/AuthenticateUserBySteam.h" -#include "modio/detail/ops/auth/AuthenticateUserBySwitchID.h" -#include "modio/detail/ops/auth/AuthenticateUserByXBoxLive.h" -#include "modio/detail/ops/auth/ModioGetTermsOfUseOp.h" -#include "modio/detail/ops/user/GetUserMediaOp.h" -#include "modio/impl/SDKPreconditionChecks.h" -#include "modio/userdata/ModioUserDataService.h" - -namespace Modio -{ - void RequestEmailAuthCodeAsync(Modio::EmailAddress EmailAddress, std::function Callback) - { - return asio::async_compose, void(Modio::ErrorCode)>( - Modio::Detail::RequestEmailAuthCodeOp(std::move(EmailAddress.InternalAddress)), Callback, - Modio::Detail::Services::GetGlobalContext().get_executor()); - } - - void GetTermsOfUseAsync(Modio::AuthenticationProvider Provider, Modio::Language Locale, - std::function Terms)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback)) - { - return asio::async_compose)>, void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetTermsOfUseOp(Provider, Locale), Callback, - Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void AuthenticateUserExternalAsync(Modio::AuthenticationParams User, Modio::AuthenticationProvider Provider, - std::function Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback) && - Modio::Detail::RequireUserIsNOTAuthenticated(Callback)) - { - switch (Provider) - { - // @todo: Add Epic when we support Epic - /*case AuthenticationProvider::Epic: - AuthenticateUserWithEpicAsync(User, Callback); - break;*/ - case AuthenticationProvider::GoG: - Modio::Detail::AuthenticateUserByGoGAsync(User, Callback); - break; - case AuthenticationProvider::Itch: - Modio::Detail::AuthenticateUserByItchAsync(User, Callback); - break; - case AuthenticationProvider::Steam: - Modio::Detail::AuthenticateUserBySteamAsync(User, Callback); - break; - case AuthenticationProvider::XboxLive: - Modio::Detail::AuthenticateUserByXBoxLiveAsync(User, Callback); - break; - case AuthenticationProvider::Switch: - Modio::Detail::AuthenticateUserBySwitchIDAsync(User, Callback); - break; - case AuthenticationProvider::Discord: - Modio::Detail::AuthenticateUserByDiscordAsync(User, Callback); - break; - } - } - } - - void AuthenticateUserEmailAsync(Modio::EmailAuthCode AuthenticationCode, - std::function Callback) - { - if (Modio::Detail::RequireUserIsNOTAuthenticated(Callback)) - { - return asio::async_compose, void(Modio::ErrorCode)>( - Modio::Detail::AuthenticateUserByEmailOp(AuthenticationCode), Callback, - Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - - void ClearUserDataAsync(std::function Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback) && - Modio::Detail::RequireUserIsAuthenticated(Callback)) - { - return Modio::Detail::Services::GetGlobalService().ClearUserDataAsync( - Callback); - } - } - - Modio::Optional QueryUserProfile() - { - return Modio::Detail::SDKSessionData::GetAuthenticatedUser(); - } - - void GetUserMediaAsync(Modio::AvatarSize AvatarSize, - std::function)> Callback) - { - if (Modio::Detail::RequireSDKIsInitialized(Callback) && Modio::Detail::RequireNotRateLimited(Callback) && - Modio::Detail::RequireUserIsAuthenticated(Callback)) - { - return asio::async_compose)>, - void(Modio::ErrorCode, Modio::Optional)>( - Modio::Detail::GetUserMediaOp(Modio::Detail::SDKSessionData::CurrentGameID(), - Modio::Detail::SDKSessionData::CurrentAPIKey(), AvatarSize), - Callback, Modio::Detail::Services::GetGlobalContext().get_executor()); - } - } - -} // namespace Modio diff --git a/Source/Modio/GeneratedSource/deflate_stream.cpp b/Source/Modio/GeneratedSource/deflate_stream.cpp deleted file mode 100644 index 5a0d175b..00000000 --- a/Source/Modio/GeneratedSource/deflate_stream.cpp +++ /dev/null @@ -1,2296 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -// -// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// Official repository: https://github.com/boostorg/beast -// -// This is a derivative work based on Zlib, copyright below: -/* - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef BOOST_BEAST_ZLIB_DETAIL_DEFLATE_STREAM_IPP -#define BOOST_BEAST_ZLIB_DETAIL_DEFLATE_STREAM_IPP - -#ifdef MODIO_SEPARATE_COMPILATION -#include "modio/detail/compression/zlib/deflate_stream.hpp" -#endif - -#include "modio/detail/compression/zlib/detail/ranges.hpp" - -#include -#include -#include - -namespace boost { -namespace beast { -namespace zlib { -namespace detail { - -/* - * ALGORITHM - * - * The "deflation" process depends on being able to identify portions - * of the input text which are identical to earlier input (within a - * sliding window trailing behind the input currently being processed). - * - * Each code tree is stored in a compressed form which is itself - * a Huffman encoding of the lengths of all the code strings (in - * ascending order by source values). The actual code strings are - * reconstructed from the lengths in the inflate process, as described - * in the deflate specification. - * - * The most straightforward technique turns out to be the fastest for - * most input files: try all possible matches and select the longest. - * The key feature of this algorithm is that insertions into the string - * dictionary are very simple and thus fast, and deletions are avoided - * completely. Insertions are performed at each input character, whereas - * string matches are performed only when the previous match ends. So it - * is preferable to spend more time in matches to allow very fast string - * insertions and avoid deletions. The matching algorithm for small - * strings is inspired from that of Rabin & Karp. A brute force approach - * is used to find longer strings when a small match has been found. - * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze - * (by Leonid Broukhis). - * A previous version of this file used a more sophisticated algorithm - * (by Fiala and Greene) which is guaranteed to run in linear amortized - * time, but has a larger average cost, uses more memory and is patented. - * However the F&G algorithm may be faster for some highly redundant - * files if the parameter max_chain_length (described below) is too large. - * - * ACKNOWLEDGEMENTS - * - * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and - * I found it in 'freeze' written by Leonid Broukhis. - * Thanks to many people for bug reports and testing. - * - * REFERENCES - * - * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". - * Available in http://tools.ietf.org/html/rfc1951 - * - * A description of the Rabin and Karp algorithm is given in the book - * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. - * - * Fiala,E.R., and Greene,D.H. - * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 - * - */ - -/* Generate the codes for a given tree and bit counts (which need not be optimal). - IN assertion: the array bl_count contains the bit length statistics for - the given tree and the field len is set for all tree elements. - OUT assertion: the field code is set for all tree elements of non - zero code length. -*/ -void -deflate_stream:: -gen_codes(ct_data *tree, int max_code, std::uint16_t *bl_count) -{ - std::uint16_t next_code[maxBits+1]; /* next code value for each bit length */ - std::uint16_t code = 0; /* running code value */ - int bits; /* bit index */ - int n; /* code index */ - - // The distribution counts are first used to - // generate the code values without bit reversal. - for(bits = 1; bits <= maxBits; bits++) - { - code = (code + bl_count[bits-1]) << 1; - next_code[bits] = code; - } - // Check that the bit counts in bl_count are consistent. - // The last code must be all ones. - assert(code + bl_count[maxBits]-1 == (1< - lut_type const& -{ - struct init - { - lut_type tables; - - init() - { - // number of codes at each bit length for an optimal tree - //std::uint16_t bl_count[maxBits+1]; - - // Initialize the mapping length (0..255) -> length code (0..28) - std::uint8_t length = 0; - for(std::uint8_t code = 0; code < lengthCodes-1; ++code) - { - tables.base_length[code] = length; - auto const run = 1U << tables.extra_lbits[code]; - for(unsigned n = 0; n < run; ++n) - tables.length_code[length++] = code; - } - assert(length == 0); - // Note that the length 255 (match length 258) can be represented - // in two different ways: code 284 + 5 bits or code 285, so we - // overwrite length_code[255] to use the best encoding: - tables.length_code[255] = lengthCodes-1; - - // Initialize the mapping dist (0..32K) -> dist code (0..29) - { - std::uint8_t code; - std::uint16_t dist = 0; - for(code = 0; code < 16; code++) - { - tables.base_dist[code] = dist; - auto const run = 1U << tables.extra_dbits[code]; - for(unsigned n = 0; n < run; ++n) - tables.dist_code[dist++] = code; - } - assert(dist == 256); - // from now on, all distances are divided by 128 - dist >>= 7; - for(; code < dCodes; ++code) - { - tables.base_dist[code] = dist << 7; - auto const run = 1U << (tables.extra_dbits[code]-7); - for(std::size_t n = 0; n < run; ++n) - tables.dist_code[256 + dist++] = code; - } - assert(dist == 256); - } - - // Construct the codes of the static literal tree - std::uint16_t bl_count[maxBits+1]; - std::memset(bl_count, 0, sizeof(bl_count)); - unsigned n = 0; - while (n <= 143) - tables.ltree[n++].dl = 8; - bl_count[8] += 144; - while (n <= 255) - tables.ltree[n++].dl = 9; - bl_count[9] += 112; - while (n <= 279) - tables.ltree[n++].dl = 7; - bl_count[7] += 24; - while (n <= 287) - tables.ltree[n++].dl = 8; - bl_count[8] += 8; - // Codes 286 and 287 do not exist, but we must include them in the tree - // construction to get a canonical Huffman tree (longest code all ones) - gen_codes(tables.ltree, lCodes+1, bl_count); - - for(n = 0; n < dCodes; ++n) - { - tables.dtree[n].dl = 5; - tables.dtree[n].fc = - static_cast(bi_reverse(n, 5)); - } - } - }; - static init const data; - return data.tables; -} - -void -deflate_stream:: -doReset( - int level, - int windowBits, - int memLevel, - Strategy strategy) -{ - if(level == default_size) - level = 6; - - // VFALCO What do we do about this? - // until 256-byte window bug fixed - if(windowBits == 8) - windowBits = 9; - - if(level < 0 || level > 9) - throw(std::invalid_argument{ - "invalid level"}); - - if(windowBits < 8 || windowBits > 15) - throw(std::invalid_argument{ - "invalid windowBits"}); - - if(memLevel < 1 || memLevel > max_mem_level) - throw(std::invalid_argument{ - "invalid memLevel"}); - - w_bits_ = windowBits; - - hash_bits_ = memLevel + 7; - - // 16K elements by default - lit_bufsize_ = 1 << (memLevel + 6); - - level_ = level; - strategy_ = strategy; - inited_ = false; -} - -void -deflate_stream:: -doReset() -{ - inited_ = false; -} - -void -deflate_stream:: -doClear() -{ - inited_ = false; - buf_.reset(); -} - -std::size_t -deflate_stream:: -doUpperBound(std::size_t sourceLen) const -{ - std::size_t complen; - std::size_t wraplen; - - /* conservative upper bound for compressed data */ - complen = sourceLen + - ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5; - - /* compute wrapper length */ - wraplen = 0; - - /* if not default parameters, return conservative bound */ - if(w_bits_ != 15 || hash_bits_ != 8 + 7) - return complen + wraplen; - - /* default settings: return tight bound for that case */ - return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + - (sourceLen >> 25) + 13 - 6 + wraplen; -} - -void -deflate_stream:: -doTune( - int good_length, - int max_lazy, - int nice_length, - int max_chain) -{ - good_match_ = good_length; - nice_match_ = nice_length; - max_lazy_match_ = max_lazy; - max_chain_length_ = max_chain; -} - -void -deflate_stream:: -doParams(z_params& zs, int level, Strategy strategy, Modio::ErrorCode& ec) -{ - compress_func func; - - if(level == default_size) - level = 6; - if(level < 0 || level > 9) - { - ec = Modio::make_error_code(Modio::ZlibError::StreamError); - return; - } - func = get_config(level_).func; - - if((strategy != strategy_ || func != get_config(level).func) && - zs.total_in != 0) - { - // Flush the last buffer: - doWrite(zs, Flush::block, ec); - if(ec == Modio::ZlibError::NeedBuffers && pending_ == 0) - ec = {}; - } - if(level_ != level) - { - level_ = level; - max_lazy_match_ = get_config(level).max_lazy; - good_match_ = get_config(level).good_length; - nice_match_ = get_config(level).nice_length; - max_chain_length_ = get_config(level).max_chain; - } - strategy_ = strategy; -} - -// VFALCO Modio::Optional param is a workaround for -// gcc "maybe uninitialized" warning -// https://github.com/boostorg/beast/issues/532 -// -void -deflate_stream:: -doWrite(z_params& zs, Modio::Optional flush, Modio::ErrorCode& ec) -{ - maybe_init(); - - if(zs.next_out == 0 || (zs.next_in == 0 && zs.avail_in != 0) || - (status_ == FINISH_STATE && flush != Flush::finish)) - { - ec = Modio::make_error_code(Modio::ZlibError::StreamError); - return; - } - if(zs.avail_out == 0) - { - ec = Modio::make_error_code(Modio::ZlibError::NeedBuffers); - return; - } - - // value of flush param for previous deflate call - auto old_flush = Modio::Optional { - last_flush_ ? *last_flush_ : Flush::none}; - - last_flush_ = flush; - - // Flush as much pending output as possible - if(pending_ != 0) - { - flush_pending(zs); - if(zs.avail_out == 0) - { - /* Since avail_out is 0, deflate will be called again with - * more output space, but possibly with both pending and - * avail_in equal to zero. There won't be anything to do, - * but this is not an error situation so make sure we - * return OK instead of BUF_ERROR at next call of deflate: - */ - last_flush_ = boost::beast::zlib::Flush::none; - return; - } - } - else if(zs.avail_in == 0 && ( - old_flush && flush <= *old_flush - ) && flush != Flush::finish) - { - /* Make sure there is something to do and avoid duplicate consecutive - * flushes. For repeated and useless calls with Flush::finish, we keep - * returning Z_STREAM_END instead of Z_BUF_ERROR. - */ - ec = Modio::make_error_code(Modio::ZlibError::NeedBuffers); - return; - } - - // User must not provide more input after the first FINISH: - if(status_ == FINISH_STATE && zs.avail_in != 0) - { - ec = Modio::make_error_code(Modio::ZlibError::NeedBuffers); - return; - } - - /* Start a new block or continue the current one. - */ - if(zs.avail_in != 0 || lookahead_ != 0 || - (flush != Flush::none && status_ != FINISH_STATE)) - { - block_state bstate; - - switch(strategy_) - { - case Strategy::huffman: - bstate = deflate_huff(zs, flush.value()); - break; - case Strategy::rle: - bstate = deflate_rle(zs, flush.value()); - break; - default: - { - bstate = (this->*(get_config(level_).func))(zs, flush.value()); - break; - } - } - - if(bstate == finish_started || bstate == finish_done) - { - status_ = FINISH_STATE; - } - if(bstate == need_more || bstate == finish_started) - { - if(zs.avail_out == 0) - { - last_flush_ = boost::beast::zlib::Flush::none; /* avoid BUF_ERROR next call, see above */ - } - return; - /* If flush != Flush::none && avail_out == 0, the next call - of deflate should use the same flush parameter to make sure - that the flush is complete. So we don't have to output an - empty block here, this will be done at next call. This also - ensures that for a very small output buffer, we emit at most - one empty block. - */ - } - if(bstate == block_done) - { - if(flush == Flush::partial) - { - tr_align(); - } - else if(flush != Flush::block) - { - /* FULL_FLUSH or SYNC_FLUSH */ - tr_stored_block((char*)0, 0L, 0); - /* For a full flush, this empty block will be recognized - * as a special marker by inflate_sync(). - */ - if(flush == Flush::full) - { - clear_hash(); // forget history - if(lookahead_ == 0) - { - strstart_ = 0; - block_start_ = 0L; - insert_ = 0; - } - } - } - flush_pending(zs); - if(zs.avail_out == 0) - { - last_flush_ = boost::beast::zlib::Flush::none; /* avoid BUF_ERROR at next call, see above */ - return; - } - } - } - - if(flush == Flush::finish) - { - ec = Modio::make_error_code(Modio::ZlibError::EndOfStream); - return; - } -} - -// VFALCO Warning: untested -void -deflate_stream:: -doDictionary(Byte const* dict, uInt dictLength, Modio::ErrorCode& ec) -{ - if(lookahead_) - { - ec = Modio::make_error_code(Modio::ZlibError::StreamError); - return; - } - - maybe_init(); - - /* if dict would fill window, just replace the history */ - if(dictLength >= w_size_) - { - clear_hash(); - strstart_ = 0; - block_start_ = 0L; - insert_ = 0; - dict += dictLength - w_size_; /* use the tail */ - dictLength = w_size_; - } - - /* insert dict into window and hash */ - z_params zs; - zs.avail_in = dictLength; - zs.next_in = (const Byte *)dict; - zs.avail_out = 0; - zs.next_out = 0; - fill_window(zs); - while(lookahead_ >= minMatch) - { - uInt str = strstart_; - uInt n = lookahead_ - (minMatch-1); - do - { - update_hash(ins_h_, window_[str + minMatch-1]); - prev_[str & w_mask_] = head_[ins_h_]; - head_[ins_h_] = (std::uint16_t)str; - str++; - } - while(--n); - strstart_ = str; - lookahead_ = minMatch-1; - fill_window(zs); - } - strstart_ += lookahead_; - block_start_ = (long)strstart_; - insert_ = lookahead_; - lookahead_ = 0; - match_length_ = prev_length_ = minMatch-1; - match_available_ = 0; -} - -void -deflate_stream:: -doPrime(int bits, int value, Modio::ErrorCode& ec) -{ - maybe_init(); - - if((Byte *)(d_buf_) < pending_out_ + ((Buf_size + 7) >> 3)) - { - ec = Modio::make_error_code(Modio::ZlibError::NeedBuffers); - return; - } - - do - { - int put = Buf_size - bi_valid_; - if(put > bits) - put = bits; - bi_buf_ |= (std::uint16_t)((value & ((1 << put) - 1)) << bi_valid_); - bi_valid_ += put; - tr_flush_bits(); - value >>= put; - bits -= put; - } - while(bits); -} - -void -deflate_stream:: -doPending(unsigned* value, int* bits) -{ - if(value != 0) - *value = pending_; - if(bits != 0) - *bits = bi_valid_; -} - -//-------------------------------------------------------------------------- - -// Do lazy initialization -void -deflate_stream:: -init() -{ - // Caller must set these: - // w_bits_ - // hash_bits_ - // lit_bufsize_ - // level_ - // strategy_ - - w_size_ = 1 << w_bits_; - w_mask_ = w_size_ - 1; - - hash_size_ = 1 << hash_bits_; - hash_mask_ = hash_size_ - 1; - hash_shift_ = ((hash_bits_+minMatch-1)/minMatch); - - auto const nwindow = w_size_ * 2*sizeof(Byte); - auto const nprev = w_size_ * sizeof(std::uint16_t); - auto const nhead = hash_size_ * sizeof(std::uint16_t); - auto const noverlay = lit_bufsize_ * (sizeof(std::uint16_t)+2); - auto const needed = nwindow + nprev + nhead + noverlay; - - if(! buf_ || buf_size_ != needed) - { - buf_ = std::make_unique< - std::uint8_t[]>(needed); - buf_size_ = needed; - } - - window_ = reinterpret_cast(buf_.get()); - prev_ = reinterpret_cast(buf_.get() + nwindow); - head_ = reinterpret_cast(buf_.get() + nwindow + nprev); - - /* We overlay pending_buf_ and d_buf_ + l_buf_. This works - since the average output size for(length, distance) - codes is <= 24 bits. - */ - auto overlay = reinterpret_cast( - buf_.get() + nwindow + nprev + nhead); - - // nothing written to window_ yet - high_water_ = 0; - - pending_buf_ = - reinterpret_cast(overlay); - pending_buf_size_ = - static_cast(lit_bufsize_) * - (sizeof(std::uint16_t) + 2L); - - d_buf_ = overlay + lit_bufsize_ / sizeof(std::uint16_t); - l_buf_ = pending_buf_ + (1 + sizeof(std::uint16_t)) * lit_bufsize_; - - pending_ = 0; - pending_out_ = pending_buf_; - - status_ = BUSY_STATE; - last_flush_ = Flush::none; - - tr_init(); - lm_init(); - - inited_ = true; -} - -/* Initialize the "longest match" routines for a new zlib stream -*/ -void -deflate_stream:: -lm_init() -{ - window_size_ = (std::uint32_t)2L*w_size_; - - clear_hash(); - - /* Set the default configuration parameters: - */ - // VFALCO TODO just copy the config struct - max_lazy_match_ = get_config(level_).max_lazy; - good_match_ = get_config(level_).good_length; - nice_match_ = get_config(level_).nice_length; - max_chain_length_ = get_config(level_).max_chain; - - strstart_ = 0; - block_start_ = 0L; - lookahead_ = 0; - insert_ = 0; - match_length_ = prev_length_ = minMatch-1; - match_available_ = 0; - ins_h_ = 0; -} - -// Initialize a new block. -// -void -deflate_stream:: -init_block() -{ - for(int n = 0; n < lCodes; n++) - dyn_ltree_[n].fc = 0; - for(int n = 0; n < dCodes; n++) - dyn_dtree_[n].fc = 0; - for(int n = 0; n < blCodes; n++) - bl_tree_[n].fc = 0; - dyn_ltree_[END_BLOCK].fc = 1; - opt_len_ = 0L; - static_len_ = 0L; - last_lit_ = 0; - matches_ = 0; -} - -/* Restore the heap property by moving down the tree starting at node k, - exchanging a node with the smallest of its two sons if necessary, - stopping when the heap property is re-established (each father smaller - than its two sons). -*/ -void -deflate_stream:: -pqdownheap( - ct_data const* tree, // the tree to restore - int k) // node to move down -{ - int v = heap_[k]; - int j = k << 1; // left son of k - while(j <= heap_len_) - { - // Set j to the smallest of the two sons: - if(j < heap_len_ && - smaller(tree, heap_[j+1], heap_[j])) - j++; - // Exit if v is smaller than both sons - if(smaller(tree, v, heap_[j])) - break; - - // Exchange v with the smallest son - heap_[k] = heap_[j]; - k = j; - - // And continue down the tree, - // setting j to the left son of k - j <<= 1; - } - heap_[k] = v; -} - -/* Remove the smallest element from the heap and recreate the heap - with one less element. Updates heap and heap_len. -*/ -void -deflate_stream:: -pqremove(ct_data const* tree, int& top) -{ - top = heap_[kSmallest]; - heap_[kSmallest] = heap_[heap_len_--]; - pqdownheap(tree, kSmallest); -} - -/* Compute the optimal bit lengths for a tree and update the total bit length - for the current block. - IN assertion: the fields freq and dad are set, heap[heap_max] and - above are the tree nodes sorted by increasing frequency. - OUT assertions: the field len is set to the optimal bit length, the - array bl_count contains the frequencies for each bit length. - The length opt_len is updated; static_len is also updated if stree is - not null. -*/ -void -deflate_stream:: -gen_bitlen(tree_desc *desc) -{ - ct_data *tree = desc->dyn_tree; - int max_code = desc->max_code; - ct_data const* stree = desc->stat_desc->static_tree; - std::uint8_t const *extra = desc->stat_desc->extra_bits; - int base = desc->stat_desc->extra_base; - int max_length = desc->stat_desc->max_length; - int h; // heap index - int n, m; // iterate over the tree elements - int bits; // bit length - int xbits; // extra bits - std::uint16_t f; // frequency - int overflow = 0; // number of elements with bit length too large - - std::fill(&bl_count_[0], &bl_count_[maxBits+1], std::uint16_t{0}); - - /* In a first pass, compute the optimal bit lengths (which may - * overflow in the case of the bit length tree). - */ - tree[heap_[heap_max_]].dl = 0; // root of the heap - - for(h = heap_max_+1; h < HEAP_SIZE; h++) { - n = heap_[h]; - bits = tree[tree[n].dl].dl + 1; - if(bits > max_length) bits = max_length, overflow++; - // We overwrite tree[n].dl which is no longer needed - tree[n].dl = (std::uint16_t)bits; - - if(n > max_code) - continue; // not a leaf node - - bl_count_[bits]++; - xbits = 0; - if(n >= base) - xbits = extra[n-base]; - f = tree[n].fc; - opt_len_ += (std::uint32_t)f * (bits + xbits); - if(stree) - static_len_ += (std::uint32_t)f * (stree[n].dl + xbits); - } - if(overflow == 0) - return; - - // Find the first bit length which could increase: - do - { - bits = max_length-1; - while(bl_count_[bits] == 0) - bits--; - bl_count_[bits]--; // move one leaf down the tree - bl_count_[bits+1] += 2; // move one overflow item as its brother - bl_count_[max_length]--; - /* The brother of the overflow item also moves one step up, - * but this does not affect bl_count[max_length] - */ - overflow -= 2; - } - while(overflow > 0); - - /* Now recompute all bit lengths, scanning in increasing frequency. - * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all - * lengths instead of fixing only the wrong ones. This idea is taken - * from 'ar' written by Haruhiko Okumura.) - */ - for(bits = max_length; bits != 0; bits--) - { - n = bl_count_[bits]; - while(n != 0) - { - m = heap_[--h]; - if(m > max_code) - continue; - if((unsigned) tree[m].dl != (unsigned) bits) - { - opt_len_ += ((long)bits - (long)tree[m].dl) *(long)tree[m].fc; - tree[m].dl = (std::uint16_t)bits; - } - n--; - } - } -} - -/* Construct one Huffman tree and assigns the code bit strings and lengths. - Update the total bit length for the current block. - IN assertion: the field freq is set for all tree elements. - OUT assertions: the fields len and code are set to the optimal bit length - and corresponding code. The length opt_len is updated; static_len is - also updated if stree is not null. The field max_code is set. -*/ -void -deflate_stream:: -build_tree(tree_desc *desc) -{ - ct_data *tree = desc->dyn_tree; - ct_data const* stree = desc->stat_desc->static_tree; - int elems = desc->stat_desc->elems; - int n, m; // iterate over heap elements - int max_code = -1; // largest code with non zero frequency - int node; // new node being created - - /* Construct the initial heap, with least frequent element in - * heap[kSmallest]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. - * heap[0] is not used. - */ - heap_len_ = 0; - heap_max_ = HEAP_SIZE; - - for(n = 0; n < elems; n++) - { - if(tree[n].fc != 0) - { - heap_[++(heap_len_)] = max_code = n; - depth_[n] = 0; - } - else - { - tree[n].dl = 0; - } - } - - /* The pkzip format requires that at least one distance code exists, - * and that at least one bit should be sent even if there is only one - * possible code. So to avoid special checks later on we force at least - * two codes of non zero frequency. - */ - while(heap_len_ < 2) - { - node = heap_[++(heap_len_)] = (max_code < 2 ? ++max_code : 0); - tree[node].fc = 1; - depth_[node] = 0; - opt_len_--; - if(stree) - static_len_ -= stree[node].dl; - // node is 0 or 1 so it does not have extra bits - } - desc->max_code = max_code; - - /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, - * establish sub-heaps of increasing lengths: - */ - for(n = heap_len_/2; n >= 1; n--) - pqdownheap(tree, n); - - /* Construct the Huffman tree by repeatedly combining the least two - * frequent nodes. - */ - node = elems; /* next internal node of the tree */ - do - { - pqremove(tree, n); /* n = node of least frequency */ - m = heap_[kSmallest]; /* m = node of next least frequency */ - - heap_[--(heap_max_)] = n; /* keep the nodes sorted by frequency */ - heap_[--(heap_max_)] = m; - - /* Create a new node father of n and m */ - tree[node].fc = tree[n].fc + tree[m].fc; - depth_[node] = (std::uint8_t)((depth_[n] >= depth_[m] ? - depth_[n] : depth_[m]) + 1); - tree[n].dl = tree[m].dl = (std::uint16_t)node; - /* and insert the new node in the heap */ - heap_[kSmallest] = node++; - pqdownheap(tree, kSmallest); - - } - while(heap_len_ >= 2); - - heap_[--(heap_max_)] = heap_[kSmallest]; - - /* At this point, the fields freq and dad are set. We can now - * generate the bit lengths. - */ - gen_bitlen((tree_desc *)desc); - - /* The field len is now set, we can generate the bit codes */ - gen_codes(tree, max_code, bl_count_); -} - -/* Scan a literal or distance tree to determine the frequencies - of the codes in the bit length tree. -*/ -void -deflate_stream:: -scan_tree( - ct_data *tree, // the tree to be scanned - int max_code) // and its largest code of non zero frequency -{ - int n; // iterates over all tree elements - int prevlen = -1; // last emitted length - int curlen = 0; // length of current code - int nextlen = tree[0].dl; // length of next code - std::uint16_t count = 0; // repeat count of the current code - int max_count = 7; // max repeat count - int min_count = 4; // min repeat count - - if(nextlen == 0) - { - max_count = 138; - min_count = 3; - } - tree[max_code+1].dl = (std::uint16_t)0xffff; // guard - - for(n = 0; n <= max_code; n++) - { - curlen = nextlen; nextlen = tree[n+1].dl; - if(++count < max_count && curlen == nextlen) - { - continue; - } - else if(count < min_count) - { - bl_tree_[curlen].fc += count; - } - else if(curlen != 0) - { - if(curlen != prevlen) bl_tree_[curlen].fc++; - bl_tree_[REP_3_6].fc++; - } - else if(count <= 10) - { - bl_tree_[REPZ_3_10].fc++; - } - else - { - bl_tree_[REPZ_11_138].fc++; - } - count = 0; - prevlen = curlen; - if(nextlen == 0) - { - max_count = 138; - min_count = 3; - } - else if(curlen == nextlen) - { - max_count = 6; - min_count = 3; - } - else - { - max_count = 7; - min_count = 4; - } - } -} - -/* Send a literal or distance tree in compressed form, - using the codes in bl_tree. -*/ -void -deflate_stream:: -send_tree( - ct_data *tree, // the tree to be scanned - int max_code) // and its largest code of non zero frequency -{ - int n; // iterates over all tree elements - int prevlen = -1; // last emitted length - int curlen; // length of current code - int nextlen = tree[0].dl; // length of next code - int count = 0; // repeat count of the current code - int max_count = 7; // max repeat count - int min_count = 4; // min repeat count - - // tree[max_code+1].dl = -1; // guard already set - if(nextlen == 0) - { - max_count = 138; - min_count = 3; - } - - for(n = 0; n <= max_code; n++) - { - curlen = nextlen; - nextlen = tree[n+1].dl; - if(++count < max_count && curlen == nextlen) - { - continue; - } - else if(count < min_count) - { - do - { - send_code(curlen, bl_tree_); - } - while (--count != 0); - } - else if(curlen != 0) - { - if(curlen != prevlen) - { - send_code(curlen, bl_tree_); - count--; - } - assert(count >= 3 && count <= 6); - send_code(REP_3_6, bl_tree_); - send_bits(count-3, 2); - } - else if(count <= 10) - { - send_code(REPZ_3_10, bl_tree_); - send_bits(count-3, 3); - } - else - { - send_code(REPZ_11_138, bl_tree_); - send_bits(count-11, 7); - } - count = 0; - prevlen = curlen; - if(nextlen == 0) - { - max_count = 138; - min_count = 3; - } - else if(curlen == nextlen) - { - max_count = 6; - min_count = 3; - } - else - { - max_count = 7; - min_count = 4; - } - } -} - -/* Construct the Huffman tree for the bit lengths and return - the index in bl_order of the last bit length code to send. -*/ -int -deflate_stream:: -build_bl_tree() -{ - int max_blindex; // index of last bit length code of non zero freq - - // Determine the bit length frequencies for literal and distance trees - scan_tree((ct_data *)dyn_ltree_, l_desc_.max_code); - scan_tree((ct_data *)dyn_dtree_, d_desc_.max_code); - - // Build the bit length tree: - build_tree((tree_desc *)(&(bl_desc_))); - /* opt_len now includes the length of the tree representations, except - * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. - */ - - /* Determine the number of bit length codes to send. The pkzip format - * requires that at least 4 bit length codes be sent. (appnote.txt says - * 3 but the actual value used is 4.) - */ - for(max_blindex = blCodes-1; max_blindex >= 3; max_blindex--) - { - if(bl_tree_[lut_.bl_order[max_blindex]].dl != 0) - break; - } - // Update opt_len to include the bit length tree and counts - opt_len_ += 3*(max_blindex+1) + 5+5+4; - return max_blindex; -} - -/* Send the header for a block using dynamic Huffman trees: the counts, - the lengths of the bit length codes, the literal tree and the distance - tree. - IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. -*/ -void -deflate_stream:: -send_all_trees( - int lcodes, - int dcodes, - int blcodes) // number of codes for each tree -{ - int rank; // index in bl_order - - assert(lcodes >= 257 && dcodes >= 1 && blcodes >= 4); - assert(lcodes <= lCodes && dcodes <= dCodes && blcodes <= blCodes); - send_bits(lcodes-257, 5); // not +255 as stated in appnote.txt - send_bits(dcodes-1, 5); - send_bits(blcodes-4, 4); // not -3 as stated in appnote.txt - for(rank = 0; rank < blcodes; rank++) - send_bits(bl_tree_[lut_.bl_order[rank]].dl, 3); - send_tree((ct_data *)dyn_ltree_, lcodes-1); // literal tree - send_tree((ct_data *)dyn_dtree_, dcodes-1); // distance tree -} - -/* Send the block data compressed using the given Huffman trees -*/ -void -deflate_stream:: -compress_block( - ct_data const* ltree, // literal tree - ct_data const* dtree) // distance tree -{ - unsigned dist; /* distance of matched string */ - int lc; /* match length or unmatched char (if dist == 0) */ - unsigned lx = 0; /* running index in l_buf */ - unsigned code; /* the code to send */ - int extra; /* number of extra bits to send */ - - if(last_lit_ != 0) - { - do - { - dist = d_buf_[lx]; - lc = l_buf_[lx++]; - if(dist == 0) - { - send_code(lc, ltree); /* send a literal byte */ - } - else - { - /* Here, lc is the match length - minMatch */ - code = lut_.length_code[lc]; - send_code(code+literals+1, ltree); /* send the length code */ - extra = lut_.extra_lbits[code]; - if(extra != 0) - { - lc -= lut_.base_length[code]; - send_bits(lc, extra); /* send the extra length bits */ - } - dist--; /* dist is now the match distance - 1 */ - code = d_code(dist); - assert(code < dCodes); - - send_code(code, dtree); /* send the distance code */ - extra = lut_.extra_dbits[code]; - if(extra != 0) - { - dist -= lut_.base_dist[code]; - send_bits(dist, extra); /* send the extra distance bits */ - } - } /* literal or match pair ? */ - - /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ - assert((uInt)(pending_) < lit_bufsize_ + 2*lx); - } - while(lx < last_lit_); - } - - send_code(END_BLOCK, ltree); -} - -/* Check if the data type is TEXT or BINARY, using the following algorithm: - - TEXT if the two conditions below are satisfied: - a) There are no non-portable control characters belonging to the - "black list" (0..6, 14..25, 28..31). - b) There is at least one printable character belonging to the - "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). - - BINARY otherwise. - - The following partially-portable control characters form a - "gray list" that is ignored in this detection algorithm: - (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). - IN assertion: the fields fc of dyn_ltree are set. -*/ -int -deflate_stream:: -detect_data_type() -{ - /* black_mask is the bit mask of black-listed bytes - * set bits 0..6, 14..25, and 28..31 - * 0xf3ffc07f = binary 11110011111111111100000001111111 - */ - unsigned long black_mask = 0xf3ffc07fUL; - int n; - - // Check for non-textual ("black-listed") bytes. - for(n = 0; n <= 31; n++, black_mask >>= 1) - if((black_mask & 1) && (dyn_ltree_[n].fc != 0)) - return binary; - - // Check for textual ("white-listed") bytes. */ - if(dyn_ltree_[9].fc != 0 || dyn_ltree_[10].fc != 0 - || dyn_ltree_[13].fc != 0) - return text; - for(n = 32; n < literals; n++) - if(dyn_ltree_[n].fc != 0) - return text; - - /* There are no "black-listed" or "white-listed" bytes: - * this stream either is empty or has tolerated ("gray-listed") bytes only. - */ - return binary; -} - -/* Flush the bit buffer and align the output on a byte boundary -*/ -void -deflate_stream:: -bi_windup() -{ - if(bi_valid_ > 8) - put_short(bi_buf_); - else if(bi_valid_ > 0) - put_byte((Byte)bi_buf_); - bi_buf_ = 0; - bi_valid_ = 0; -} - -/* Flush the bit buffer, keeping at most 7 bits in it. -*/ -void -deflate_stream:: -bi_flush() -{ - if(bi_valid_ == 16) - { - put_short(bi_buf_); - bi_buf_ = 0; - bi_valid_ = 0; - } - else if(bi_valid_ >= 8) - { - put_byte((Byte)bi_buf_); - bi_buf_ >>= 8; - bi_valid_ -= 8; - } -} - -/* Copy a stored block, storing first the length and its - one's complement if requested. -*/ -void -deflate_stream:: -copy_block( - char *buf, // the input data - unsigned len, // its length - int header) // true if block header must be written -{ - bi_windup(); // align on byte boundary - - if(header) - { - put_short((std::uint16_t)len); - put_short((std::uint16_t)~len); - } - // VFALCO Use memcpy? - while (len--) - put_byte(*buf++); -} - -//------------------------------------------------------------------------------ - -/* Initialize the tree data structures for a new zlib stream. -*/ -void -deflate_stream:: -tr_init() -{ - l_desc_.dyn_tree = dyn_ltree_; - l_desc_.stat_desc = &lut_.l_desc; - - d_desc_.dyn_tree = dyn_dtree_; - d_desc_.stat_desc = &lut_.d_desc; - - bl_desc_.dyn_tree = bl_tree_; - bl_desc_.stat_desc = &lut_.bl_desc; - - bi_buf_ = 0; - bi_valid_ = 0; - - // Initialize the first block of the first file: - init_block(); -} - -/* Send one empty static block to give enough lookahead for inflate. - This takes 10 bits, of which 7 may remain in the bit buffer. -*/ -void -deflate_stream:: -tr_align() -{ - send_bits(STATIC_TREES<<1, 3); - send_code(END_BLOCK, lut_.ltree); - bi_flush(); -} - -/* Flush the bits in the bit buffer to pending output (leaves at most 7 bits) -*/ -void -deflate_stream:: -tr_flush_bits() -{ - bi_flush(); -} - -/* Send a stored block -*/ -void -deflate_stream:: -tr_stored_block( - char *buf, // input block - std::uint32_t stored_len, // length of input block - int last) // one if this is the last block for a file -{ - send_bits((STORED_BLOCK<<1)+last, 3); // send block type - copy_block(buf, (unsigned)stored_len, 1); // with header -} - -void -deflate_stream:: -tr_tally_dist(std::uint16_t dist, std::uint8_t len, bool& flush) -{ - d_buf_[last_lit_] = dist; - l_buf_[last_lit_++] = len; - dist--; - dyn_ltree_[lut_.length_code[len]+literals+1].fc++; - dyn_dtree_[d_code(dist)].fc++; - flush = (last_lit_ == lit_bufsize_-1); -} - -void -deflate_stream:: -tr_tally_lit(std::uint8_t c, bool& flush) -{ - d_buf_[last_lit_] = 0; - l_buf_[last_lit_++] = c; - dyn_ltree_[c].fc++; - flush = (last_lit_ == lit_bufsize_-1); -} - -//------------------------------------------------------------------------------ - -/* Determine the best encoding for the current block: dynamic trees, - static trees or store, and output the encoded block to the zip file. -*/ -void -deflate_stream:: -tr_flush_block( - z_params& zs, - char *buf, // input block, or NULL if too old - std::uint32_t stored_len, // length of input block - int last) // one if this is the last block for a file -{ - std::uint32_t opt_lenb; - std::uint32_t static_lenb; // opt_len and static_len in bytes - int max_blindex = 0; // index of last bit length code of non zero freq - - // Build the Huffman trees unless a stored block is forced - if(level_ > 0) - { - // Check if the file is binary or text - if(zs.data_type == unknown) - zs.data_type = detect_data_type(); - - // Construct the literal and distance trees - build_tree((tree_desc *)(&(l_desc_))); - - build_tree((tree_desc *)(&(d_desc_))); - /* At this point, opt_len and static_len are the total bit lengths of - * the compressed block data, excluding the tree representations. - */ - - /* Build the bit length tree for the above two trees, and get the index - * in bl_order of the last bit length code to send. - */ - max_blindex = build_bl_tree(); - - /* Determine the best encoding. Compute the block lengths in bytes. */ - opt_lenb = (opt_len_+3+7)>>3; - static_lenb = (static_len_+3+7)>>3; - - if(static_lenb <= opt_lenb) - opt_lenb = static_lenb; - } - else - { - // VFALCO This assertion fails even in the original ZLib, - // happens with strategy == Z_HUFFMAN_ONLY, see: - // https://github.com/madler/zlib/issues/172 - - #if 0 - assert(buf); - #endif - opt_lenb = static_lenb = stored_len + 5; // force a stored block - } - -#ifdef FORCE_STORED - if(buf != (char*)0) { /* force stored block */ -#else - if(stored_len+4 <= opt_lenb && buf != (char*)0) { - /* 4: two words for the lengths */ -#endif - /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. - * Otherwise we can't have processed more than WSIZE input bytes since - * the last block flush, because compression would have been - * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to - * transform a block into a stored block. - */ - tr_stored_block(buf, stored_len, last); - -#ifdef FORCE_STATIC - } - else if(static_lenb >= 0) - { - // force static trees -#else - } - else if(strategy_ == Strategy::fixed || static_lenb == opt_lenb) - { -#endif - send_bits((STATIC_TREES<<1)+last, 3); - compress_block(lut_.ltree, lut_.dtree); - } - else - { - send_bits((DYN_TREES<<1)+last, 3); - send_all_trees(l_desc_.max_code+1, d_desc_.max_code+1, - max_blindex+1); - compress_block((const ct_data *)dyn_ltree_, - (const ct_data *)dyn_dtree_); - } - /* The above check is made mod 2^32, for files larger than 512 MB - * and std::size_t implemented on 32 bits. - */ - init_block(); - - if(last) - bi_windup(); -} - -void -deflate_stream:: -fill_window(z_params& zs) -{ - unsigned n, m; - unsigned more; // Amount of free space at the end of the window. - std::uint16_t *p; - uInt wsize = w_size_; - - do - { - more = (unsigned)(window_size_ - - (std::uint32_t)lookahead_ -(std::uint32_t)strstart_); - - // VFALCO We don't support systems below 32-bit - #if 0 - // Deal with !@#$% 64K limit: - if(sizeof(int) <= 2) - { - if(more == 0 && strstart_ == 0 && lookahead_ == 0) - { - more = wsize; - } - else if(more == (unsigned)(-1)) - { - /* Very unlikely, but possible on 16 bit machine if - * strstart == 0 && lookahead == 1 (input done a byte at time) - */ - more--; - } - } - #endif - - /* If the window is almost full and there is insufficient lookahead, - move the upper half to the lower one to make room in the upper half. - */ - if(strstart_ >= wsize+max_dist()) - { - std::memcpy(window_, window_+wsize, (unsigned)wsize); - match_start_ -= wsize; - strstart_ -= wsize; // we now have strstart >= max_dist - block_start_ -= (long) wsize; - - /* Slide the hash table (could be avoided with 32 bit values - at the expense of memory usage). We slide even when level == 0 - to keep the hash table consistent if we switch back to level > 0 - later. (Using level 0 permanently is not an optimal usage of - zlib, so we don't care about this pathological case.) - */ - n = hash_size_; - p = &head_[n]; - do - { - m = *--p; - *p = (std::uint16_t)(m >= wsize ? m-wsize : 0); - } - while(--n); - - n = wsize; - p = &prev_[n]; - do - { - m = *--p; - *p = (std::uint16_t)(m >= wsize ? m-wsize : 0); - /* If n is not on any hash chain, prev[n] is garbage but - its value will never be used. - */ - } - while(--n); - more += wsize; - } - if(zs.avail_in == 0) - break; - - /* If there was no sliding: - strstart <= WSIZE+max_dist-1 && lookahead <= kMinLookahead - 1 && - more == window_size - lookahead - strstart - => more >= window_size - (kMinLookahead-1 + WSIZE + max_dist-1) - => more >= window_size - 2*WSIZE + 2 - In the BIG_MEM or MMAP case (not yet supported), - window_size == input_size + kMinLookahead && - strstart + lookahead_ <= input_size => more >= kMinLookahead. - Otherwise, window_size == 2*WSIZE so more >= 2. - If there was sliding, more >= WSIZE. So in all cases, more >= 2. - */ - n = read_buf(zs, window_ + strstart_ + lookahead_, more); - lookahead_ += n; - - // Initialize the hash value now that we have some input: - if(lookahead_ + insert_ >= minMatch) - { - uInt str = strstart_ - insert_; - ins_h_ = window_[str]; - update_hash(ins_h_, window_[str + 1]); - while(insert_) - { - update_hash(ins_h_, window_[str + minMatch-1]); - prev_[str & w_mask_] = head_[ins_h_]; - head_[ins_h_] = (std::uint16_t)str; - str++; - insert_--; - if(lookahead_ + insert_ < minMatch) - break; - } - } - /* If the whole input has less than minMatch bytes, ins_h is garbage, - but this is not important since only literal bytes will be emitted. - */ - } - while(lookahead_ < kMinLookahead && zs.avail_in != 0); - - /* If the kWinInit bytes after the end of the current data have never been - written, then zero those bytes in order to avoid memory check reports of - the use of uninitialized (or uninitialised as Julian writes) bytes by - the longest match routines. Update the high water mark for the next - time through here. kWinInit is set to maxMatch since the longest match - routines allow scanning to strstart + maxMatch, ignoring lookahead. - */ - if(high_water_ < window_size_) - { - std::uint32_t curr = strstart_ + (std::uint32_t)(lookahead_); - std::uint32_t winit; - - if(high_water_ < curr) - { - /* Previous high water mark below current data -- zero kWinInit - bytes or up to end of window, whichever is less. - */ - winit = window_size_ - curr; - if(winit > kWinInit) - winit = kWinInit; - std::memset(window_ + curr, 0, (unsigned)winit); - high_water_ = curr + winit; - } - else if(high_water_ < (std::uint32_t)curr + kWinInit) - { - /* High water mark at or above current data, but below current data - plus kWinInit -- zero out to current data plus kWinInit, or up - to end of window, whichever is less. - */ - winit = (std::uint32_t)curr + kWinInit - high_water_; - if(winit > window_size_ - high_water_) - winit = window_size_ - high_water_; - std::memset(window_ + high_water_, 0, (unsigned)winit); - high_water_ += winit; - } - } -} - -/* Flush as much pending output as possible. All write() output goes - through this function so some applications may wish to modify it - to avoid allocating a large strm->next_out buffer and copying into it. - (See also read_buf()). -*/ -void -deflate_stream:: -flush_pending(z_params& zs) -{ - tr_flush_bits(); - auto len = clamp(pending_, zs.avail_out); - if(len == 0) - return; - - std::memcpy(zs.next_out, pending_out_, len); - zs.next_out = - static_cast(zs.next_out) + len; - pending_out_ += len; - zs.total_out += len; - zs.avail_out -= len; - pending_ -= len; - if(pending_ == 0) - pending_out_ = pending_buf_; -} - -/* Flush the current block, with given end-of-file flag. - IN assertion: strstart is set to the end of the current match. -*/ -void -deflate_stream:: -flush_block(z_params& zs, bool last) -{ - tr_flush_block(zs, - (block_start_ >= 0L ? - (char *)&window_[(unsigned)block_start_] : - (char *)0), - (std::uint32_t)((long)strstart_ - block_start_), - last); - block_start_ = strstart_; - flush_pending(zs); -} - -/* Read a new buffer from the current input stream, update the adler32 - and total number of bytes read. All write() input goes through - this function so some applications may wish to modify it to avoid - allocating a large strm->next_in buffer and copying from it. - (See also flush_pending()). -*/ -int -deflate_stream:: -read_buf(z_params& zs, Byte *buf, unsigned size) -{ - auto len = clamp(zs.avail_in, size); - if(len == 0) - return 0; - - zs.avail_in -= len; - - std::memcpy(buf, zs.next_in, len); - zs.next_in = static_cast< - std::uint8_t const*>(zs.next_in) + len; - zs.total_in += len; - return (int)len; -} - -/* Set match_start to the longest match starting at the given string and - return its length. Matches shorter or equal to prev_length are discarded, - in which case the result is equal to prev_length and match_start is - garbage. - IN assertions: cur_match is the head of the hash chain for the current - string (strstart) and its distance is <= max_dist, and prev_length >= 1 - OUT assertion: the match length is not greater than s->lookahead_. - - For 80x86 and 680x0, an optimized version will be provided in match.asm or - match.S. The code will be functionally equivalent. -*/ -uInt -deflate_stream:: -longest_match(IPos cur_match) -{ - unsigned chain_length = max_chain_length_;/* max hash chain length */ - Byte *scan = window_ + strstart_; /* current string */ - Byte *match; /* matched string */ - int len; /* length of current match */ - int best_len = prev_length_; /* best match length so far */ - int nice_match = nice_match_; /* stop if match long enough */ - IPos limit = strstart_ > (IPos)max_dist() ? - strstart_ - (IPos)max_dist() : 0; - /* Stop when cur_match becomes <= limit. To simplify the code, - * we prevent matches with the string of window index 0. - */ - std::uint16_t *prev = prev_; - uInt wmask = w_mask_; - - Byte *strend = window_ + strstart_ + maxMatch; - Byte scan_end1 = scan[best_len-1]; - Byte scan_end = scan[best_len]; - - /* The code is optimized for HASH_BITS >= 8 and maxMatch-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - assert(hash_bits_ >= 8 && maxMatch == 258); - - /* Do not waste too much time if we already have a good match: */ - if(prev_length_ >= good_match_) { - chain_length >>= 2; - } - /* Do not look for matches beyond the end of the input. This is necessary - * to make deflate deterministic. - */ - if((uInt)nice_match > lookahead_) - nice_match = lookahead_; - - assert((std::uint32_t)strstart_ <= window_size_-kMinLookahead); - - do { - assert(cur_match < strstart_); - match = window_ + cur_match; - - /* Skip to next match if the match length cannot increase - * or if the match length is less than 2. Note that the checks below - * for insufficient lookahead only occur occasionally for performance - * reasons. Therefore uninitialized memory will be accessed, and - * conditional jumps will be made that depend on those values. - * However the length of the match is limited to the lookahead, so - * the output of deflate is not affected by the uninitialized values. - */ - if( match[best_len] != scan_end || - match[best_len-1] != scan_end1 || - *match != *scan || - *++match != scan[1]) - continue; - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2, match++; - assert(*scan == *match); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do - { - } - while( *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - scan < strend); - - assert(scan <= window_+(unsigned)(window_size_-1)); - - len = maxMatch - (int)(strend - scan); - scan = strend - maxMatch; - - if(len > best_len) { - match_start_ = cur_match; - best_len = len; - if(len >= nice_match) break; - scan_end1 = scan[best_len-1]; - scan_end = scan[best_len]; - } - } - while((cur_match = prev[cur_match & wmask]) > limit - && --chain_length != 0); - - if((uInt)best_len <= lookahead_) - return (uInt)best_len; - return lookahead_; -} - -//------------------------------------------------------------------------------ - -/* Copy without compression as much as possible from the input stream, return - the current block state. - This function does not insert new strings in the dictionary since - uncompressible data is probably not useful. This function is used - only for the level=0 compression option. - NOTE: this function should be optimized to avoid extra copying from - window to pending_buf. -*/ -auto -deflate_stream:: -f_stored(z_params& zs, Flush flush) -> - block_state -{ - /* Stored blocks are limited to 0xffff bytes, pending_buf is limited - * to pending_buf_size, and each stored block has a 5 byte header: - */ - std::uint32_t max_block_size = 0xffff; - std::uint32_t max_start; - - if(max_block_size > pending_buf_size_ - 5) { - max_block_size = pending_buf_size_ - 5; - } - - /* Copy as much as possible from input to output: */ - for(;;) { - /* Fill the window as much as possible: */ - if(lookahead_ <= 1) { - - assert(strstart_ < w_size_+max_dist() || - block_start_ >= (long)w_size_); - - fill_window(zs); - if(lookahead_ == 0 && flush == Flush::none) - return need_more; - - if(lookahead_ == 0) break; /* flush the current block */ - } - assert(block_start_ >= 0L); - - strstart_ += lookahead_; - lookahead_ = 0; - - /* Emit a stored block if pending_buf will be full: */ - max_start = block_start_ + max_block_size; - if(strstart_ == 0 || (std::uint32_t)strstart_ >= max_start) { - /* strstart == 0 is possible when wraparound on 16-bit machine */ - lookahead_ = (uInt)(strstart_ - max_start); - strstart_ = (uInt)max_start; - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - /* Flush if we may have to slide, otherwise block_start may become - * negative and the data will be gone: - */ - if(strstart_ - (uInt)block_start_ >= max_dist()) { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - } - insert_ = 0; - if(flush == Flush::finish) - { - flush_block(zs, true); - if(zs.avail_out == 0) - return finish_started; - return finish_done; - } - if((long)strstart_ > block_start_) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - return block_done; -} - -/* Compress as much as possible from the input stream, return the current - block state. - This function does not perform lazy evaluation of matches and inserts - new strings in the dictionary only for unmatched strings or for short - matches. It is used only for the fast compression options. -*/ -auto -deflate_stream:: -f_fast(z_params& zs, Flush flush) -> - block_state -{ - IPos hash_head; /* head of the hash chain */ - bool bflush; /* set if current block must be flushed */ - - for(;;) - { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need maxMatch bytes - * for the next match, plus minMatch bytes to insert the - * string following the next match. - */ - if(lookahead_ < kMinLookahead) - { - fill_window(zs); - if(lookahead_ < kMinLookahead && flush == Flush::none) - return need_more; - if(lookahead_ == 0) - break; /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = 0; - if(lookahead_ >= minMatch) { - insert_string(hash_head); - } - - /* Find the longest match, discarding those <= prev_length. - * At this point we have always match_length < minMatch - */ - if(hash_head != 0 && strstart_ - hash_head <= max_dist()) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - match_length_ = longest_match (hash_head); - /* longest_match() sets match_start */ - } - if(match_length_ >= minMatch) - { - tr_tally_dist(static_cast(strstart_ - match_start_), - static_cast(match_length_ - minMatch), bflush); - - lookahead_ -= match_length_; - - /* Insert new strings in the hash table only if the match length - * is not too large. This saves time but degrades compression. - */ - if(match_length_ <= max_lazy_match_ && - lookahead_ >= minMatch) { - match_length_--; /* string at strstart already in table */ - do - { - strstart_++; - insert_string(hash_head); - /* strstart never exceeds WSIZE-maxMatch, so there are - * always minMatch bytes ahead. - */ - } - while(--match_length_ != 0); - strstart_++; - } - else - { - strstart_ += match_length_; - match_length_ = 0; - ins_h_ = window_[strstart_]; - update_hash(ins_h_, window_[strstart_+1]); - /* If lookahead < minMatch, ins_h is garbage, but it does not - * matter since it will be recomputed at next deflate call. - */ - } - } - else - { - /* No match, output a literal byte */ - tr_tally_lit(window_[strstart_], bflush); - lookahead_--; - strstart_++; - } - if(bflush) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - } - insert_ = strstart_ < minMatch-1 ? strstart_ : minMatch-1; - if(flush == Flush::finish) - { - flush_block(zs, true); - if(zs.avail_out == 0) - return finish_started; - return finish_done; - } - if(last_lit_) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - return block_done; -} - -/* Same as above, but achieves better compression. We use a lazy - evaluation for matches: a match is finally adopted only if there is - no better match at the next window position. -*/ -auto -deflate_stream:: -f_slow(z_params& zs, Flush flush) -> - block_state -{ - IPos hash_head; /* head of hash chain */ - bool bflush; /* set if current block must be flushed */ - - /* Process the input block. */ - for(;;) - { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need maxMatch bytes - * for the next match, plus minMatch bytes to insert the - * string following the next match. - */ - if(lookahead_ < kMinLookahead) - { - fill_window(zs); - if(lookahead_ < kMinLookahead && flush == Flush::none) - return need_more; - if(lookahead_ == 0) - break; /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - hash_head = 0; - if(lookahead_ >= minMatch) - insert_string(hash_head); - - /* Find the longest match, discarding those <= prev_length. - */ - prev_length_ = match_length_, prev_match_ = match_start_; - match_length_ = minMatch-1; - - if(hash_head != 0 && prev_length_ < max_lazy_match_ && - strstart_ - hash_head <= max_dist()) - { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - match_length_ = longest_match(hash_head); - /* longest_match() sets match_start */ - - if(match_length_ <= 5 && (strategy_ == Strategy::filtered - || (match_length_ == minMatch && - strstart_ - match_start_ > kTooFar) - )) - { - /* If prev_match is also minMatch, match_start is garbage - * but we will ignore the current match anyway. - */ - match_length_ = minMatch-1; - } - } - /* If there was a match at the previous step and the current - * match is not better, output the previous match: - */ - if(prev_length_ >= minMatch && match_length_ <= prev_length_) - { - /* Do not insert strings in hash table beyond this. */ - uInt max_insert = strstart_ + lookahead_ - minMatch; - - tr_tally_dist( - static_cast(strstart_ -1 - prev_match_), - static_cast(prev_length_ - minMatch), bflush); - - /* Insert in hash table all strings up to the end of the match. - * strstart-1 and strstart are already inserted. If there is not - * enough lookahead, the last two strings are not inserted in - * the hash table. - */ - lookahead_ -= prev_length_-1; - prev_length_ -= 2; - do { - if(++strstart_ <= max_insert) - insert_string(hash_head); - } - while(--prev_length_ != 0); - match_available_ = 0; - match_length_ = minMatch-1; - strstart_++; - - if(bflush) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - - } - else if(match_available_) - { - /* If there was no match at the previous position, output a - * single literal. If there was a match but the current match - * is longer, truncate the previous match to a single literal. - */ - tr_tally_lit(window_[strstart_-1], bflush); - if(bflush) - flush_block(zs, false); - strstart_++; - lookahead_--; - if(zs.avail_out == 0) - return need_more; - } - else - { - /* There is no previous match to compare with, wait for - * the next step to decide. - */ - match_available_ = 1; - strstart_++; - lookahead_--; - } - } - assert(flush != Flush::none); - if(match_available_) - { - tr_tally_lit(window_[strstart_-1], bflush); - match_available_ = 0; - } - insert_ = strstart_ < minMatch-1 ? strstart_ : minMatch-1; - if(flush == Flush::finish) - { - flush_block(zs, true); - if(zs.avail_out == 0) - return finish_started; - return finish_done; - } - if(last_lit_) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - return block_done; -} - -/* For Strategy::rle, simply look for runs of bytes, generate matches only of distance - one. Do not maintain a hash table. (It will be regenerated if this run of - deflate switches away from Strategy::rle.) -*/ -auto -deflate_stream:: -f_rle(z_params& zs, Flush flush) -> - block_state -{ - bool bflush; // set if current block must be flushed - uInt prev; // byte at distance one to match - Byte *scan, *strend; // scan goes up to strend for length of run - - for(;;) - { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need maxMatch bytes - * for the longest run, plus one for the unrolled loop. - */ - if(lookahead_ <= maxMatch) { - fill_window(zs); - if(lookahead_ <= maxMatch && flush == Flush::none) { - return need_more; - } - if(lookahead_ == 0) break; /* flush the current block */ - } - - /* See how many times the previous byte repeats */ - match_length_ = 0; - if(lookahead_ >= minMatch && strstart_ > 0) { - scan = window_ + strstart_ - 1; - prev = *scan; - if(prev == *++scan && prev == *++scan && prev == *++scan) { - strend = window_ + strstart_ + maxMatch; - do { - } while(prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - prev == *++scan && prev == *++scan && - scan < strend); - match_length_ = maxMatch - (int)(strend - scan); - if(match_length_ > lookahead_) - match_length_ = lookahead_; - } - assert(scan <= window_+(uInt)(window_size_-1)); - } - - /* Emit match if have run of minMatch or longer, else emit literal */ - if(match_length_ >= minMatch) { - tr_tally_dist(std::uint16_t{1}, - static_cast(match_length_ - minMatch), - bflush); - - lookahead_ -= match_length_; - strstart_ += match_length_; - match_length_ = 0; - } else { - /* No match, output a literal byte */ - tr_tally_lit(window_[strstart_], bflush); - lookahead_--; - strstart_++; - } - if(bflush) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - } - insert_ = 0; - if(flush == Flush::finish) - { - flush_block(zs, true); - if(zs.avail_out == 0) - return finish_started; - return finish_done; - } - if(last_lit_) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - return block_done; -} - -/* =========================================================================== - * For Strategy::huffman, do not look for matches. Do not maintain a hash table. - * (It will be regenerated if this run of deflate switches away from Huffman.) - */ -auto -deflate_stream:: -f_huff(z_params& zs, Flush flush) -> - block_state -{ - bool bflush; // set if current block must be flushed - - for(;;) - { - // Make sure that we have a literal to write. - if(lookahead_ == 0) - { - fill_window(zs); - if(lookahead_ == 0) - { - if(flush == Flush::none) - return need_more; - break; // flush the current block - } - } - - // Output a literal byte - match_length_ = 0; - tr_tally_lit(window_[strstart_], bflush); - lookahead_--; - strstart_++; - if(bflush) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - } - insert_ = 0; - if(flush == Flush::finish) - { - flush_block(zs, true); - if(zs.avail_out == 0) - return finish_started; - return finish_done; - } - if(last_lit_) - { - flush_block(zs, false); - if(zs.avail_out == 0) - return need_more; - } - return block_done; -} - -} // detail -} // zlib -} // beast -} // boost - -#endif diff --git a/Source/Modio/GeneratedSource/inflate_stream.cpp b/Source/Modio/GeneratedSource/inflate_stream.cpp deleted file mode 100644 index f5f5f8cd..00000000 --- a/Source/Modio/GeneratedSource/inflate_stream.cpp +++ /dev/null @@ -1,1129 +0,0 @@ -/* - * Copyright (C) 2021 mod.io Pty Ltd. - * - * This file is part of the mod.io SDK. - * - * Distributed under the MIT License. (See accompanying file LICENSE or - * view online at ) - * - */ - -// -// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// Official repository: https://github.com/boostorg/beast -// -// This is a derivative work based on Zlib, copyright below: -/* - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ - -#ifndef BOOST_BEAST_ZLIB_DETAIL_INFLATE_STREAM_IPP -#define BOOST_BEAST_ZLIB_DETAIL_INFLATE_STREAM_IPP - -#ifdef MODIO_SEPARATE_COMPILATION -#include "modio/detail/compression/zlib/detail/inflate_stream.hpp" -#endif - -#include "modio/core/ModioErrorCode.h" -#include - -namespace boost { -namespace beast { -namespace zlib { -namespace detail { - -void -inflate_stream:: -doClear() -{ -} - -void -inflate_stream:: -doReset(int windowBits) -{ - if(windowBits < 8 || windowBits > 15) - throw(std::domain_error{ - "windowBits out of range"}); - w_.reset(windowBits); - - bi_.flush(); - mode_ = HEAD; - last_ = 0; - dmax_ = 32768U; - lencode_ = codes_; - distcode_ = codes_; - next_ = codes_; - back_ = -1; -} - -void -inflate_stream:: -doWrite(z_params& zs, Flush flush, Modio::ErrorCode& ec) -{ - ranges r; - r.in.first = static_cast< - std::uint8_t const*>(zs.next_in); - r.in.last = r.in.first + zs.avail_in; - r.in.next = r.in.first; - r.out.first = static_cast< - std::uint8_t*>(zs.next_out); - r.out.last = r.out.first + zs.avail_out; - r.out.next = r.out.first; - - auto const done = - [&] - { - /* - Return from inflate(), updating the total counts and the check value. - If there was no progress during the inflate() call, return a buffer - error. Call updatewindow() to create and/or update the window state. - Note: a memory error from inflate() is non-recoverable. - */ - - - // VFALCO TODO Don't allocate update the window unless necessary - if(/*wsize_ ||*/ (r.out.used() && mode_ < BAD && - (mode_ < CHECK || flush != Flush::finish))) - w_.write(r.out.first, r.out.used()); - - zs.next_in = r.in.next; - zs.avail_in = r.in.avail(); - zs.next_out = r.out.next; - zs.avail_out = r.out.avail(); - zs.total_in += r.in.used(); - zs.total_out += r.out.used(); - zs.data_type = bi_.size() + (last_ ? 64 : 0) + - (mode_ == TYPE ? 128 : 0) + - (mode_ == LEN_ || mode_ == COPY_ ? 256 : 0); - - if(((! r.in.used() && ! r.out.used()) || - flush == Flush::finish) && ! ec) - ec = Modio::make_error_code(Modio::ZlibError::NeedBuffers); - }; - auto const err = - [&](Modio::ErrorCode e) - { - ec = e; - mode_ = BAD; - }; - - if(mode_ == TYPE) - mode_ = TYPEDO; - - for(;;) - { - switch(mode_) - { - case HEAD: - mode_ = TYPEDO; - break; - - case TYPE: - if(flush == Flush::block || flush == Flush::trees) - return done(); - // fall through - - case TYPEDO: - { - if(last_) - { - bi_.flush_byte(); - mode_ = CHECK; - break; - } - if(! bi_.fill(3, r.in.next, r.in.last)) - return done(); - std::uint8_t v; - bi_.read(v, 1); - last_ = v != 0; - bi_.read(v, 2); - switch(v) - { - case 0: - // uncompressed block - mode_ = STORED; - break; - case 1: - // fixed Huffman table - fixedTables(); - mode_ = LEN_; /* decode codes */ - if(flush == Flush::trees) - return done(); - break; - case 2: - // dynamic Huffman table - mode_ = TABLE; - break; - - default: - return err(Modio::make_error_code(Modio::ZlibError::InvalidBlockType)); - } - break; - } - - case STORED: - { - bi_.flush_byte(); - std::uint32_t v; - if(! bi_.fill(32, r.in.next, r.in.last)) - return done(); - bi_.peek(v, 32); - length_ = v & 0xffff; - if(length_ != ((v >> 16) ^ 0xffff)) - return err(Modio::make_error_code(Modio::ZlibError::InvalidStoredLength)); - // flush instead of read, otherwise - // undefined right shift behavior. - bi_.flush(); - mode_ = COPY_; - if(flush == Flush::trees) - return done(); - - } - - case COPY_: - mode_ = COPY; - - case COPY: - { - auto copy = length_; - if(copy == 0) - { - mode_ = TYPE; - break; - } - copy = clamp(copy, r.in.avail()); - copy = clamp(copy, r.out.avail()); - if(copy == 0) - return done(); - std::memcpy(r.out.next, r.in.next, copy); - r.in.next += copy; - r.out.next += copy; - length_ -= copy; - break; - } - - case TABLE: - if(! bi_.fill(5 + 5 + 4, r.in.next, r.in.last)) - return done(); - bi_.read(nlen_, 5); - nlen_ += 257; - bi_.read(ndist_, 5); - ndist_ += 1; - bi_.read(ncode_, 4); - ncode_ += 4; - if(nlen_ > 286 || ndist_ > 30) - return err(Modio::make_error_code(Modio::ZlibError::TooManySymbols)); - have_ = 0; - mode_ = LENLENS; - - - case LENLENS: - { - static std::array constexpr order = {{ - 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}}; - while(have_ < ncode_) - { - if(! bi_.fill(3, r.in.next, r.in.last)) - return done(); - bi_.read(lens_[order[have_]], 3); - ++have_; - } - while(have_ < order.size()) - lens_[order[have_++]] = 0; - - next_ = &codes_[0]; - lencode_ = next_; - lenbits_ = 7; - inflate_table(build::codes, &lens_[0], - order.size(), &next_, &lenbits_, work_, ec); - if(ec) - { - mode_ = BAD; - break; - } - have_ = 0; - mode_ = CODELENS; - - } - - case CODELENS: - { - while(have_ < nlen_ + ndist_) - { - std::uint16_t v; - if(! bi_.fill(lenbits_, r.in.next, r.in.last)) - return done(); - bi_.peek(v, lenbits_); - auto cp = &lencode_[v]; - if(cp->val < 16) - { - bi_.drop(cp->bits); - lens_[have_++] = cp->val; - } - else - { - std::uint16_t len; - std::uint16_t copy; - if(cp->val == 16) - { - if(! bi_.fill(cp->bits + 2, r.in.next, r.in.last)) - return done(); - bi_.drop(cp->bits); - if(have_ == 0) - return err(Modio::make_error_code(Modio::ZlibError::InvalidBitLengthRepeat)); - bi_.read(copy, 2); - len = lens_[have_ - 1]; - copy += 3; - - } - else if(cp->val == 17) - { - if(! bi_.fill(cp->bits + 3, r.in.next, r.in.last)) - return done(); - bi_.drop(cp->bits); - bi_.read(copy, 3); - len = 0; - copy += 3; - } - else - { - if(! bi_.fill(cp->bits + 7, r.in.next, r.in.last)) - return done(); - bi_.drop(cp->bits); - bi_.read(copy, 7); - len = 0; - copy += 11; - } - if(have_ + copy > nlen_ + ndist_) - return err(Modio::make_error_code(Modio::ZlibError::InvalidBitLengthRepeat)); - std::fill(&lens_[have_], &lens_[have_ + copy], len); - have_ += copy; - copy = 0; - } - } - // handle error breaks in while - if(mode_ == BAD) - break; - // check for end-of-block code (better have one) - if(lens_[256] == 0) - return err(Modio::make_error_code(Modio::ZlibError::MissingEOB)); - /* build code tables -- note: do not change the lenbits or distbits - values here (9 and 6) without reading the comments in inftrees.hpp - concerning the kEnough constants, which depend on those values */ - next_ = &codes_[0]; - lencode_ = next_; - lenbits_ = 9; - inflate_table(build::lens, &lens_[0], - nlen_, &next_, &lenbits_, work_, ec); - if(ec) - { - mode_ = BAD; - return; - } - distcode_ = next_; - distbits_ = 6; - inflate_table(build::dists, lens_ + nlen_, - ndist_, &next_, &distbits_, work_, ec); - if(ec) - { - mode_ = BAD; - return; - } - mode_ = LEN_; - if(flush == Flush::trees) - return done(); - - } - - case LEN_: - mode_ = LEN; - - - case LEN: - { - if(r.in.avail() >= 6 && r.out.avail() >= 258) - { - inflate_fast(r, ec); - if(ec) - { - mode_ = BAD; - return; - } - if(mode_ == TYPE) - back_ = -1; - break; - } - if(! bi_.fill(lenbits_, r.in.next, r.in.last)) - return done(); - std::uint16_t v; - back_ = 0; - bi_.peek(v, lenbits_); - auto cp = &lencode_[v]; - if(cp->op && (cp->op & 0xf0) == 0) - { - auto prev = cp; - if(! bi_.fill(prev->bits + prev->op, r.in.next, r.in.last)) - return done(); - bi_.peek(v, prev->bits + prev->op); - cp = &lencode_[prev->val + (v >> prev->bits)]; - bi_.drop(prev->bits + cp->bits); - back_ += prev->bits + cp->bits; - } - else - { - bi_.drop(cp->bits); - back_ += cp->bits; - } - length_ = cp->val; - if(cp->op == 0) - { - mode_ = LIT; - break; - } - if(cp->op & 32) - { - back_ = -1; - mode_ = TYPE; - break; - } - if(cp->op & 64) - return err(Modio::make_error_code(Modio::ZlibError::InvalidLiteralLength)); - extra_ = cp->op & 15; - mode_ = LENEXT; - - } - - case LENEXT: - if(extra_) - { - if(! bi_.fill(extra_, r.in.next, r.in.last)) - return done(); - std::uint16_t v; - bi_.read(v, extra_); - length_ += v; - back_ += extra_; - } - was_ = length_; - mode_ = DIST; - - - case DIST: - { - if(! bi_.fill(distbits_, r.in.next, r.in.last)) - return done(); - std::uint16_t v; - bi_.peek(v, distbits_); - auto cp = &distcode_[v]; - if((cp->op & 0xf0) == 0) - { - auto prev = cp; - if(! bi_.fill(prev->bits + prev->op, r.in.next, r.in.last)) - return done(); - bi_.peek(v, prev->bits + prev->op); - cp = &distcode_[prev->val + (v >> prev->bits)]; - bi_.drop(prev->bits + cp->bits); - back_ += prev->bits + cp->bits; - } - else - { - bi_.drop(cp->bits); - back_ += cp->bits; - } - if(cp->op & 64) - return err(Modio::make_error_code(Modio::ZlibError::InvalidDistanceCode)); - offset_ = cp->val; - extra_ = cp->op & 15; - mode_ = DISTEXT; - } - - case DISTEXT: - if(extra_) - { - std::uint16_t v; - if(! bi_.fill(extra_, r.in.next, r.in.last)) - return done(); - bi_.read(v, extra_); - offset_ += v; - back_ += extra_; - } -#ifdef INFLATE_STRICT - if(offset_ > dmax_) - return err(error::invalid_distance); -#endif - mode_ = MATCH; - - - case MATCH: - { - if(! r.out.avail()) - return done(); - if(offset_ > r.out.used()) - { - // copy from window - auto offset = static_cast( - offset_ - r.out.used()); - if(offset > w_.size()) - return err(Modio::make_error_code(Modio::ZlibError::InvalidDistance)); - auto const n = clamp(clamp( - length_, offset), r.out.avail()); - w_.read(r.out.next, offset, n); - r.out.next += n; - length_ -= n; - } - else - { - // copy from output - auto in = r.out.next - offset_; - auto n = clamp(length_, r.out.avail()); - length_ -= n; - while(n--) - *r.out.next++ = *in++; - } - if(length_ == 0) - mode_ = LEN; - break; - } - - case LIT: - { - if(! r.out.avail()) - return done(); - auto const v = static_cast(length_); - *r.out.next++ = v; - mode_ = LEN; - break; - } - - case CHECK: - mode_ = DONE; - - - case DONE: - ec = Modio::make_error_code(Modio::ZlibError::EndOfStream); - return done(); - - case BAD: - return done(); - - case SYNC: - default: - throw(std::logic_error{ - "stream error"}); - } - } -} - -//------------------------------------------------------------------------------ - -/* Build a set of tables to decode the provided canonical Huffman code. - The code lengths are lens[0..codes-1]. The result starts at *table, - whose indices are 0..2^bits-1. work is a writable array of at least - lens shorts, which is used as a work area. type is the type of code - to be generated, build::codes, build::lens, or build::dists. On - return, zero is success, -1 is an invalid code, and +1 means that - kEnough isn't enough. table on return points to the next available - entry's address. bits is the requested root table index bits, and - on return it is the actual root table index bits. It will differ if - the request is greater than the longest code or if it is less than - the shortest code. -*/ -void -inflate_stream:: -inflate_table( - build type, - std::uint16_t* lens, - std::size_t codes, - code** table, - unsigned *bits, - std::uint16_t* work, - Modio::ErrorCode& ec) -{ - unsigned len; // a code's length in bits - unsigned sym; // index of code symbols - unsigned min, max; // minimum and maximum code lengths - unsigned root; // number of index bits for root table - unsigned curr; // number of index bits for current table - unsigned drop; // code bits to drop for sub-table - int left; // number of prefix codes available - unsigned used; // code entries in table used - unsigned huff; // Huffman code - unsigned incr; // for incrementing code, index - unsigned fill; // index for replicating entries - unsigned low; // low bits for current root entry - unsigned mask; // mask for low root bits - code here; // table entry for duplication - code *next; // next available space in table - std::uint16_t const* base; // base value table to use - std::uint16_t const* extra; // extra bits table to use - int end; // use base and extra for symbol > end - std::uint16_t count[15+1]; // number of codes of each length - std::uint16_t offs[15+1]; // offsets in table for each length - - // Length codes 257..285 base - static std::uint16_t constexpr lbase[31] = { - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; - - // Length codes 257..285 extra - static std::uint16_t constexpr lext[31] = { - 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78}; - - // Distance codes 0..29 base - static std::uint16_t constexpr dbase[32] = { - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577, 0, 0}; - - // Distance codes 0..29 extra - static std::uint16_t constexpr dext[32] = { - 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, - 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, - 28, 28, 29, 29, 64, 64}; - - /* - Process a set of code lengths to create a canonical Huffman code. The - code lengths are lens[0..codes-1]. Each length corresponds to the - symbols 0..codes-1. The Huffman code is generated by first sorting the - symbols by length from short to long, and retaining the symbol order - for codes with equal lengths. Then the code starts with all zero bits - for the first code of the shortest length, and the codes are integer - increments for the same length, and zeros are appended as the length - increases. For the deflate format, these bits are stored backwards - from their more natural integer increment ordering, and so when the - decoding tables are built in the large loop below, the integer codes - are incremented backwards. - - This routine assumes, but does not check, that all of the entries in - lens[] are in the range 0..15. The caller must assure this. - 1..15 is interpreted as that code length. zero means that that - symbol does not occur in this code. - - The codes are sorted by computing a count of codes for each length, - creating from that a table of starting indices for each length in the - sorted table, and then entering the symbols in order in the sorted - table. The sorted table is work[], with that space being provided by - the caller. - - The length counts are used for other purposes as well, i.e. finding - the minimum and maximum length codes, determining if there are any - codes at all, checking for a valid set of lengths, and looking ahead - at length counts to determine sub-table sizes when building the - decoding tables. - */ - - /* accumulate lengths for codes (assumes lens[] all in 0..15) */ - for (len = 0; len <= 15; len++) - count[len] = 0; - for (sym = 0; sym < codes; sym++) - count[lens[sym]]++; - - /* bound code lengths, force root to be within code lengths */ - root = *bits; - for (max = 15; max >= 1; max--) - if (count[max] != 0) - break; - if (root > max) - root = max; - if (max == 0) - { /* no symbols to code at all */ - here.op = (std::uint8_t)64; /* invalid code marker */ - here.bits = (std::uint8_t)1; - here.val = (std::uint16_t)0; - *(*table)++ = here; /* make a table to force an error */ - *(*table)++ = here; - *bits = 1; - return; /* no symbols, but wait for decoding to report error */ - } - for (min = 1; min < max; min++) - if (count[min] != 0) - break; - if (root < min) - root = min; - - /* check for an over-subscribed or incomplete set of lengths */ - left = 1; - for (len = 1; len <= 15; len++) - { - left <<= 1; - left -= count[len]; - if (left < 0) - { - ec = Modio::make_error_code(Modio::ZlibError::OverSubscribedLength); - return; - } - } - if (left > 0 && (type == build::codes || max != 1)) - { - ec = Modio::make_error_code(Modio::ZlibError::IncompleteLengthSet); - return; - } - - /* generate offsets into symbol table for each length for sorting */ - offs[1] = 0; - for (len = 1; len < 15; len++) - offs[len + 1] = offs[len] + count[len]; - - /* sort symbols by length, by symbol order within each length */ - for (sym = 0; sym < codes; sym++) - if (lens[sym] != 0) - work[offs[lens[sym]]++] = (std::uint16_t)sym; - - /* - Create and fill in decoding tables. In this loop, the table being - filled is at next and has curr index bits. The code being used is huff - with length len. That code is converted to an index by dropping drop - bits off of the bottom. For codes where len is less than drop + curr, - those top drop + curr - len bits are incremented through all values to - fill the table with replicated entries. - - root is the number of index bits for the root table. When len exceeds - root, sub-tables are created pointed to by the root entry with an index - of the low root bits of huff. This is saved in low to check for when a - new sub-table should be started. drop is zero when the root table is - being filled, and drop is root when sub-tables are being filled. - - When a new sub-table is needed, it is necessary to look ahead in the - code lengths to determine what size sub-table is needed. The length - counts are used for this, and so count[] is decremented as codes are - entered in the tables. - - used keeps track of how many table entries have been allocated from the - provided *table space. It is checked for build::lens and DIST tables against - the constants kEnoughLens and kEnoughDists to guard against changes in - the initial root table size constants. See the comments in inftrees.hpp - for more information. - - sym increments through all symbols, and the loop terminates when - all codes of length max, i.e. all codes, have been processed. This - routine permits incomplete codes, so another loop after this one fills - in the rest of the decoding tables with invalid code markers. - */ - - /* set up for code type */ - switch (type) - { - case build::codes: - base = extra = work; /* dummy value--not used */ - end = 19; - break; - case build::lens: - base = lbase; - base -= 257; - extra = lext; - extra -= 257; - end = 256; - break; - default: /* build::dists */ - base = dbase; - extra = dext; - end = -1; - } - - /* initialize state for loop */ - huff = 0; /* starting code */ - sym = 0; /* starting code symbol */ - len = min; /* starting code length */ - next = *table; /* current table to fill in */ - curr = root; /* current table index bits */ - drop = 0; /* current bits to drop from code for index */ - low = (unsigned)(-1); /* trigger new sub-table when len > root */ - used = 1U << root; /* use root table entries */ - mask = used - 1; /* mask for comparing low */ - - auto const not_enough = [] - { - throw(std::logic_error{ - "insufficient output size when inflating tables"}); - }; - - // check available table space - if ((type == build::lens && used > kEnoughLens) || - (type == build::dists && used > kEnoughDists)) - return not_enough(); - - /* process all codes and make table entries */ - for (;;) - { - /* create table entry */ - here.bits = (std::uint8_t)(len - drop); - if ((int)(work[sym]) < end) - { - here.op = (std::uint8_t)0; - here.val = work[sym]; - } - else if ((int)(work[sym]) > end) - { - here.op = (std::uint8_t)(extra[work[sym]]); - here.val = base[work[sym]]; - } - else - { - here.op = (std::uint8_t)(32 + 64); /* end of block */ - here.val = 0; - } - - /* replicate for those indices with low len bits equal to huff */ - incr = 1U << (len - drop); - fill = 1U << curr; - min = fill; /* save offset to next table */ - do - { - fill -= incr; - next[(huff >> drop) + fill] = here; - } while (fill != 0); - - /* backwards increment the len-bit code huff */ - incr = 1U << (len - 1); - while (huff & incr) - incr >>= 1; - if (incr != 0) - { - huff &= incr - 1; - huff += incr; - } - else - huff = 0; - - /* go to next symbol, update count, len */ - sym++; - if (--(count[len]) == 0) - { - if (len == max) break; - len = lens[work[sym]]; - } - - /* create new sub-table if needed */ - if (len > root && (huff & mask) != low) - { - /* if first time, transition to sub-tables */ - if (drop == 0) - drop = root; - - /* increment past last table */ - next += min; /* here min is 1 << curr */ - - /* determine length of next table */ - curr = len - drop; - left = (int)(1 << curr); - while (curr + drop < max) - { - left -= count[curr + drop]; - if (left <= 0) break; - curr++; - left <<= 1; - } - - /* check for enough space */ - used += 1U << curr; - if ((type == build::lens && used > kEnoughLens) || - (type == build::dists && used > kEnoughDists)) - return not_enough(); - - /* point entry in root table to sub-table */ - low = huff & mask; - (*table)[low].op = (std::uint8_t)curr; - (*table)[low].bits = (std::uint8_t)root; - (*table)[low].val = (std::uint16_t)(next - *table); - } - } - - /* fill in remaining table entry if code is incomplete (guaranteed to have - at most one remaining entry, since if the code is incomplete, the - maximum code length that was allowed to get this far is one bit) */ - if (huff != 0) - { - here.op = 64; // invalid code marker - here.bits = (std::uint8_t)(len - drop); - here.val = 0; - next[huff] = here; - } - - *table += used; - *bits = root; -} - -auto -inflate_stream:: -get_fixed_tables() -> - codes const& -{ - struct fixed_codes : codes - { - code len_[512]; - code dist_[32]; - - fixed_codes() - { - lencode = len_; - lenbits = 9; - distcode = dist_; - distbits = 5; - - std::uint16_t lens[320]; - std::uint16_t work[288]; - - std::fill(&lens[ 0], &lens[144], std::uint16_t{8}); - std::fill(&lens[144], &lens[256], std::uint16_t{9}); - std::fill(&lens[256], &lens[280], std::uint16_t{7}); - std::fill(&lens[280], &lens[288], std::uint16_t{8}); - - { - Modio::ErrorCode ec; - auto next = &len_[0]; - inflate_table(build::lens, - lens, 288, &next, &lenbits, work, ec); - if(ec) - throw(std::logic_error{ec.message()}); - } - - // VFALCO These fixups are from ZLib - len_[ 99].op = 64; - len_[227].op = 64; - len_[355].op = 64; - len_[483].op = 64; - - { - Modio::ErrorCode ec; - auto next = &dist_[0]; - std::fill(&lens[0], &lens[32], std::uint16_t{5}); - inflate_table(build::dists, - lens, 32, &next, &distbits, work, ec); - if(ec) - throw(std::logic_error{ec.message()}); - } - } - }; - - static fixed_codes const fc; - return fc; -} - -void -inflate_stream:: -fixedTables() -{ - auto const fc = get_fixed_tables(); - lencode_ = fc.lencode; - lenbits_ = fc.lenbits; - distcode_ = fc.distcode; - distbits_ = fc.distbits; -} - -/* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state->mode_ == LEN - zs.avail_in >= 6 - zs.avail_out >= 258 - start >= zs.avail_out - state->bits_ < 8 - - On return, state->mode_ is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if zs.avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires zs.avail_out >= 258 for each loop to avoid checking for - output space. - - inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe): - - Using bit fields for code structure - - Different op definition to avoid & for extra bits (do & for table bits) - - Three separate decoding do-loops for direct, window, and wnext == 0 - - Special case for distance > 1 copies to do overlapped load and store copy - - Explicit branch predictions (based on measured branch probabilities) - - Deferring match copy and interspersed it with decoding subsequent codes - - Swapping literal/length else - - Swapping window/direct else - - Larger unrolled copy loops (three is about right) - - Moving len -= 3 statement into middle of loop - */ -void -inflate_stream:: -inflate_fast(ranges& r, Modio::ErrorCode& ec) -{ - unsigned char const* last; // have enough input while in < last - unsigned char *end; // while out < end, enough space available - std::size_t op; // code bits, operation, extra bits, or window position, window bytes to copy - unsigned len; // match length, unused bytes - unsigned dist; // match distance - unsigned const lmask = - (1U << lenbits_) - 1; // mask for first level of length codes - unsigned const dmask = - (1U << distbits_) - 1; // mask for first level of distance codes - - last = r.in.next + (r.in.avail() - 5); - end = r.out.next + (r.out.avail() - 257); - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - do - { - if(bi_.size() < 15) - bi_.fill_16(r.in.next); - auto cp = &lencode_[bi_.peek_fast() & lmask]; - dolen: - bi_.drop(cp->bits); - op = (unsigned)(cp->op); - if(op == 0) - { - // literal - *r.out.next++ = (unsigned char)(cp->val); - } - else if(op & 16) - { - // length base - len = (unsigned)(cp->val); - op &= 15; // number of extra bits - if(op) - { - if(bi_.size() < op) - bi_.fill_8(r.in.next); - len += (unsigned)bi_.peek_fast() & ((1U << op) - 1); - bi_.drop(op); - } - if(bi_.size() < 15) - bi_.fill_16(r.in.next); - cp = &distcode_[bi_.peek_fast() & dmask]; - dodist: - bi_.drop(cp->bits); - op = (unsigned)(cp->op); - if(op & 16) - { - // distance base - dist = (unsigned)(cp->val); - op &= 15; // number of extra bits - if(bi_.size() < op) - { - bi_.fill_8(r.in.next); - if(bi_.size() < op) - bi_.fill_8(r.in.next); - } - dist += (unsigned)bi_.peek_fast() & ((1U << op) - 1); -#ifdef INFLATE_STRICT - if(dist > dmax_) - { - ec = error::invalid_distance; - mode_ = BAD; - break; - } -#endif - bi_.drop(op); - - op = r.out.used(); - if(dist > op) - { - // copy from window - op = dist - op; // distance back in window - if(op > w_.size()) - { - ec = Modio::make_error_code(Modio::ZlibError::InvalidDistance); - mode_ = BAD; - break; - } - auto const n = clamp(len, op); - w_.read(r.out.next, op, n); - r.out.next += n; - len -= n; - } - if(len > 0) - { - // copy from output - auto in = r.out.next - dist; - auto n = clamp(len, r.out.avail()); - len -= n; - while(n--) - *r.out.next++ = *in++; - } - } - else if((op & 64) == 0) - { - // 2nd level distance code - cp = &distcode_[cp->val + (bi_.peek_fast() & ((1U << op) - 1))]; - goto dodist; - } - else - { - ec = Modio::make_error_code(Modio::ZlibError::InvalidDistanceCode); - mode_ = BAD; - break; - } - } - else if((op & 64) == 0) - { - // 2nd level length code - cp = &lencode_[cp->val + (bi_.peek_fast() & ((1U << op) - 1))]; - goto dolen; - } - else if(op & 32) - { - // end-of-block - mode_ = TYPE; - break; - } - else - { - ec = Modio::make_error_code(Modio::ZlibError::InvalidLiteralLength); - mode_ = BAD; - break; - } - } - while(r.in.next < last && r.out.next < end); - - // return unused bytes (on entry, bits < 8, so in won't go too far back) - bi_.rewind(r.in.next); -} - -} // detail -} // zlib -} // beast -} // boost - -#endif diff --git a/Source/Modio/Modio.Build.cs b/Source/Modio/Modio.Build.cs index 06661b29..04b05f9d 100644 --- a/Source/Modio/Modio.Build.cs +++ b/Source/Modio/Modio.Build.cs @@ -15,6 +15,8 @@ using Tools.DotNETCommon; using System.Linq; + + public class Modio : ModuleRules { private bool PlatformMatches(UnrealTargetPlatform PlatformToCheck, string PlatformIdentifier) @@ -30,6 +32,7 @@ public class PlatformConfig public List IncludeDirectories = new List(); public List PlatformSpecificDefines = new List(); public List ModuleDependencies = new List(); + public List PlatformSourceFolderNames = new List(); } public Dictionary Platforms; public List IncludeDirectories; @@ -39,7 +42,7 @@ public class PlatformConfig private void DumpNativePlatformConfig(ModioPlatformConfigFile.PlatformConfig Config) { - foreach(string IncludeDirectory in Config.IncludeDirectories) + foreach (string IncludeDirectory in Config.IncludeDirectories) { Log.TraceInformation("Include: " + IncludeDirectory); } @@ -47,14 +50,28 @@ private void DumpNativePlatformConfig(ModioPlatformConfigFile.PlatformConfig Con { Log.TraceInformation("Define: " + Define); } + foreach (string SourceFolder in Config.PlatformSourceFolderNames) + { + Log.TraceInformation("Source Directory: " + SourceFolder); + } } private ModioPlatformConfigFile.PlatformConfig LoadNativePlatformConfig() { ModioPlatformConfigFile.PlatformConfig MergedConfig = null; - + foreach (var PlatformDirectory in Directory.EnumerateDirectories(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/platform"))) { + string PlatformName = PlatformDirectory.Split(Path.DirectorySeparatorChar).Last(); + + // Don't skip this - we have common directories that need merging too! + /*if (PlatformName != PlatformString) + { + // Platforms that do not match the PlatformName are skipped + // Log.TraceInformation("Platform name " + PlatformName + " does not match String " + PlatformString); + continue; + }*/ + if (File.Exists(Path.Combine(PlatformDirectory, "ueplatform.json"))) { //Ensure changes to the platform jsons result in a rebuild of the plugin @@ -78,7 +95,7 @@ private ModioPlatformConfigFile.PlatformConfig LoadNativePlatformConfig() MergedConfig.IncludeDirectories.AddRange(Platform.Value.IncludeDirectories); MergedConfig.PlatformSpecificDefines.AddRange(Platform.Value.PlatformSpecificDefines); MergedConfig.ModuleDependencies.AddRange(Platform.Value.ModuleDependencies); - + bFoundPlatformConfig = true; } } @@ -94,6 +111,7 @@ private ModioPlatformConfigFile.PlatformConfig LoadNativePlatformConfig() } if (MergedConfig != null) { + MergedConfig.PlatformSourceFolderNames = MergedConfig.IncludeDirectories; //Treat all platform specific includes as relative to the root native platform directory MergedConfig.IncludeDirectories = MergedConfig.IncludeDirectories.Select((string IncludeDir) => Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/platform", IncludeDir)).ToList(); @@ -101,60 +119,108 @@ private ModioPlatformConfigFile.PlatformConfig LoadNativePlatformConfig() return MergedConfig; } - public Modio(ReadOnlyTargetRules Target) : base(Target) + private void CopyCommonGeneratedHeaders(string GeneratedHeaderPath) { - PCHUsage = ModuleRules.PCHUsageMode.NoSharedPCHs; - PrivatePCHHeaderFile = "Private/ModioPrivatePCH.h"; - bEnableUndefinedIdentifierWarnings = false; - bEnforceIWYU = true; - bAllowConfidentialPlatformDefines = true; - //bUseUnity = false; - ModioPlatformConfigFile.PlatformConfig PlatformConfig = LoadNativePlatformConfig(); - - if (PlatformConfig == null) + // Only process generated headers if we are using the NativeSDK as a git submodule + if (File.Exists(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/.git"))) { - throw new BuildException("Could not locate native platform configuration file. If you are using a confidential platform, please ensure you have placed the platform code into the correct directory."); + //Clean the generated source directory so that we dont have any stale files in it + if (Directory.Exists(GeneratedHeaderPath)) + { + Directory.Delete(GeneratedHeaderPath, true); + } + Directory.CreateDirectory(GeneratedHeaderPath); + + Directory.CreateDirectory(Path.Combine(GeneratedHeaderPath, "Public")); + Directory.CreateDirectory(Path.Combine(GeneratedHeaderPath, "Private")); + + //Because this file is a dummy we don't need it as a dependency + string GeneratedHeaderFilePath = Path.Combine(GeneratedHeaderPath, "Private", "ModioGeneratedVariables.h"); + using (StreamWriter DummyGeneratedHeader = File.AppendText(GeneratedHeaderFilePath)) + { }; + + // Silly hack/workaround until 4.26 adds ConditionalAddModuleDirectory - we may change where this lives in the native SDK later + string ErrorConditionLibraryPath = Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/modio/modio/core/ModioErrorCondition.h"); + // Add dependency on the upstream file so if it is modified we re-run and copy it again + ExternalDependencies.Add(ErrorConditionLibraryPath); + File.Copy(ErrorConditionLibraryPath, Path.Combine(GeneratedHeaderPath, "Public", "ModioErrorCondition.h"), true); } - DumpNativePlatformConfig(PlatformConfig); - //Add stub generated header - { - string GeneratedHeaderPath = Path.Combine(ModuleDirectory, "GeneratedHeader"); + } - // Only process generated headers if we are using the NativeSDK as a git submodule - if (File.Exists(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/.git"))) + ///

    + /// Copies all platform implementation files to a platform-specific directory, renaming those files to cpp files so the UE build system will compile them + /// + /// The root directory containing the platform-specific source directories + private void CopyPlatformGeneratedSource(string GeneratedSourcePath) + { + if (File.Exists(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/.git"))) + { + foreach (var PlatformDirectory in Directory.EnumerateDirectories(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/platform"))) { + string PlatformName = PlatformDirectory.Split(Path.DirectorySeparatorChar).Last(); + string PlatformGeneratedSourcePath = Path.Combine(GeneratedSourcePath, PlatformName); //Clean the generated source directory so that we dont have any stale files in it - if (Directory.Exists(GeneratedHeaderPath)) + if (Directory.Exists(PlatformGeneratedSourcePath)) { - Directory.Delete(GeneratedHeaderPath, true); + Directory.Delete(PlatformGeneratedSourcePath, true); } - Directory.CreateDirectory(GeneratedHeaderPath); + Directory.CreateDirectory(PlatformGeneratedSourcePath); - Directory.CreateDirectory(Path.Combine(GeneratedHeaderPath, "Public")); - Directory.CreateDirectory(Path.Combine(GeneratedHeaderPath, "Private")); - //Because this file is a dummy we don't need it as a dependency - string GeneratedHeaderFilePath = Path.Combine(GeneratedHeaderPath, "Private", "ModioGeneratedVariables.h"); - using (StreamWriter DummyGeneratedHeader = File.AppendText(GeneratedHeaderFilePath)) - { }; + //copy all the ipp files to the right cpp directories + List IPPFiles = new List(Directory.GetFiles(PlatformDirectory, "*.ipp", SearchOption.AllDirectories)); - // Silly hack/workaround until 4.26 adds ConditionalAddModuleDirectory - we may change where this lives in the native SDK later - string ErrorConditionLibraryPath = Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/modio/modio/core/ModioErrorCondition.h"); - // Add dependency on the upstream file so if it is modified we re-run and copy it again - ExternalDependencies.Add(ErrorConditionLibraryPath); - File.Copy(ErrorConditionLibraryPath, Path.Combine(GeneratedHeaderPath, "Public", "ModioErrorCondition.h"), true); + foreach (string IPPFile in IPPFiles) + { + //Add the original file in our upstream repository as a dependency, so if a user edits it we will copy it over + ExternalDependencies.Add(IPPFile); + string DestinationPath = Path.Combine(PlatformGeneratedSourcePath, Path.ChangeExtension(Path.GetFileName(IPPFile), ".cpp")); + File.Copy(IPPFile, DestinationPath, true); + } } + } + } + + private void CopyCommonGeneratedSource(string GeneratedSourcePath) + { + string CommonGeneratedSourcePath = Path.Combine(GeneratedSourcePath, "core"); + if (File.Exists(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/.git"))) + { + //Clean the generated source directory so that we dont have any stale files in it + if (Directory.Exists(CommonGeneratedSourcePath)) + { + Directory.Delete(CommonGeneratedSourcePath, true); + } + Directory.CreateDirectory(CommonGeneratedSourcePath); + + //copy all the ipp files to the right cpp directories + List IPPFiles = new List(Directory.GetFiles(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/modio"), "*.ipp", SearchOption.AllDirectories)); - PublicIncludePaths.AddRange(new string[] { + foreach (string IPPFile in IPPFiles) + { + //Add the original file in our upstream repository as a dependency, so if a user edits it we will copy it over + ExternalDependencies.Add(IPPFile); + string DestinationPath = Path.Combine(CommonGeneratedSourcePath, Path.ChangeExtension(Path.GetFileName(IPPFile), ".cpp")); + File.Copy(IPPFile, DestinationPath, true); + } + } + } + + private void AddCommonGeneratedSource(string GeneratedSourcePath) + { + ConditionalAddModuleDirectory(new DirectoryReference(Path.Combine(GeneratedSourcePath, "core"))); + } + + private void AddCommonHeaderPaths(string GeneratedHeaderPath) + { + PublicIncludePaths.AddRange(new string[] { Path.Combine(GeneratedHeaderPath, "Public") }); - PublicSystemIncludePaths.AddRange(new string[] { - }); - // Add common private includes from the Native SDK - PrivateIncludePaths.AddRange(new string[] - { + // Add common private includes from the Native SDK + PrivateIncludePaths.AddRange(new string[] + { Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/ext/json/single_include"), Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/ext/filesystem/include"), Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/ext/fmt/include"), @@ -166,105 +232,132 @@ public Modio(ReadOnlyTargetRules Target) : base(Target) Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/modio"), Path.Combine(GeneratedHeaderPath, "Private"), Path.Combine(GeneratedHeaderPath, "Public") - }); + }); - //Import private platform-specific includes from the Native SDK - PrivateIncludePaths.AddRange(PlatformConfig.IncludeDirectories); - } - - // Add native SDK implementation to this module so we don't have to create an extraneous module - // TODO: @modio-ue4 cleanup by using UE_4_26_OR_LATER so we can use ConditionalAddModuleDirectory + } - // We only need to check and update generated source if we are consuming the NativeSDK as a git submodule (ie we aren't in a standalone release context) - if (File.Exists(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/.git"))) - { - string GeneratedSourcePath = Path.Combine(ModuleDirectory, "GeneratedSource"); + private void AddCommonDependencyModules() + { + PublicDependencyModuleNames.AddRange(new string[] { + "Core", "Engine", "UMG", "Slate" + }); - //Clean the generated source directory so that we dont have any stale files in it - if (Directory.Exists(GeneratedSourcePath)) - { - Directory.Delete(GeneratedSourcePath, true); - } - Directory.CreateDirectory(GeneratedSourcePath); + PrivateDependencyModuleNames.AddRange(new string[] { + "Projects", "CoreUObject", "RHI", "RenderCore", "HTTP" + }); + } - //Copy all implementation headers (ipp files) to a generated source directory with the cpp extension so they will get compiled/linked - { + private void ApplyNativePlatformConfig(ModioPlatformConfigFile.PlatformConfig Config, string GeneratedHeaderPath, string GeneratedSourcePath) + { + // Add only the source directory for the current platform to this module + // Currently this is the portion which is not compatible with 4.25 + foreach (string PlatformPath in Config.PlatformSourceFolderNames) + { + string RootPlatformName = PlatformPath.Replace('/', Path.DirectorySeparatorChar).Split(Path.DirectorySeparatorChar).First(); + ConditionalAddModuleDirectory(new DirectoryReference(Path.Combine(GeneratedSourcePath, RootPlatformName))); + Log.TraceInformation("Adding native platform source directory " + Path.Combine(GeneratedSourcePath, RootPlatformName)); + } + // Add any platform-specific additional modules as private dependencies + PrivateDependencyModuleNames.AddRange(Config.ModuleDependencies.ToArray()); - List IPPFiles = new List(Directory.GetFiles(Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/modio"), "*.ipp", SearchOption.AllDirectories)); + // Add platform-specific compiler defines + foreach (string CompilerDefine in Config.PlatformSpecificDefines) + { + PrivateDefinitions.Add(CompilerDefine); + } + // Add platform-specific include directories + PrivateIncludePaths.AddRange(Config.IncludeDirectories); + } + private void AddCommonDefinitions() + { + if (Target.Configuration == UnrealTargetConfiguration.Debug || + Target.Configuration == UnrealTargetConfiguration.DebugGame) + { + PrivateDefinitions.Add("MODIO_DEBUG=1"); + PrivateDefinitions.Add("MODIO_RELEASE=0"); + } + else + { + PrivateDefinitions.Add("MODIO_DEBUG=0"); + PrivateDefinitions.Add("MODIO_RELEASE=1"); + } - // Add platform-specific include directories - foreach (string IncludePath in PlatformConfig.IncludeDirectories) - { - IPPFiles.AddRange(Directory.GetFiles(IncludePath, "*.ipp", SearchOption.AllDirectories)); - } + // Enable Unreal-specific headers in the native SDK + PrivateDefinitions.Add("MODIO_PLATFORM_UNREAL"); + // Disable header-only mode + PrivateDefinitions.Add("MODIO_SEPARATE_COMPILATION=1"); + // Disable unnecessary inlining as a result of header-only mode not being used + PrivateDefinitions.Add("MODIO_IMPL="); + + // Pass-through of SDK version identifier with Unreal prefix + string VersionFilePath = Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/.modio"); + string VersionString = File.ReadAllText(VersionFilePath); + VersionString = VersionString.Trim(); + PrivateDefinitions.Add(string.Format("MODIO_COMMIT_HASH=\"UNREAL-{0}\"", VersionString)); + + // Add dependency on version file so if it is changed we trigger a rebuild + ExternalDependencies.Add(VersionFilePath); + } - foreach (string IPPFile in IPPFiles) - { - //Add the original file in our upstream repository as a dependency, so if a user edits it we will copy it over - ExternalDependencies.Add(IPPFile); - string DestinationPath = Path.Combine(GeneratedSourcePath, Path.ChangeExtension(Path.GetFileName(IPPFile), ".cpp")); - File.Copy(IPPFile, DestinationPath, true); - } - } + public Modio(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.NoSharedPCHs; + PrivatePCHHeaderFile = "Private/ModioPrivatePCH.h"; + bEnableUndefinedIdentifierWarnings = false; + bEnforceIWYU = true; + //bUseUnity = false; + bAllowConfidentialPlatformDefines = true; + string GeneratedSourcePath = Path.Combine(ModuleDirectory, "../ThirdParty/GeneratedNativeSDK", "GeneratedSource"); + string GeneratedHeaderPath = Path.Combine(ModuleDirectory, "../ThirdParty/GeneratedNativeSDK", "GeneratedHeader"); - //Only supported from 4.26 onwards - workaround at the moment is for the GeneratedSourcePath to live inside the module directory - //Once 4.25 support is dropped, generated source should be in the Intermediate folder - //ConditionalAddModuleDirectory(new Tools.DotNETCommon.DirectoryReference(GeneratedSourcePath)); + if (!Directory.Exists(Path.Combine(ModuleDirectory, "../ThirdParty/GeneratedNativeSDK"))) + { + Directory.CreateDirectory(Path.Combine(ModuleDirectory, "../ThirdParty/GeneratedNativeSDK")); } + if (!Directory.Exists(GeneratedSourcePath)) + { + Directory.CreateDirectory(GeneratedSourcePath); + } - PublicDependencyModuleNames.AddRange(new string[] { - "Core", "Engine", "UMG", "Slate" - // ... add other public dependencies that you statically link with here ... - }); + if (!Directory.Exists(GeneratedHeaderPath)) + { + Directory.CreateDirectory(GeneratedHeaderPath); + } - PrivateDependencyModuleNames.AddRange(new string[] { - "Projects", "CoreUObject", "RHI", "RenderCore", "HTTP" - // ... add private dependencies that you statically link with here ... - }); + // This should be moved into UEPlatform.json handling + if (Target.Platform == UnrealTargetPlatform.Linux) + { + // Currently required because Clang is picky and MSVC not, and tl::optional doesn't have a nothrow implementation + bEnableExceptions = true; + } - PrivateDependencyModuleNames.AddRange(PlatformConfig.ModuleDependencies.ToArray()); + - DynamicallyLoadedModuleNames.AddRange(new string[] { - // ... add any modules that your module loads dynamically here ... - }); + ModioPlatformConfigFile.PlatformConfig PlatformConfig = LoadNativePlatformConfig(); - // Set native SDK preprocessor defines + if (PlatformConfig == null) { - if (Target.Configuration == UnrealTargetConfiguration.Debug || - Target.Configuration == UnrealTargetConfiguration.DebugGame) - { - PrivateDefinitions.Add("MODIO_DEBUG=1"); - PrivateDefinitions.Add("MODIO_RELEASE=0"); - } - else - { - PrivateDefinitions.Add("MODIO_DEBUG=0"); - PrivateDefinitions.Add("MODIO_RELEASE=1"); - } + throw new BuildException("Could not locate native platform configuration file. If you are using a confidential platform, please ensure you have placed the platform code into the correct directory."); + } - // Enable Unreal-specific headers in the native SDK - PrivateDefinitions.Add("MODIO_PLATFORM_UNREAL"); - // Disable header-only mode - PrivateDefinitions.Add("MODIO_SEPARATE_COMPILATION=1"); - // Disable unnecessary inlining as a result of header-only mode not being used - PrivateDefinitions.Add("MODIO_IMPL="); + DumpNativePlatformConfig(PlatformConfig); - foreach (string CompilerDefine in PlatformConfig.PlatformSpecificDefines) - { - PrivateDefinitions.Add(CompilerDefine); - } + // When using the native SDK as a submodule, transform the SDK source into paths and files that UBT understands + // These are all no-ops in marketplace builds or anywhere with 'baked' source files + CopyCommonGeneratedSource(GeneratedSourcePath); + CopyPlatformGeneratedSource(GeneratedSourcePath); + CopyCommonGeneratedHeaders(GeneratedHeaderPath); - // Pass-through of SDK version identifier with Unreal prefix - string VersionFilePath = Path.Combine(ModuleDirectory, "../ThirdParty/NativeSDK/.modio"); - string VersionString = File.ReadAllText(VersionFilePath); - VersionString = VersionString.Trim(); - PrivateDefinitions.Add(string.Format("MODIO_COMMIT_HASH=\"UNREAL-{0}\"", VersionString)); + // Configure the module with the common headers, modules and compiler defines + AddCommonHeaderPaths(GeneratedHeaderPath); + AddCommonGeneratedSource(GeneratedSourcePath); + AddCommonDependencyModules(); + AddCommonDefinitions(); - // Add dependency on version file so if it is changed we trigger a rebuild - ExternalDependencies.Add(VersionFilePath); - } + // Apply all platform-specific includes, source, modules, defines, etc + ApplyNativePlatformConfig(PlatformConfig, GeneratedHeaderPath, GeneratedSourcePath); } } diff --git a/Source/Modio/Private/Internal/Convert/CreateModFileParams.h b/Source/Modio/Private/Internal/Convert/CreateModFileParams.h index f9d908d4..951004b2 100644 --- a/Source/Modio/Private/Internal/Convert/CreateModFileParams.h +++ b/Source/Modio/Private/Internal/Convert/CreateModFileParams.h @@ -9,6 +9,9 @@ */ #pragma once + +#include "Internal/Convert/Numerics.h" + #include "Internal/Convert/Optional.h" #include "Internal/ModioConvert.h" #include "ModioSDK.h" diff --git a/Source/Modio/Private/Internal/Convert/CreateModParams.h b/Source/Modio/Private/Internal/Convert/CreateModParams.h index b6be0b85..1475941e 100644 --- a/Source/Modio/Private/Internal/Convert/CreateModParams.h +++ b/Source/Modio/Private/Internal/Convert/CreateModParams.h @@ -25,7 +25,7 @@ FORCEINLINE Modio::CreateModParams ToModio(const FModioCreateModParams& In) Out.bVisible = ToModioOptional(In.bVisible); Out.Description = ToModioOptional(In.Description); Out.HomepageURL = ToModioOptional(In.HomepageURL); - Out.Stock = ToModioOptional(In.QuantityAvailable); + Out.Stock = ToModioOptional(In.QuantityAvailable); Out.MaturityRating = In.MaturityFlags.IsSet() ? static_cast(In.MaturityFlags.GetValue()): Modio::Optional{}; Out.MetadataBlob = ToModioOptional(In.MetadataBlob); Out.Tags = ToModioOptional>(In.Tags); diff --git a/Source/Modio/Private/Internal/Convert/FilterParams.h b/Source/Modio/Private/Internal/Convert/FilterParams.h index d05cfe04..9d90157a 100644 --- a/Source/Modio/Private/Internal/Convert/FilterParams.h +++ b/Source/Modio/Private/Internal/Convert/FilterParams.h @@ -65,12 +65,12 @@ FORCEINLINE Modio::FilterParams ToModio(const FModioFilterParams& In) if (In.DateRangeBegin) { - Out.MarkedLiveAfter(ToModio(In.DateRangeBegin.GetValue())); + Out.MarkedLiveAfter(ToModioDateTime(In.DateRangeBegin.GetValue())); } if (In.DateRangeEnd) { - Out.MarkedLiveBefore(ToModio(In.DateRangeEnd.GetValue())); + Out.MarkedLiveBefore(ToModioDateTime(In.DateRangeEnd.GetValue())); } if (In.MetadataBlobSearchString.IsSet()) diff --git a/Source/Modio/Private/Internal/Convert/List.h b/Source/Modio/Private/Internal/Convert/List.h index 66b04040..fa0cc818 100644 --- a/Source/Modio/Private/Internal/Convert/List.h +++ b/Source/Modio/Private/Internal/Convert/List.h @@ -15,7 +15,7 @@ #include "ModioSDK.h" /** Convert a Modio::List to a FModioList */ -template typename DestListType, typename DestValueType, typename SourceListType> +template class DestListType, typename DestValueType, typename SourceListType> FModioList ToUnrealList(SourceListType Value) { FModioList Result; diff --git a/Source/Modio/Private/Internal/Convert/Metadata.h b/Source/Modio/Private/Internal/Convert/Metadata.h index c23afbfc..b8a273c6 100644 --- a/Source/Modio/Private/Internal/Convert/Metadata.h +++ b/Source/Modio/Private/Internal/Convert/Metadata.h @@ -10,7 +10,9 @@ #pragma once +#include "Internal/Convert/Optional.h" #include "Internal/ModioConvert.h" +#include "Types/ModioMetadata.h" #include "ModioSDK.h" FORCEINLINE FModioMetadata ToUnreal(const Modio::Metadata& In) diff --git a/Source/Modio/Private/Internal/Convert/ModInfo.h b/Source/Modio/Private/Internal/Convert/ModInfo.h index 260c5b8e..4c9556b2 100644 --- a/Source/Modio/Private/Internal/Convert/ModInfo.h +++ b/Source/Modio/Private/Internal/Convert/ModInfo.h @@ -19,6 +19,20 @@ #include "ModioSDK.h" #include "Types/ModioModInfo.h" +template +TArray ToUnrealD(const std::vector& OriginalArray) +{ + TArray Result; + + Result.Reserve(OriginalArray.size()); + for (const auto& It : OriginalArray) + { + Result.Emplace(ToUnreal(It)); + } + + return Result; +} + FORCEINLINE FModioModInfo ToUnreal(const Modio::ModInfo& In) { FModioModInfo Out; @@ -34,12 +48,17 @@ FORCEINLINE FModioModInfo ToUnreal(const Modio::ModInfo& In) Out.ProfileDateLive = ToUnrealDateTime(In.ProfileDateLive); Out.ProfileMaturityOption = ToUnreal(In.ProfileMaturityOption); Out.MetadataBlob = FString(In.MetadataBlob.c_str()); // Converting verbatim rather than via TCHAR as ToUnreal does - Out.FileInfo = ToUnreal(In.FileInfo); - Out.MetadataKvp = ToUnreal(In.MetadataKvp); - Out.Tags = ToUnreal(In.Tags); + + if (In.FileInfo.has_value()) + { + Out.FileInfo = ToUnreal(In.FileInfo.value()); + } + + Out.MetadataKvp = ToUnrealD(In.MetadataKvp); + Out.Tags = ToUnrealD(In.Tags); Out.NumGalleryImages = ToUnreal(In.NumGalleryImages); Out.YoutubeURLs = ToUnreal(In.YoutubeURLs); Out.SketchfabURLs = ToUnreal(In.SketchfabURLs); Out.Stats = ToUnreal(In.Stats); return Out; -} \ No newline at end of file +} diff --git a/Source/Modio/Private/Internal/ModioConvert.cpp b/Source/Modio/Private/Internal/ModioConvert.cpp new file mode 100644 index 00000000..d223cab8 --- /dev/null +++ b/Source/Modio/Private/Internal/ModioConvert.cpp @@ -0,0 +1,264 @@ +#include "Internal/ModioConvert.h" + +std::string ToModio(const FString& String) +{ + return std::string(TCHAR_TO_UTF8(*String)); +} + +std::vector ToModio(const TArray& StringArray) +{ + std::vector Result; + Result.reserve(StringArray.Num()); + for (const FString& It : StringArray) + { + Result.emplace_back(TCHAR_TO_UTF8(*It)); + } + return Result; +} + +std::chrono::system_clock::time_point ToModioDateTime(FDateTime Time) +{ + return std::chrono::system_clock::time_point(std::chrono::system_clock::duration(Time.ToUnixTimestamp())); +} + +int64 ToUnreal(std::int64_t Value) +{ + return Value; +} + +bool ToUnreal(bool Value) +{ + return Value; +} + +double ToUnreal(double Value) +{ + return Value; +} + +uint64 ToUnreal(std::size_t Value) +{ + static_assert(sizeof(std::size_t) == sizeof(uint64), "size_t is not 64-bits wide. Are you in x64 configuration?"); + return Value; +} + +FString ToUnreal(const std::string& String) +{ + return UTF8_TO_TCHAR(String.c_str()); +} + + + +FString ToUnreal(const Modio::filesystem::path& Path) +{ + return UTF8_TO_TCHAR(Path.generic_u8string().c_str()); +} + +FDateTime ToUnrealDateTime(std::int64_t UnixTimestamp) +{ + return FDateTime::FromUnixTimestamp(UnixTimestamp); +} + + +Modio::ApiKey ToModio(const FModioApiKey& In) +{ + return Modio::ApiKey(TCHAR_TO_UTF8(*In.ToString())); +} + +Modio::EmailAddress ToModio(const FModioEmailAddress& In) +{ + return Modio::EmailAddress(TCHAR_TO_UTF8(*In.ToString())); +} + +Modio::EmailAuthCode ToModio(const FModioEmailAuthCode& In) +{ + return Modio::EmailAuthCode(TCHAR_TO_UTF8(*In.ToString())); +} + +Modio::ModID ToModio(const FModioModID& In) +{ + return Modio::ModID(In.ModID); +} + +Modio::GameID ToModio(const FModioGameID& In) +{ + return Modio::GameID(In.GameId); +} +Modio::FileMetadataID ToModio(const FModioFileMetadataID& In) +{ + return Modio::FileMetadataID(In.FileMetadataID); +} +Modio::UserID ToModio(const FModioUserID& In) +{ + return Modio::UserID(In.UserID); +} + + +Modio::LogLevel ToModio(EModioLogLevel UnrealLogLevel) +{ + switch (UnrealLogLevel) + { + case EModioLogLevel::Error: + return Modio::LogLevel::Error; + case EModioLogLevel::Info: + return Modio::LogLevel::Info; + case EModioLogLevel::Trace: + return Modio::LogLevel::Trace; + case EModioLogLevel::Warning: + return Modio::LogLevel::Warning; + } + + checkf(false, TEXT("Missed a case in ToModio(EModioLogLevel UnrealLogLevel)")); + return Modio::LogLevel::Info; +} + +Modio::AvatarSize ToModio(EModioAvatarSize AvatarSize) +{ + switch (AvatarSize) + { + case EModioAvatarSize::Original: + return Modio::AvatarSize::Original; + case EModioAvatarSize::Thumb50: + return Modio::AvatarSize::Thumb50; + case EModioAvatarSize::Thumb100: + return Modio::AvatarSize::Thumb100; + } + + checkf(false, TEXT("Missed a case in ToModio(EModioAvatarSize AvatarSize)")); + return Modio::AvatarSize::Thumb50; +} + +Modio::GallerySize ToModio(EModioGallerySize GallerySize) +{ + switch (GallerySize) + { + case EModioGallerySize::Original: + return Modio::GallerySize::Original; + case EModioGallerySize::Thumb320: + return Modio::GallerySize::Thumb320; + } + + checkf(false, TEXT("Missed a case in ToModio(EModioGallerySize GallerySize)")); + return Modio::GallerySize::Thumb320; +} + +Modio::LogoSize ToModio(EModioLogoSize LogoSize) +{ + switch (LogoSize) + { + case EModioLogoSize::Original: + return Modio::LogoSize::Original; + case EModioLogoSize::Thumb320: + return Modio::LogoSize::Thumb320; + case EModioLogoSize::Thumb640: + return Modio::LogoSize::Thumb640; + case EModioLogoSize::Thumb1280: + return Modio::LogoSize::Thumb1280; + } + + checkf(false, TEXT("Missed a case in ToModio(EModioLogoSize LogoSize)")); + return Modio::LogoSize::Thumb320; +} + +Modio::Environment ToModio(EModioEnvironment Environment) +{ + switch (Environment) + { + case EModioEnvironment::Test: + return Modio::Environment::Test; + case EModioEnvironment::Live: + return Modio::Environment::Live; + } + + checkf(false, TEXT("Missed a case in ToModio(EModioEnvironment Environment)")); + return Modio::Environment::Test; +} + +Modio::Portal ToModio(EModioPortal Portal) +{ + switch (Portal) + { + case EModioPortal::None: + return Modio::Portal::None; + break; + case EModioPortal::Apple: + return Modio::Portal::Apple; + break; + case EModioPortal::EpicGamesStore: + return Modio::Portal::EpicGamesStore; + break; + case EModioPortal::GOG: + return Modio::Portal::GOG; + break; + case EModioPortal::Google: + return Modio::Portal::Google; + break; + case EModioPortal::Itchio: + return Modio::Portal::Itchio; + break; + case EModioPortal::Nintendo: + return Modio::Portal::Nintendo; + break; + case EModioPortal::PSN: + return Modio::Portal::PSN; + break; + case EModioPortal::Steam: + return Modio::Portal::Steam; + break; + case EModioPortal::XboxLive: + return Modio::Portal::XboxLive; + break; + } + checkf(false, TEXT("Missed a case in ToModio(EModioPortal)")); + return Modio::Portal::None; +} + +Modio::Language ToModio(EModioLanguage Language) +{ + switch (Language) + { + case EModioLanguage::English: + return Modio::Language::English; + case EModioLanguage::Bulgarian: + return Modio::Language::Bulgarian; + case EModioLanguage::French: + return Modio::Language::French; + case EModioLanguage::German: + return Modio::Language::German; + case EModioLanguage::Italian: + return Modio::Language::Italian; + case EModioLanguage::Polish: + return Modio::Language::Polish; + case EModioLanguage::Portuguese: + return Modio::Language::Portuguese; + case EModioLanguage::Hungarian: + return Modio::Language::Hungarian; + case EModioLanguage::Japanese: + return Modio::Language::Japanese; + case EModioLanguage::Korean: + return Modio::Language::Korean; + case EModioLanguage::Russian: + return Modio::Language::Russian; + case EModioLanguage::Spanish: + return Modio::Language::Spanish; + case EModioLanguage::Thai: + return Modio::Language::Thai; + case EModioLanguage::ChineseSimplified: + return Modio::Language::ChineseSimplified; + case EModioLanguage::ChineseTraditional: + return Modio::Language::ChineseTraditional; + } + + checkf(false, TEXT("Missed a case in ToModio(EModioLanguage Language)")); + return Modio::Language::English; +} + +FModioModID ToUnreal(Modio::ModID Value) +{ + return FModioModID(Value); +} + +FModioFileMetadataID ToUnreal(Modio::FileMetadataID Value) +{ + return FModioFileMetadataID(Value); +} diff --git a/Source/Modio/Private/Internal/ModioConvert.h b/Source/Modio/Private/Internal/ModioConvert.h index 53bad06b..559c8185 100644 --- a/Source/Modio/Private/Internal/ModioConvert.h +++ b/Source/Modio/Private/Internal/ModioConvert.h @@ -21,97 +21,55 @@ #include #include -FORCEINLINE std::string ToModio(const FString& String); -FORCEINLINE std::vector ToModio(const TArray& StringArray); -FORCEINLINE std::chrono::system_clock::time_point ToModio(FDateTime Time); -FORCEINLINE int64 ToUnreal(std::int64_t Value); -FORCEINLINE double ToUnreal(double Value); -FORCEINLINE bool ToUnreal(bool Value); -FORCEINLINE uint64 ToUnreal(std::size_t Value); -FORCEINLINE FString ToUnreal(const std::string& String); -FORCEINLINE FString ToUnreal(const Modio::filesystem::path& Path); -FORCEINLINE FDateTime ToUnrealDateTime(std::int64_t UnixTimestamp); -template -FORCEINLINE TArray ToUnreal(std::vector&& OriginalArray); - -template -FORCEINLINE TArray ToUnreal(const std::vector& OriginalArray); - -template -FORCEINLINE std::vector ToModio(const TArray& OriginalArray); - -FORCEINLINE Modio::ApiKey ToModio(const FModioApiKey& In); - -FORCEINLINE Modio::EmailAddress ToModio(const FModioEmailAddress& In); - -FORCEINLINE Modio::EmailAuthCode ToModio(const FModioEmailAuthCode& In); +int64 ToUnreal(std::int64_t Value); +double ToUnreal(double Value); +bool ToUnreal(bool Value); +uint64 ToUnreal(std::size_t Value); +FString ToUnreal(const std::string& String); +FString ToUnreal(const Modio::filesystem::path& Path); +FDateTime ToUnrealDateTime(std::int64_t UnixTimestamp); + +struct FModioModID ToUnreal(Modio::ModID Value); +struct FModioFileMetadataID ToUnreal(Modio::FileMetadataID Value); +struct FModioModTagInfo ToUnreal(const Modio::ModTagInfo& In); +struct FModioMetadata ToUnreal(const Modio::Metadata& In); +struct FModioModTag ToUnreal(const Modio::ModTag& In); +struct FModioModInfo ToUnreal(const Modio::ModInfo& In); +struct FModioModDependency ToUnreal(const Modio::ModDependency& In); + +std::string ToModio(const FString& String); +std::vector ToModio(const TArray& StringArray); +std::chrono::system_clock::time_point ToModioDateTime(FDateTime Time); +Modio::ApiKey ToModio(const FModioApiKey& In); +Modio::EmailAddress ToModio(const FModioEmailAddress& In); +Modio::EmailAuthCode ToModio(const FModioEmailAuthCode& In); +Modio::ModID ToModio(const FModioModID& In); +Modio::GameID ToModio(const FModioGameID& In); +Modio::FileMetadataID ToModio(const FModioFileMetadataID& In); +Modio::UserID ToModio(const FModioUserID& In); +Modio::LogLevel ToModio(EModioLogLevel UnrealLogLevel); +Modio::AvatarSize ToModio(EModioAvatarSize AvatarSize); +Modio::GallerySize ToModio(EModioGallerySize GallerySize); +Modio::LogoSize ToModio(EModioLogoSize LogoSize); +Modio::Environment ToModio(EModioEnvironment Environment); +Modio::Portal ToModio(EModioPortal Portal); +Modio::Language ToModio(EModioLanguage Language); -FORCEINLINE Modio::ModID ToModio(const FModioModID& In); -FORCEINLINE Modio::GameID ToModio(const FModioGameID& In); -FORCEINLINE Modio::FileMetadataID ToModio(const FModioFileMetadataID& In); -FORCEINLINE Modio::UserID ToModio(const FModioUserID& In); - -#pragma region Implementation - -// @todo: Rename this to ToModio as it doesn't matter that it's the part of STD of modio -FORCEINLINE std::string ToModio(const FString& String) -{ - return std::string(TCHAR_TO_UTF8(*String)); -} - -FORCEINLINE std::vector ToModio(const TArray& StringArray) -{ - std::vector Result; - Result.reserve(StringArray.Num()); - for (const FString& It : StringArray) - { - Result.emplace_back(TCHAR_TO_UTF8(*It)); - } - return Result; -} - -FORCEINLINE std::chrono::system_clock::time_point ToModio(FDateTime Time) -{ - return std::chrono::system_clock::time_point(std::chrono::system_clock::duration(Time.ToUnixTimestamp())); -} - -FORCEINLINE int64 ToUnreal(std::int64_t Value) -{ - return Value; -} - -FORCEINLINE bool ToUnreal(bool Value) -{ - return Value; -} - -FORCEINLINE double ToUnreal(double Value) -{ - return Value; -} +#pragma region ToModio implementation -FORCEINLINE uint64 ToUnreal(std::size_t Value) -{ - static_assert(sizeof(std::size_t) == sizeof(uint64), "size_t is not 64-bits wide. Are you in x64 configuration?"); - return Value; -} +MODIO_BEGIN_CONVERT_SWITCHES -FString ToUnreal(const std::string& String) -{ - return UTF8_TO_TCHAR(String.c_str()); -} +MODIO_END_CONVERT_SWITCHES -FORCEINLINE FString ToUnreal(const Modio::filesystem::path& Path) +template +typename TEnableIf>::Value, DestType>::Type ToUnreal( + FlagType Flags) { - return UTF8_TO_TCHAR(Path.generic_u8string().c_str()); + return static_cast(Flags.RawValue()); } -FORCEINLINE FDateTime ToUnrealDateTime(std::int64_t UnixTimestamp) -{ - return FDateTime::FromUnixTimestamp(UnixTimestamp); -} template TArray ToUnreal(std::vector&& OriginalArray) @@ -153,229 +111,5 @@ std::vector ToModio(const TArray& OriginalArray) return Out; } -FORCEINLINE Modio::ApiKey ToModio(const FModioApiKey& In) -{ - return Modio::ApiKey(TCHAR_TO_UTF8(*In.ToString())); -} - -FORCEINLINE Modio::EmailAddress ToModio(const FModioEmailAddress& In) -{ - return Modio::EmailAddress(TCHAR_TO_UTF8(*In.ToString())); -} - -FORCEINLINE Modio::EmailAuthCode ToModio(const FModioEmailAuthCode& In) -{ - return Modio::EmailAuthCode(TCHAR_TO_UTF8(*In.ToString())); -} - -FORCEINLINE Modio::ModID ToModio(const FModioModID& In) -{ - return Modio::ModID(In.ModID); -} - -FORCEINLINE Modio::GameID ToModio(const FModioGameID& In) -{ - return Modio::GameID(In.GameID); -} -FORCEINLINE Modio::FileMetadataID ToModio(const FModioFileMetadataID& In) -{ - return Modio::FileMetadataID(In.FileMetadataID); -} -FORCEINLINE Modio::UserID ToModio(const FModioUserID& In) -{ - return Modio::UserID(In.UserID); -} - -FORCEINLINE FModioModID ToUnreal(Modio::ModID Value); -FORCEINLINE FModioFileMetadataID ToUnreal(Modio::FileMetadataID Value); - -FORCEINLINE Modio::LogLevel ToModio(EModioLogLevel UnrealLogLevel); -FORCEINLINE Modio::AvatarSize ToModio(EModioAvatarSize AvatarSize); -FORCEINLINE Modio::GallerySize ToModio(EModioGallerySize GallerySize); -FORCEINLINE Modio::LogoSize ToModio(EModioLogoSize LogoSize); -FORCEINLINE Modio::Environment ToModio(EModioEnvironment Environment); -FORCEINLINE Modio::Portal ToModio(EModioPortal Portal); - -#pragma region ToModio implementation - -MODIO_BEGIN_CONVERT_SWITCHES - -Modio::LogLevel ToModio(EModioLogLevel UnrealLogLevel) -{ - switch (UnrealLogLevel) - { - case EModioLogLevel::Error: - return Modio::LogLevel::Error; - case EModioLogLevel::Info: - return Modio::LogLevel::Info; - case EModioLogLevel::Trace: - return Modio::LogLevel::Trace; - case EModioLogLevel::Warning: - return Modio::LogLevel::Warning; - } - - checkf(false, TEXT("Missed a case in ToModio(EModioLogLevel UnrealLogLevel)")); - return Modio::LogLevel::Info; -} - -Modio::AvatarSize ToModio(EModioAvatarSize AvatarSize) -{ - switch (AvatarSize) - { - case EModioAvatarSize::Original: - return Modio::AvatarSize::Original; - case EModioAvatarSize::Thumb50: - return Modio::AvatarSize::Thumb50; - case EModioAvatarSize::Thumb100: - return Modio::AvatarSize::Thumb100; - } - - checkf(false, TEXT("Missed a case in ToModio(EModioAvatarSize AvatarSize)")); - return Modio::AvatarSize::Thumb50; -} - -Modio::GallerySize ToModio(EModioGallerySize GallerySize) -{ - switch (GallerySize) - { - case EModioGallerySize::Original: - return Modio::GallerySize::Original; - case EModioGallerySize::Thumb320: - return Modio::GallerySize::Thumb320; - } - - checkf(false, TEXT("Missed a case in ToModio(EModioGallerySize GallerySize)")); - return Modio::GallerySize::Thumb320; -} - -Modio::LogoSize ToModio(EModioLogoSize LogoSize) -{ - switch (LogoSize) - { - case EModioLogoSize::Original: - return Modio::LogoSize::Original; - case EModioLogoSize::Thumb320: - return Modio::LogoSize::Thumb320; - case EModioLogoSize::Thumb640: - return Modio::LogoSize::Thumb640; - case EModioLogoSize::Thumb1280: - return Modio::LogoSize::Thumb1280; - } - - checkf(false, TEXT("Missed a case in ToModio(EModioLogoSize LogoSize)")); - return Modio::LogoSize::Thumb320; -} - -Modio::Environment ToModio(EModioEnvironment Environment) -{ - switch (Environment) - { - case EModioEnvironment::Test: - return Modio::Environment::Test; - case EModioEnvironment::Live: - return Modio::Environment::Live; - } - - checkf(false, TEXT("Missed a case in ToModio(EModioEnvironment Environment)")); - return Modio::Environment::Test; -} - -Modio::Portal ToModio(EModioPortal Portal) -{ - switch (Portal) - { - case EModioPortal::None: - return Modio::Portal::None; - break; - case EModioPortal::Apple: - return Modio::Portal::Apple; - break; - case EModioPortal::EpicGamesStore: - return Modio::Portal::EpicGamesStore; - break; - case EModioPortal::GOG: - return Modio::Portal::GOG; - break; - case EModioPortal::Google: - return Modio::Portal::Google; - break; - case EModioPortal::Itchio: - return Modio::Portal::Itchio; - break; - case EModioPortal::Nintendo: - return Modio::Portal::Nintendo; - break; - case EModioPortal::PSN: - return Modio::Portal::PSN; - break; - case EModioPortal::Steam: - return Modio::Portal::Steam; - break; - case EModioPortal::XboxLive: - return Modio::Portal::XboxLive; - break; - } - checkf(false, TEXT("Missed a case in ToModio(EModioPortal)")); - return Modio::Portal::None; -} - -FORCEINLINE Modio::Language ToModio(EModioLanguage Language) -{ - switch (Language) - { - case EModioLanguage::English: - return Modio::Language::English; - case EModioLanguage::Bulgarian: - return Modio::Language::Bulgarian; - case EModioLanguage::French: - return Modio::Language::French; - case EModioLanguage::German: - return Modio::Language::German; - case EModioLanguage::Italian: - return Modio::Language::Italian; - case EModioLanguage::Polish: - return Modio::Language::Polish; - case EModioLanguage::Portuguese: - return Modio::Language::Portuguese; - case EModioLanguage::Hungarian: - return Modio::Language::Hungarian; - case EModioLanguage::Japanese: - return Modio::Language::Japanese; - case EModioLanguage::Korean: - return Modio::Language::Korean; - case EModioLanguage::Russian: - return Modio::Language::Russian; - case EModioLanguage::Spanish: - return Modio::Language::Spanish; - case EModioLanguage::Thai: - return Modio::Language::Thai; - case EModioLanguage::ChineseSimplified: - return Modio::Language::ChineseSimplified; - case EModioLanguage::ChineseTraditional: - return Modio::Language::ChineseTraditional; - } - - checkf(false, TEXT("Missed a case in ToModio(EModioLanguage Language)")); - return Modio::Language::English; -} - -MODIO_END_CONVERT_SWITCHES - -FModioModID ToUnreal(Modio::ModID Value) -{ - return FModioModID(Value); -} - -FModioFileMetadataID ToUnreal(Modio::FileMetadataID Value) -{ - return FModioFileMetadataID(Value); -} - -template -typename TEnableIf>::Value, DestType>::Type ToUnreal( - FlagType Flags) -{ - return static_cast(Flags.RawValue()); -} #pragma endregion diff --git a/Source/Modio/Private/Internal/ModioPrivateDefines.h b/Source/Modio/Private/Internal/ModioPrivateDefines.h index 44422c85..371656d3 100644 --- a/Source/Modio/Private/Internal/ModioPrivateDefines.h +++ b/Source/Modio/Private/Internal/ModioPrivateDefines.h @@ -10,10 +10,30 @@ #pragma once -// This makes missing a value in the switch statement a fatal error, is disabled after our conversion routines -#define MODIO_BEGIN_CONVERT_SWITCHES \ - __pragma(warning(push)) \ - __pragma(warning(error : 4062)) +#if defined(_MSC_VER) -#define MODIO_END_CONVERT_SWITCHES \ - __pragma(warning(pop)) + #ifdef MODIO_USE_CHECK_SWITCHES + // This makes missing a value in the switch statement a fatal error, is disabled after our conversion routines + #define MODIO_BEGIN_CONVERT_SWITCHES \ + __pragma(warning(push)) \ + // Compiler warning (level 4) C4062 enumerator 'identifier' in switch of enum 'enumeration' is not handled + __pragma(warning(error : 4062)) + + #define MODIO_END_CONVERT_SWITCHES \ + __pragma(warning(pop)) + #else + #define MODIO_BEGIN_CONVERT_SWITCHES + #define MODIO_END_CONVERT_SWITCHES + #endif + +#elif defined(__GNUC__) || defined(__clang__) + + #define MODIO_BEGIN_CONVERT_SWITCHES + #define MODIO_END_CONVERT_SWITCHES + +#else + + #define MODIO_BEGIN_CONVERT_SWITCHES + #define MODIO_END_CONVERT_SWITCHES + +#endif diff --git a/Source/Modio/Private/Libraries/ModioImageLibrary.cpp b/Source/Modio/Private/Libraries/ModioImageLibrary.cpp index 1758adba..7ef71d6b 100644 --- a/Source/Modio/Private/Libraries/ModioImageLibrary.cpp +++ b/Source/Modio/Private/Libraries/ModioImageLibrary.cpp @@ -12,18 +12,18 @@ #include "Engine/Texture.h" #include "Internal/ModioPrivateDefines.h" -class UTexture2DDynamic* UModioImageLibrary::GetTexture(const FModioImage& Image) +class UTexture2DDynamic* UModioImageLibrary::GetTexture(const FModioImageWrapper& Image) { return Image.GetTexture(); } -void UModioImageLibrary::LoadAsync(const FModioImage& Image, FOnLoadImageDelegate OnImageLoaded) +void UModioImageLibrary::LoadAsync(const FModioImageWrapper& Image, FOnLoadImageDelegate OnImageLoaded) { Image.LoadAsync(FOnLoadImageDelegateFast::CreateLambda( [OnImageLoaded](UTexture2DDynamic* Texture) { OnImageLoaded.ExecuteIfBound(Texture); })); } -EModioImageState UModioImageLibrary::GetState(const FModioImage& Image) +EModioImageState UModioImageLibrary::GetState(const FModioImageWrapper& Image) { return Image.GetState(); } diff --git a/Source/Modio/Private/Libraries/ModioOptionalLibrary.cpp b/Source/Modio/Private/Libraries/ModioOptionalLibrary.cpp index 91bb3853..4c8861c0 100644 --- a/Source/Modio/Private/Libraries/ModioOptionalLibrary.cpp +++ b/Source/Modio/Private/Libraries/ModioOptionalLibrary.cpp @@ -95,7 +95,7 @@ bool UModioOptionalLibrary::IsSet_ModioOptionalImage(const struct FModioOptional } bool UModioOptionalLibrary::GetValue_ModioOptionalImage(const struct FModioOptionalImage& OptionalImage, - struct FModioImage& Image) + struct FModioImageWrapper& Image) { return GetValueInternal(OptionalImage, Image); } diff --git a/Source/Modio/Private/Libraries/ModioSDKLibrary.cpp b/Source/Modio/Private/Libraries/ModioSDKLibrary.cpp index 9516b3a3..5383dc98 100644 --- a/Source/Modio/Private/Libraries/ModioSDKLibrary.cpp +++ b/Source/Modio/Private/Libraries/ModioSDKLibrary.cpp @@ -1,16 +1,16 @@ -/* +/* * Copyright (C) 2021 mod.io Pty Ltd. - * + * * This file is part of the mod.io UE4 Plugin. - * - * Distributed under the MIT License. (See accompanying file LICENSE or + * + * Distributed under the MIT License. (See accompanying file LICENSE or * view online at ) - * + * */ #include "Libraries/ModioSDKLibrary.h" -#include "ModioSettings.h" #include "Internationalization/Regex.h" +#include "ModioSettings.h" FModioGameID UModioSDKLibrary::GetProjectGameId() { @@ -39,6 +39,23 @@ FModioInitializeOptions UModioSDKLibrary::GetProjectInitializeOptions() return Options; } +#if WITH_DEV_AUTOMATION_TESTS +FModioInitializeOptions UModioSDKLibrary::GetAutomationTestOptions() +{ + #if WITH_EDITORONLY_DATA + const UModioSettings* Settings = GetDefault(); + FModioInitializeOptions Options = Settings->AutomationTestOptions; + if (!Settings->AutomationSessionID.IsEmpty()) + { + Options.LocalSessionIdentifier = Settings->AutomationSessionID; + } + return Options; + #else + return FModioInitializeOptions {}; + #endif +} +#endif + static FString ToString(EFileSizeUnit Unit) { switch (Unit) @@ -51,6 +68,8 @@ static FString ToString(EFileSizeUnit Unit) return TEXT("MB"); case EFileSizeUnit::GB: return TEXT("GB"); + default: + return TEXT("Unknown unit"); } return TEXT("Unknown unit"); diff --git a/Source/Modio/Private/ModioModule.cpp b/Source/Modio/Private/ModioModule.cpp index 0476c2d9..953802e4 100644 --- a/Source/Modio/Private/ModioModule.cpp +++ b/Source/Modio/Private/ModioModule.cpp @@ -1,20 +1,21 @@ -/* +/* * Copyright (C) 2021 mod.io Pty Ltd. - * + * * This file is part of the mod.io UE4 Plugin. - * - * Distributed under the MIT License. (See accompanying file LICENSE or + * + * Distributed under the MIT License. (See accompanying file LICENSE or * view online at ) - * + * */ // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. #include "ModioModule.h" -#include "Modio.h" #include "Core.h" #include "Engine/Engine.h" +#include "HAL/PlatformFilemanager.h" #include "Logging/LogVerbosity.h" +#include "Modio.h" #include "ModioSDK.h" #include "ModioSettings.h" @@ -26,8 +27,22 @@ void FModioModule::StartupModule() { - Modio::SetLogCallback([](Modio::LogLevel Level, std::string Message) { + IPlatformFile& FileManager = FPlatformFileManager::Get().GetPlatformFile(); + + // delete any existing ModioLogFile so we're only logging current session. + if (FileManager.FileExists(*ModioLogFile)) + { + FileManager.DeleteFile(*ModioLogFile); + } + + Modio::SetLogCallback([&](Modio::LogLevel Level, std::string Message) { UE_LOG(LogModio, Log, TEXT("%s"), UTF8_TO_TCHAR(Message.c_str())); + + // Append message to ModioLogFile. + // FFileHelper::SaveStringToFile() will create a new file if it does not yet exist + FFileHelper::SaveStringToFile(UTF8_TO_TCHAR(Message.c_str()), *ModioLogFile, + FFileHelper::EEncodingOptions::AutoDetect, &IFileManager::Get(), + EFileWrite::FILEWRITE_Append); }); RegisterSettings(); diff --git a/Source/Modio/Private/ModioModule.h b/Source/Modio/Private/ModioModule.h index 17e120ca..7cd4c7ab 100644 --- a/Source/Modio/Private/ModioModule.h +++ b/Source/Modio/Private/ModioModule.h @@ -1,15 +1,18 @@ -/* +/* * Copyright (C) 2021 mod.io Pty Ltd. - * + * * This file is part of the mod.io UE4 Plugin. - * - * Distributed under the MIT License. (See accompanying file LICENSE or + * + * Distributed under the MIT License. (See accompanying file LICENSE or * view online at ) - * + * */ #pragma once +#include "GenericPlatform/GenericPlatformFile.h" +#include "Misc/FileHelper.h" +#include "Misc/Paths.h" #include "Modules/ModuleManager.h" class FModioModule : public IModuleInterface @@ -20,6 +23,7 @@ class FModioModule : public IModuleInterface virtual void ShutdownModule() override; private: + FString ModioLogFile = FPaths::ProjectLogDir() / TEXT("Modio.log"); void RegisterSettings(); void UnregisterSettings(); }; diff --git a/Source/Modio/Private/ModioPrivatePCH.h b/Source/Modio/Private/ModioPrivatePCH.h index d77ffa2b..071a1b66 100644 --- a/Source/Modio/Private/ModioPrivatePCH.h +++ b/Source/Modio/Private/ModioPrivatePCH.h @@ -8,6 +8,4 @@ * */ -#pragma once - -//#include "ModioSDK.h" +#pragma once \ No newline at end of file diff --git a/Source/Modio/Private/ModioSubsystem.cpp b/Source/Modio/Private/ModioSubsystem.cpp index c1dfdcb2..2874ad5e 100644 --- a/Source/Modio/Private/ModioSubsystem.cpp +++ b/Source/Modio/Private/ModioSubsystem.cpp @@ -267,7 +267,7 @@ void UModioSubsystem::GetModMediaAsync(FModioModID ModId, EModioAvatarSize Avata // function returning type T so we can be explicit about the expected type if (Path) { - FModioImage Out; + FModioImageWrapper Out; Out.ImagePath = ToUnreal(Path.value()); Callback.ExecuteIfBound(ec, Out); } @@ -289,7 +289,7 @@ void UModioSubsystem::GetModMediaAsync(FModioModID ModId, EModioGallerySize Gall // function returning type T so we can be explicit about the expected type if (Path) { - FModioImage Out; + FModioImageWrapper Out; Out.ImagePath = ToUnreal(Path.value()); Callback.ExecuteIfBound(ec, Out); } @@ -310,7 +310,7 @@ void UModioSubsystem::GetModMediaAsync(FModioModID ModId, EModioLogoSize LogoSiz // function returning type T so we can be explicit about the expected type if (Path) { - FModioImage Out; + FModioImageWrapper Out; Out.ImagePath = ToUnreal(Path.value()); Callback.ExecuteIfBound(ec, Out); } @@ -326,7 +326,7 @@ void UModioSubsystem::K2_GetModMediaAvatarAsync(FModioModID ModId, EModioAvatarS { GetModMediaAsync( ModId, AvatarSize, - FOnGetMediaDelegateFast::CreateLambda([Callback](FModioErrorCode ec, TOptional Media) { + FOnGetMediaDelegateFast::CreateLambda([Callback](FModioErrorCode ec, TOptional Media) { Callback.ExecuteIfBound(ec, ToBP(Media)); })); } @@ -336,7 +336,7 @@ void UModioSubsystem::K2_GetModMediaGalleryImageAsync(FModioModID ModId, EModioG { GetModMediaAsync( ModId, GallerySize, Index, - FOnGetMediaDelegateFast::CreateLambda([Callback](FModioErrorCode ec, TOptional Media) { + FOnGetMediaDelegateFast::CreateLambda([Callback](FModioErrorCode ec, TOptional Media) { Callback.ExecuteIfBound(ec, ToBP(Media)); })); } @@ -345,7 +345,7 @@ void UModioSubsystem::K2_GetModMediaLogoAsync(FModioModID ModId, EModioLogoSize { GetModMediaAsync( ModId, LogoSize, - FOnGetMediaDelegateFast::CreateLambda([Callback](FModioErrorCode ec, TOptional Media) { + FOnGetMediaDelegateFast::CreateLambda([Callback](FModioErrorCode ec, TOptional Media) { Callback.ExecuteIfBound(ec, ToBP(Media)); })); } @@ -469,7 +469,7 @@ void UModioSubsystem::GetUserMediaAsync(EModioAvatarSize AvatarSize, FOnGetMedia // template function returning type T so we can be explicit about the expected type if (Media) { - FModioImage Out; + FModioImageWrapper Out; Out.ImagePath = ToUnreal(Media.value()); Callback.ExecuteIfBound(ec, Out); } @@ -483,7 +483,7 @@ void UModioSubsystem::GetUserMediaAsync(EModioAvatarSize AvatarSize, FOnGetMedia void UModioSubsystem::K2_GetUserMediaAvatarAsync(EModioAvatarSize AvatarSize, FOnGetMediaDelegate Callback) { GetUserMediaAsync(AvatarSize, FOnGetMediaDelegateFast::CreateLambda( - [Callback](FModioErrorCode ec, TOptional ModioMedia) { + [Callback](FModioErrorCode ec, TOptional ModioMedia) { Callback.ExecuteIfBound(ec, ToBP(ModioMedia)); })); } @@ -549,6 +549,20 @@ void UModioSubsystem::K2_ReportContentAsync(FModioReportParams Report, FOnErrorO [Callback](FModioErrorCode ec) { Callback.ExecuteIfBound(ec); })); } + +TArray ToUnreal(const std::vector& OriginalArray) +{ + TArray Result; + + Result.Reserve(OriginalArray.size()); + for (const auto& It : OriginalArray) + { + Result.Emplace(ToUnreal(It)); + } + + return Result; +} + void UModioSubsystem::GetModDependenciesAsync(FModioModID ModID, FOnGetModDependenciesDelegateFast Callback) { Modio::GetModDependenciesAsync( @@ -556,7 +570,7 @@ void UModioSubsystem::GetModDependenciesAsync(FModioModID ModID, FOnGetModDepend if (Dependencies) { FModioModDependencyList Out; - Out.InternalList = ToUnreal(Dependencies->GetRawList()); + Out.InternalList = ToUnreal(Dependencies->GetRawList()); Out.PagedResult = FModioPagedResult(Dependencies.value()); Callback.ExecuteIfBound(ec, Out); } @@ -601,8 +615,20 @@ void UModioSubsystem::K2_SubmitNewModAsync(FModioModCreationHandle Handle, FModi { SubmitNewModAsync( Handle, Params, - FOnSubmitNewModDelegateFast::CreateLambda( - [Callback](FModioErrorCode ec, TOptional NewModID) { Callback.ExecuteIfBound(ec, FModioOptionalModID {NewModID}); })); + FOnSubmitNewModDelegateFast::CreateLambda([Callback](FModioErrorCode ec, TOptional NewModID) { + Callback.ExecuteIfBound(ec, FModioOptionalModID {NewModID}); + })); +} + +void UModioSubsystem::ArchiveModAsync(FModioModID Mod, FOnErrorOnlyDelegateFast Callback) +{ + Modio::ArchiveModAsync(ToModio(Mod), [Callback](Modio::ErrorCode ec) { Callback.ExecuteIfBound(ToUnreal(ec)); }); +} + +void UModioSubsystem::K2_ArchiveModAsync(FModioModID Mod, FOnErrorOnlyDelegate Callback) +{ + ArchiveModAsync( + Mod, FOnErrorOnlyDelegateFast::CreateLambda([Callback](FModioErrorCode ec) { Callback.ExecuteIfBound(ec); })); } /// File scope implementations diff --git a/Source/Modio/Private/Tests/ToModio.cpp b/Source/Modio/Private/Tests/ToModio.cpp index 2d153ba5..698fce99 100644 --- a/Source/Modio/Private/Tests/ToModio.cpp +++ b/Source/Modio/Private/Tests/ToModio.cpp @@ -8,7 +8,6 @@ * */ -#include "Engine.h" #include "Internal/Convert/AuthParams.h" #include "Libraries/ModioSDKLibrary.h" #include "Misc/AutomationTest.h" diff --git a/Source/Modio/Private/Tests/ToUnreal.cpp b/Source/Modio/Private/Tests/ToUnreal.cpp index 636854df..a304496d 100644 --- a/Source/Modio/Private/Tests/ToUnreal.cpp +++ b/Source/Modio/Private/Tests/ToUnreal.cpp @@ -8,7 +8,6 @@ * */ -#include "Engine.h" #include "Libraries/ModioSDKLibrary.h" #include "Misc/AutomationTest.h" #include "Internal/Convert/ModStats.h" @@ -22,18 +21,18 @@ bool FModioConvertDataToUnrealFormatTest::RunTest(const FString& Parameters) { Modio::ModStats InObj = {1, 2, 3, 4, 5, 6, 7, 8, 0.5f, "Positive"}; FModioModStats OutObj = ToUnreal(InObj); - TestEqual("PopularityRankPosition", OutObj.PopularityRankPosition, InObj.PopularityRankPosition); - TestEqual("PopularityRankTotalMods", OutObj.PopularityRankTotalMods, InObj.PopularityRankTotalMods); - TestEqual("DownloadsTotal", OutObj.DownloadsTotal, InObj.DownloadsTotal); - TestEqual("SubscribersTotal", OutObj.SubscribersTotal, InObj.SubscribersTotal); - TestEqual("RatingTotal", OutObj.RatingTotal, InObj.RatingTotal); - TestEqual("RatingPositive", OutObj.RatingPositive, InObj.RatingPositive); - TestEqual("RatingNegative", OutObj.RatingNegative, InObj.RatingNegative); - TestEqual("RatingPercentagePositive", OutObj.RatingPercentagePositive, InObj.RatingPercentagePositive); - TestEqual("RatingWeightedAggregate", - FMath::IsNearlyEqual((float) OutObj.RatingWeightedAggregate, (float) InObj.RatingWeightedAggregate), + // In linux, TestEqual can not figure out the conversion between int32 and int64, for that reason, it is explicit here. + TestEqual("PopularityRankPosition", (int32)OutObj.PopularityRankPosition, (int32)InObj.PopularityRankPosition); + TestEqual("PopularityRankTotalMods", (int32)OutObj.PopularityRankTotalMods, (int32)InObj.PopularityRankTotalMods); + TestEqual("DownloadsTotal", (int32)OutObj.DownloadsTotal, (int32)InObj.DownloadsTotal); + TestEqual("SubscribersTotal", (int32)OutObj.SubscribersTotal, InObj.SubscribersTotal); + TestEqual("RatingTotal", (int32)OutObj.RatingTotal, (int32)InObj.RatingTotal); + TestEqual("RatingPositive", (int32)OutObj.RatingPositive, (int32)InObj.RatingPositive); + TestEqual("RatingNegative", (int32)OutObj.RatingNegative, (int32)InObj.RatingNegative); + TestEqual("RatingPercentagePositive", (int32)OutObj.RatingPercentagePositive, (int32)InObj.RatingPercentagePositive); + TestEqual("RatingWeightedAggregate", FMath::IsNearlyEqual((float) OutObj.RatingWeightedAggregate, (float) InObj.RatingWeightedAggregate), true); - TestEqual("RatingDisplayText", OutObj.RatingDisplayText.Equals(FString(InObj.RatingDisplayText.c_str())), true); + TestEqual(TEXT("RatingDisplayText"), OutObj.RatingDisplayText.Equals(FString(InObj.RatingDisplayText.c_str())), true); return true; } diff --git a/Source/Modio/Private/Types/ModioCommonTypes.cpp b/Source/Modio/Private/Types/ModioCommonTypes.cpp index 08745ab8..6d31b616 100644 --- a/Source/Modio/Private/Types/ModioCommonTypes.cpp +++ b/Source/Modio/Private/Types/ModioCommonTypes.cpp @@ -20,7 +20,7 @@ uint32 GetTypeHash(FModioModID ModioModId) return FCrc::MemCrc32(&ModioModId.ModID, sizeof(Modio::ModID)); } -FModioGameID::FModioGameID() : GameID(INDEX_NONE) {} +FModioGameID::FModioGameID() : GameId(INDEX_NONE) {} FModioGameID FModioGameID::InvalidGameID() { @@ -29,7 +29,7 @@ FModioGameID FModioGameID::InvalidGameID() uint32 GetTypeHash(FModioGameID ModioGameId) { - return FCrc::MemCrc32(&ModioGameId.GameID, sizeof(Modio::GameID)); + return FCrc::MemCrc32(&ModioGameId.GameId, sizeof(Modio::GameID)); } FModioFileMetadataID::FModioFileMetadataID() : FileMetadataID(INDEX_NONE) {} diff --git a/Source/Modio/Private/Types/ModioImage.cpp b/Source/Modio/Private/Types/ModioImage.cpp index 0655ba24..0ef59acb 100644 --- a/Source/Modio/Private/Types/ModioImage.cpp +++ b/Source/Modio/Private/Types/ModioImage.cpp @@ -8,7 +8,7 @@ * */ -#include "Types/ModioImage.h" +#include "Types/ModioImageWrapper.h" #include "Async/Async.h" #include "Engine/Engine.h" @@ -32,7 +32,7 @@ static void WriteRawToTexture_RenderThread(FTexture2DDynamicResource* TextureRes bool bUseSRGB = true); #endif -class UTexture2DDynamic* FModioImage::GetTexture() const +class UTexture2DDynamic* FModioImageWrapper::GetTexture() const { UTexture2DDynamic* Texture = nullptr; if (UModioSubsystem* ModioSubsystem = GEngine->GetEngineSubsystem()) @@ -43,7 +43,7 @@ class UTexture2DDynamic* FModioImage::GetTexture() const return Texture; } -TOptional FModioImage::LoadTextureDataFromDisk(const FString& ImagePath) +TOptional FModioImageWrapper::LoadTextureDataFromDisk(const FString& ImagePath) { #if !UE_SERVER IImageWrapperModule& ImageWrapperModule = @@ -70,7 +70,7 @@ TOptional FModioImage::LoadTextureDataFromDis return {}; } -EModioImageState FModioImage::GetState() const +EModioImageState FModioImageWrapper::GetState() const { if (UModioSubsystem* ModioSubsystem = GEngine->GetEngineSubsystem()) { @@ -79,8 +79,11 @@ EModioImageState FModioImage::GetState() const return EModioImageState::OnDisc; } -void FModioImage::LoadAsync(FOnLoadImageDelegateFast Callback) const +void FModioImageWrapper::LoadAsync(FOnLoadImageDelegateFast Callback) const { +#if UE_SERVER + Callback.ExecuteIfBound(nullptr); +#else // Check if it's already loaded, if so, don't load it again if (UTexture2DDynamic* Texture = GetTexture()) { @@ -142,6 +145,7 @@ void FModioImage::LoadAsync(FOnLoadImageDelegateFast Callback) const }); }); } +#endif } #if !UE_SERVER diff --git a/Source/Modio/Private/Types/ModioModInfoList.cpp b/Source/Modio/Private/Types/ModioModInfoList.cpp index b65ff741..9e3c3041 100644 --- a/Source/Modio/Private/Types/ModioModInfoList.cpp +++ b/Source/Modio/Private/Types/ModioModInfoList.cpp @@ -9,14 +9,26 @@ */ #include "Types/ModioModInfoList.h" -#include "Internal/Convert/List.h" + #include "Internal/Convert/ModInfo.h" + +#include "Internal/Convert/List.h" #include "ModioSDK.h" FModioModInfoList::FModioModInfoList(const Modio::ModInfoList& ModInfoList) - : FModioPagedResult(ModInfoList), - FModioList(ToUnrealList(ModInfoList)) -{} + : FModioPagedResult(ModInfoList) +// FModioList(ToUnrealList(ModInfoList)) +{ + TArray Result; + + Result.Reserve(ModInfoList.Size()); + for (const Modio::ModInfo& It : ModInfoList) + { + Result.Emplace(ToUnreal(It)); + } + + InternalList = Result; +} FModioModInfoList::FModioModInfoList(const FModioPagedResult& PagedResult, TArray&& ModInfoList) : FModioPagedResult(PagedResult), diff --git a/Source/Modio/Private/Types/ModioModTagOptions.cpp b/Source/Modio/Private/Types/ModioModTagOptions.cpp index afad7756..9db2cbf2 100644 --- a/Source/Modio/Private/Types/ModioModTagOptions.cpp +++ b/Source/Modio/Private/Types/ModioModTagOptions.cpp @@ -9,14 +9,26 @@ */ #include "Types/ModioModTagOptions.h" -#include "Internal/Convert/List.h" + #include "Internal/Convert/ModTagInfo.h" + +#include "Internal/Convert/List.h" #include "ModioSDK.h" -FModioModTagOptions::FModioModTagOptions(const Modio::ModTagOptions& ModInfoList) - : FModioPagedResult(ModInfoList), - FModioList(ToUnrealList(ModInfoList)) -{} +FModioModTagOptions::FModioModTagOptions(const Modio::ModTagOptions& ModTagList) + : FModioPagedResult(ModTagList) +// FModioList(ToUnrealList(ModInfoList)) +{ + TArray Result; + + Result.Reserve(ModTagList.Size()); + for (const Modio::ModTagInfo& It : ModTagList) + { + Result.Emplace(ToUnreal(It)); + } + + InternalList = Result; +} FModioOptionalModTagOptions::FModioOptionalModTagOptions(TOptional&& ModTagOptions) : Internal(MoveTemp(ModTagOptions)) diff --git a/Source/Modio/Private/UI/ModioExampleLibrary.cpp b/Source/Modio/Private/UI/ModioExampleLibrary.cpp index 8f8c37a6..1a68cccf 100644 --- a/Source/Modio/Private/UI/ModioExampleLibrary.cpp +++ b/Source/Modio/Private/UI/ModioExampleLibrary.cpp @@ -76,22 +76,24 @@ static TOptional bSortAcending = false; } +// Warning: pasting formed an invalid preprocessing token +// https://stackoverflow.com/questions/46356185/pasting-formed-an-invalid-processing-token #define SORT_FUNC(SORT_ASC, VARIABLE) \ (SORT_ASC) ? TFunction( \ - [](const FModioModInfo& A, const FModioModInfo& B) { \ - if (A.##VARIABLE < B.##VARIABLE) \ + [](const FModioModInfo& First, const FModioModInfo& Second) { \ + if (First.VARIABLE < Second.VARIABLE) \ { \ return true; \ } \ - return A.ModId < B.ModId; \ + return First.ModId < Second.ModId; \ }) \ : TFunction( \ - [](const FModioModInfo& A, const FModioModInfo& B) { \ - if (A.##VARIABLE > B.##VARIABLE) \ + [](const FModioModInfo& First, const FModioModInfo& Second) { \ + if (First.VARIABLE > Second.VARIABLE) \ { \ return true; \ } \ - return A.ModId > B.ModId; \ + return First.ModId > Second.ModId; \ }) // @todo: Optimize: Do the select first @@ -124,9 +126,9 @@ static TOptional { SortFunc = bSortAcending ? TFunction( - [](const FModioModInfo& A, const FModioModInfo& B) { return A.ModId < B.ModId; }) + [](const FModioModInfo& First, const FModioModInfo& Second) { return First.ModId < Second.ModId; }) : TFunction( - [](const FModioModInfo& A, const FModioModInfo& B) { return A.ModId > B.ModId; }); + [](const FModioModInfo& First, const FModioModInfo& Second) { return First.ModId > Second.ModId; }); } else { diff --git a/Source/Modio/Public/Libraries/ModioErrorConditionLibrary.h b/Source/Modio/Public/Libraries/ModioErrorConditionLibrary.h index a666739a..81a7ecbe 100644 --- a/Source/Modio/Public/Libraries/ModioErrorConditionLibrary.h +++ b/Source/Modio/Public/Libraries/ModioErrorConditionLibrary.h @@ -28,6 +28,11 @@ class MODIO_API UModioErrorConditionLibrary : public UBlueprintFunctionLibrary * @param Condition The error condition to check against * @return true if the code matches the condition */ - UFUNCTION(BlueprintCallable, Category = "mod.io|Error Handling") + + // NOTE: The definition of EModioErrorCondition is duplicated here because of an issue + // reported here: + // https://forums.unrealengine.com/t/ustruct-type-must-be-a-uclass-ustruct-or-uenum/358937 + // Because of that, the line below was commented. + // UFUNCTION(BlueprintCallable, Category = "mod.io|Error Handling") static bool ErrorCodeMatches(FModioErrorCode ErrorCode, EModioErrorCondition Condition); }; \ No newline at end of file diff --git a/Source/Modio/Public/Libraries/ModioImageLibrary.h b/Source/Modio/Public/Libraries/ModioImageLibrary.h index 7ac60130..b852a023 100644 --- a/Source/Modio/Public/Libraries/ModioImageLibrary.h +++ b/Source/Modio/Public/Libraries/ModioImageLibrary.h @@ -11,7 +11,7 @@ #pragma once #include "Kismet/BlueprintFunctionLibrary.h" #include "Types/ModioCommonTypes.h" -#include "Types/ModioImage.h" +#include "Types/ModioImageWrapper.h" #include "Types/ModioImageState.h" #include "ModioImageLibrary.generated.h" @@ -26,15 +26,15 @@ class MODIO_API UModioImageLibrary : public UBlueprintFunctionLibrary public: /** Get the texture if if has been loaded by any FModioImage instance */ UFUNCTION(BlueprintPure, Category = "mod.io|Image") - static class UTexture2DDynamic* GetTexture(const FModioImage& Image); + static class UTexture2DDynamic* GetTexture(const FModioImageWrapper& Image); /** Load the texture into memory async, if it's already in memory, then we will return immediately */ UFUNCTION(BlueprintCallable, Category = "mod.io|Image") - static void LoadAsync(const FModioImage& Image, FOnLoadImageDelegate OnImageLoaded); + static void LoadAsync(const FModioImageWrapper& Image, FOnLoadImageDelegate OnImageLoaded); /** Get the current state of the image */ UFUNCTION(BlueprintPure, Category = "mod.io|Image") - static EModioImageState GetState(const FModioImage& Image); + static EModioImageState GetState(const FModioImageWrapper& Image); /** * If a logo size is EModioLogoSize::Original, then the size of the Logo returned, diff --git a/Source/Modio/Public/Libraries/ModioOptionalLibrary.h b/Source/Modio/Public/Libraries/ModioOptionalLibrary.h index 7ad5412a..bcafdbc5 100644 --- a/Source/Modio/Public/Libraries/ModioOptionalLibrary.h +++ b/Source/Modio/Public/Libraries/ModioOptionalLibrary.h @@ -16,7 +16,7 @@ #include "Types/ModioModProgressInfo.h" #include "Types/ModioModTagOptions.h" #include "Types/ModioTerms.h" -#include "Types/ModioImage.h" +#include "Types/ModioImageWrapper.h" #include "Types/ModioModDependencyList.h" #include "ModioOptionalLibrary.generated.h" @@ -153,7 +153,7 @@ class MODIO_API UModioOptionalLibrary : public UBlueprintFunctionLibrary UFUNCTION(BlueprintPure, Category = "mod.io|Utilities|Optional", DisplayName = "GetValue (ModioOptionalImage)") static bool GetValue_ModioOptionalImage( const struct FModioOptionalImage& OptionalImage, - struct FModioImage& Image); + struct FModioImageWrapper& Image); /** * Check if the terms has a valid value diff --git a/Source/Modio/Public/Libraries/ModioSDKLibrary.h b/Source/Modio/Public/Libraries/ModioSDKLibrary.h index 137939c2..28e3c711 100644 --- a/Source/Modio/Public/Libraries/ModioSDKLibrary.h +++ b/Source/Modio/Public/Libraries/ModioSDKLibrary.h @@ -56,6 +56,11 @@ class UModioSDKLibrary : public UBlueprintFunctionLibrary UFUNCTION(BlueprintPure, Category = "mod.io|Utilities") static MODIO_API FModioInitializeOptions GetProjectInitializeOptions(); +#if WITH_DEV_AUTOMATION_TESTS + /// @brief Gets the automation test options. not exposed to BP to prevent accidental use by developers in BP + static MODIO_API FModioInitializeOptions GetAutomationTestOptions(); +#endif + /** * Does a basic validation if the email address supplied has a valid form * @return true if the email address has a valid format diff --git a/Source/Modio/Public/ModioImageCache.h b/Source/Modio/Public/ModioImageCache.h index 876bd682..62aa3d25 100644 --- a/Source/Modio/Public/ModioImageCache.h +++ b/Source/Modio/Public/ModioImageCache.h @@ -23,7 +23,7 @@ struct FModioImageCache class UTexture2DDynamic* GetImage(const FString& ImagePath); EModioImageState GetImageState(const FString& ImagePath); private: - friend struct FModioImage; + friend struct FModioImageWrapper; void UpdateImageState(const FString& ImagePath, EModioImageState NewState, class UTexture2DDynamic* Image = nullptr); diff --git a/Source/Modio/Public/ModioSDK.h b/Source/Modio/Public/ModioSDK.h index 686479a2..558e107b 100644 --- a/Source/Modio/Public/ModioSDK.h +++ b/Source/Modio/Public/ModioSDK.h @@ -13,15 +13,19 @@ #define MODIO_PLATFORM_UNREAL 1 +#if defined(_MSC_VER) + #pragma warning(push) + // These warnings are in third party libraries and we don't care about those + #pragma warning(disable : 4265 4996 4668 4191 4583 4582) + // These warnings is in our code, and should be fixed + #pragma warning(disable : 4063) +#endif -#pragma warning(push) -// These warnings are in third party libraries and we don't care about those -#pragma warning(disable : 4265 4996 4668 4191 4583 4582) -// These warnings is in our code, and should be fixed -#pragma warning(disable : 4063) #include "modio/ModioSDK.h" #undef MODIO_PLATFORM_UNREAL #undef ASIO_NO_EXCEPTIONS -#pragma warning(pop) +#if defined(_MSC_VER) + #pragma warning(pop) +#endif diff --git a/Source/Modio/Public/ModioSettings.h b/Source/Modio/Public/ModioSettings.h index 5d2b3c21..a8ad678c 100644 --- a/Source/Modio/Public/ModioSettings.h +++ b/Source/Modio/Public/ModioSettings.h @@ -1,16 +1,17 @@ -/* +/* * Copyright (C) 2021 mod.io Pty Ltd. - * + * * This file is part of the mod.io UE4 Plugin. - * - * Distributed under the MIT License. (See accompanying file LICENSE or + * + * Distributed under the MIT License. (See accompanying file LICENSE or * view online at ) - * + * */ #pragma once #include "Types/ModioCommonTypes.h" +#include "Types/ModioInitializeOptions.h" #include "ModioSettings.generated.h" @@ -43,6 +44,14 @@ class MODIO_API UModioSettings : public UObject UPROPERTY(EditDefaultsOnly, config, Category = "Project") EModioPortal DefaultPortal = EModioPortal::None; +#if WITH_EDITORONLY_DATA + UPROPERTY(EditDefaultsOnly, config, Category = "Project|Automation Testing", meta = (ShowOnlyInnerProperties)) + FModioInitializeOptions AutomationTestOptions; + + UPROPERTY(EditDefaultsOnly, config, Category = "Project|Automation Testing") + FString AutomationSessionID; +#endif + private: #if WITH_EDITOR void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override; diff --git a/Source/Modio/Public/ModioSubsystem.h b/Source/Modio/Public/ModioSubsystem.h index 1162eba8..5358dc9d 100644 --- a/Source/Modio/Public/ModioSubsystem.h +++ b/Source/Modio/Public/ModioSubsystem.h @@ -18,7 +18,7 @@ #include "Types/ModioCreateModParams.h" #include "Types/ModioErrorCode.h" #include "Types/ModioFilterParams.h" -#include "Types/ModioImage.h" +#include "Types/ModioImageWrapper.h" #include "Types/ModioInitializeOptions.h" #include "Types/ModioModCollectionEntry.h" #include "Types/ModioModCreationHandle.h" @@ -41,7 +41,7 @@ DECLARE_DELEGATE_OneParam(FOnErrorOnlyDelegateFast, FModioErrorCode); DECLARE_DELEGATE_OneParam(FOnModManagementDelegateFast, FModioModManagementEvent); DECLARE_DELEGATE_TwoParams(FOnListAllModsDelegateFast, FModioErrorCode, TOptional); DECLARE_DELEGATE_TwoParams(FOnGetModInfoDelegateFast, FModioErrorCode, TOptional); -DECLARE_DELEGATE_TwoParams(FOnGetMediaDelegateFast, FModioErrorCode, TOptional); +DECLARE_DELEGATE_TwoParams(FOnGetMediaDelegateFast, FModioErrorCode, TOptional); DECLARE_DELEGATE_TwoParams(FOnGetModTagOptionsDelegateFast, FModioErrorCode, TOptional); DECLARE_DELEGATE_TwoParams(FOnGetTermsOfUseDelegateFast, FModioErrorCode, TOptional); DECLARE_DELEGATE_TwoParams(FOnGetModDependenciesDelegateFast, FModioErrorCode, TOptional); @@ -413,7 +413,7 @@ class UModioSubsystem : public UEngineSubsystem /** * @brief Uses platform-specific authentication to associate a Mod.io user account with the current platform user - * @param User Authentication payload data to submit to the provider + * @param User Authentication payload data to submit to the provider. * @param Provider The provider to use to perform the authentication * @param Callback Callback invoked once the authentication request has been made * @requires initialized-sdk @@ -491,6 +491,22 @@ class UModioSubsystem : public UEngineSubsystem /** Get our image cache */ struct FModioImageCache& GetImageCache() const; + /* + @brief Archives a mod. This mod will no longer be able to be viewed or retrieved via the SDK, but it will still + exist should you choose to restore it at a later date. Archiving is restricted to team managers and administrators + only. Note that restoration and permanent deletion of a mod is possible only via web interface. + @param Mod The mod to be archived. + @requires authenticated-user + @requires initialized-sdk + @requires no-rate-limiting + @error ApiError::InsufficientPermission|The authenticated user does not have permission to archive this mod.This + action is restricted to team managers and administrators only. + @errorcategory NetworkError|Couldn't connect to mod.io servers + @error GenericError::SDKNotInitialized|SDK not initialized + @errorcategory EntityNotFoundError|Specified mod does not exist or was deleted + */ + MODIO_API void ArchiveModAsync(FModioModID Mod, FOnErrorOnlyDelegateFast Callback); + private: TUniquePtr ImageCache; @@ -510,6 +526,7 @@ class UModioSubsystem : public UEngineSubsystem public: #pragma region Blueprint methods + /** * @brief Initializes the SDK for the given user. Loads the state of mods installed on the system as well as the * set of mods the specified user has installed on this device @@ -518,7 +535,8 @@ class UModioSubsystem : public UEngineSubsystem * @param OnInitComplete Callback which will be invoked with the result of initialization */ UFUNCTION(BlueprintCallable, DisplayName = "InitializeAsync", Category = "mod.io") - MODIO_API void K2_InitializeAsync(const FModioInitializeOptions& InitializeOptions, FOnErrorOnlyDelegate OnInitComplete); + MODIO_API void K2_InitializeAsync(const FModioInitializeOptions& InitializeOptions, + FOnErrorOnlyDelegate OnInitComplete); /** * @brief Sends a request to the Mod.io server to add the specified mod to the user's list of subscriptions, and @@ -872,5 +890,22 @@ class UModioSubsystem : public UEngineSubsystem UFUNCTION(BlueprintCallable, DisplayName = "ReportContentAsync", Category = "mod.io") MODIO_API void K2_ReportContentAsync(FModioReportParams Report, FOnErrorOnlyDelegate Callback); + /* + @brief Archives a mod. This mod will no longer be able to be viewed or retrieved via the SDK, but it will still + exist should you choose to restore it at a later date. Archiving is restricted to team managers and administrators + only. Note that restoration and permanent deletion of a mod is possible only via web interface. + @param Mod The mod to be archived. + @requires authenticated-user + @requires initialized-sdk + @requires no-rate-limiting + @error ApiError::InsufficientPermission|The authenticated user does not have permission to archive this mod.This + action is restricted to team managers and administrators only. + @errorcategory NetworkError|Couldn't connect to mod.io servers + @error GenericError::SDKNotInitialized|SDK not initialized + @errorcategory EntityNotFoundError|Specified mod does not exist or was deleted + */ + UFUNCTION(BlueprintCallable, DisplayName = "ArchiveModAsync", Category = "mod.io|Mods") + MODIO_API void K2_ArchiveModAsync(FModioModID Mod, FOnErrorOnlyDelegate Callback); + #pragma endregion }; diff --git a/Source/Modio/Public/Types/ModioAuthenticationParams.h b/Source/Modio/Public/Types/ModioAuthenticationParams.h index 727524a5..b877b601 100644 --- a/Source/Modio/Public/Types/ModioAuthenticationParams.h +++ b/Source/Modio/Public/Types/ModioAuthenticationParams.h @@ -31,10 +31,10 @@ USTRUCT(BlueprintType) struct MODIO_API FModioAuthenticationParams { GENERATED_BODY(); - UPROPERTY(BlueprintReadWrite, EditInstanceOnly) + UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category = "mod.io|Authentication") FString AuthToken; - UPROPERTY(BlueprintReadWrite, EditInstanceOnly) + UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category = "mod.io|Authentication") FString UserEmail; - UPROPERTY(BlueprintReadWrite, EditInstanceOnly) + UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category = "mod.io|Authentication") bool bUserHasAcceptedTerms = false; }; diff --git a/Source/Modio/Public/Types/ModioCommonTypes.h b/Source/Modio/Public/Types/ModioCommonTypes.h index 4bfc7c11..74fa2eb8 100644 --- a/Source/Modio/Public/Types/ModioCommonTypes.h +++ b/Source/Modio/Public/Types/ModioCommonTypes.h @@ -207,29 +207,29 @@ struct MODIO_API FModioGameID GENERATED_BODY() FModioGameID(); - constexpr explicit FModioGameID(int64 InGameId) : GameID(InGameId) {} + constexpr explicit FModioGameID(int64 InGameId) : GameId(InGameId) {} MODIO_API friend uint32 GetTypeHash(FModioGameID ModioGameId); MODIO_API friend bool operator==(FModioGameID A, FModioGameID B) { - return A.GameID == B.GameID; + return A.GameId == B.GameId; } FString ToString() const { - if (GameID < 0) + if (GameId < 0) { return TEXT("InvalidGameID"); } - return FString::Printf(TEXT("%lld"), GameID); + return FString::Printf(TEXT("%lld"), GameId); } static FModioGameID InvalidGameID(); - + MODIO_API friend FArchive& operator<<(FArchive& Ar, FModioGameID& ID) { - return Ar << ID.GameID; + return Ar << ID.GameId; } bool Serialize(FArchive& Ar) @@ -245,8 +245,11 @@ struct MODIO_API FModioGameID } private: + friend struct FModioGameIDStructCustomization; friend struct Modio::GameID ToModio(const FModioGameID& In); - int64 GameID; + UPROPERTY(EditAnywhere, meta = (AllowPrivateAccess = true), Category = "mod.io|CommonTypes") + int64 GameId; + }; template<> @@ -401,6 +404,8 @@ struct MODIO_API FModioApiKey static FModioApiKey InvalidAPIKey(); private: + friend struct FModioApiKeyStructCustomization; + UPROPERTY(EditAnywhere, meta = (AllowPrivateAccess = true), Category = "mod.io|CommonTypes") FString ApiKey; }; diff --git a/Source/Modio/Public/Types/ModioCreateModFileParams.h b/Source/Modio/Public/Types/ModioCreateModFileParams.h index 3b5a2491..219581b5 100644 --- a/Source/Modio/Public/Types/ModioCreateModFileParams.h +++ b/Source/Modio/Public/Types/ModioCreateModFileParams.h @@ -17,7 +17,7 @@ struct MODIO_API FModioCreateModFileParams { GENERATED_BODY() - UPROPERTY(BlueprintReadWrite, EditAnywhere) + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "mod.io|CreateModFileParams") FString PathToModRootDirectory; TOptional VersionString; diff --git a/Source/Modio/Public/Types/ModioCreateModParams.h b/Source/Modio/Public/Types/ModioCreateModParams.h index 03fed141..e2dafd98 100644 --- a/Source/Modio/Public/Types/ModioCreateModParams.h +++ b/Source/Modio/Public/Types/ModioCreateModParams.h @@ -17,13 +17,13 @@ struct MODIO_API FModioCreateModParams { GENERATED_BODY() - UPROPERTY(BlueprintReadWrite, EditAnywhere) + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "mod.io|ModParams") FString PathToLogoFile; - UPROPERTY(BlueprintReadWrite, EditAnywhere) + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "mod.io|ModParams") FString Name; - UPROPERTY(BlueprintReadWrite, EditAnywhere) + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "mod.io|ModParams") FString Summary; TOptional NamePath; diff --git a/Source/Modio/Public/Types/ModioFilterParams.h b/Source/Modio/Public/Types/ModioFilterParams.h index 6824d37a..21138cf3 100644 --- a/Source/Modio/Public/Types/ModioFilterParams.h +++ b/Source/Modio/Public/Types/ModioFilterParams.h @@ -162,6 +162,7 @@ struct MODIO_API FModioFilterParams private: friend class Modio::FilterParams ToModio(const FModioFilterParams& In ); + friend class UModioSearchResultsView; EModioSortDirection Direction = EModioSortDirection::Ascending; EModioSortFieldType SortField = EModioSortFieldType::ID; diff --git a/Source/Modio/Public/Types/ModioImage.h b/Source/Modio/Public/Types/ModioImageWrapper.h similarity index 92% rename from Source/Modio/Public/Types/ModioImage.h rename to Source/Modio/Public/Types/ModioImageWrapper.h index 4622e091..3a2b42f3 100644 --- a/Source/Modio/Public/Types/ModioImage.h +++ b/Source/Modio/Public/Types/ModioImageWrapper.h @@ -13,14 +13,14 @@ #include "Containers/UnrealString.h" #include "Types/ModioImageState.h" -#include "ModioImage.generated.h" +#include "ModioImageWrapper.generated.h" DECLARE_DELEGATE_OneParam(FOnLoadImageDelegateFast, class UTexture2DDynamic*); /** @brief wrapper for images that's returned by the api */ USTRUCT(BlueprintType) -struct MODIO_API FModioImage +struct MODIO_API FModioImageWrapper { GENERATED_BODY() @@ -54,5 +54,5 @@ struct MODIO_API FModioOptionalImage { GENERATED_BODY() - TOptional Internal; + TOptional Internal; }; diff --git a/Source/Modio/Public/Types/ModioInitializeOptions.h b/Source/Modio/Public/Types/ModioInitializeOptions.h index 69cf84aa..b8d6721a 100644 --- a/Source/Modio/Public/Types/ModioInitializeOptions.h +++ b/Source/Modio/Public/Types/ModioInitializeOptions.h @@ -20,19 +20,19 @@ struct MODIO_API FModioInitializeOptions GENERATED_BODY() /** @brief The Mod.io-provided ID for the game */ - UPROPERTY(BlueprintReadOnly, Category = "mod.io") + UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "mod.io", meta=(ShowOnlyInnerProperties)) FModioGameID GameId = FModioGameID::InvalidGameID(); /** @brief The Mod.io-provided API key for your application or game */ - UPROPERTY(BlueprintReadOnly, Category = "mod.io") + UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "mod.io", meta=(ShowOnlyInnerProperties)) FModioApiKey ApiKey = FModioApiKey::InvalidAPIKey(); /** @brief The mod.io environment you want to run the SDK on */ - UPROPERTY(BlueprintReadOnly, Category = "mod.io") + UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "mod.io") EModioEnvironment GameEnvironment = EModioEnvironment::Test; /** @brief The portal your title is running through */ - UPROPERTY(BlueprintReadOnly, Category = "mod.io") + UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "mod.io") EModioPortal PortalInUse = EModioPortal::None; /// @brief String representing the local session. We recommend setting this to a unique per-user string. diff --git a/Source/Modio/Public/Types/ModioList.h b/Source/Modio/Public/Types/ModioList.h index d739f7c8..92bd0ecd 100644 --- a/Source/Modio/Public/Types/ModioList.h +++ b/Source/Modio/Public/Types/ModioList.h @@ -17,7 +17,7 @@ * Baseclass for lists that are returned from the API so that you can use the list transparantly from it's underlying * type and append on additional functionaly in subclasses */ -template typename ContainerType, typename ValueType> +template class ContainerType, typename ValueType> struct MODIO_API FModioList { using ListType = ContainerType; @@ -98,10 +98,9 @@ struct MODIO_API FModioList return InternalList.end(); } - template typename DestListType, typename DestValueType, typename SourceListType> + template class DestListType, typename DestValueType, typename SourceListType> friend FModioList ToUnrealList(SourceListType Value); -private: ListType InternalList; }; #endif diff --git a/Source/Modio/Public/Types/ModioModDependencyList.h b/Source/Modio/Public/Types/ModioModDependencyList.h index a36b91ef..673a4cac 100644 --- a/Source/Modio/Public/Types/ModioModDependencyList.h +++ b/Source/Modio/Public/Types/ModioModDependencyList.h @@ -29,13 +29,13 @@ struct MODIO_API FModioModDependency /** * @brief The ID of the dependency */ - UPROPERTY(BlueprintReadOnly) + UPROPERTY(BlueprintReadOnly, Category = "mod.io|ModDependency") FModioModID ModID; /** * @brief The name of the dependency */ - UPROPERTY(BlueprintReadOnly) + UPROPERTY(BlueprintReadOnly, Category = "mod.io|ModDependency") FString ModName; }; @@ -49,10 +49,10 @@ struct MODIO_API FModioModDependencyList { GENERATED_BODY(); - UPROPERTY() + UPROPERTY(BlueprintReadOnly, Category = "mod.io|ModDependencyList") FModioPagedResult PagedResult; - UPROPERTY() + UPROPERTY(BlueprintReadOnly, Category = "mod.io|ModDependencyList") TArray InternalList; }; diff --git a/Source/Modio/Public/Types/ModioValidationError.h b/Source/Modio/Public/Types/ModioValidationError.h index 0007192f..cd970fe9 100644 --- a/Source/Modio/Public/Types/ModioValidationError.h +++ b/Source/Modio/Public/Types/ModioValidationError.h @@ -23,12 +23,12 @@ struct MODIO_API FModioValidationError /** * @brief String description of the field that failed validation */ - UPROPERTY(BlueprintReadOnly, EditInstanceOnly) + UPROPERTY(BlueprintReadOnly, EditInstanceOnly, Category = "mod.io|ValidationError") FString FieldName; /** * @brief String description of the validation failure */ - UPROPERTY(BlueprintReadOnly, EditInstanceOnly) + UPROPERTY(BlueprintReadOnly, EditInstanceOnly, Category = "mod.io|ValidationError") FString ValidationFailureDescription; }; \ No newline at end of file diff --git a/Source/Modio/Public/UI/ModioExampleLibrary.h b/Source/Modio/Public/UI/ModioExampleLibrary.h index b8055091..31d02b70 100644 --- a/Source/Modio/Public/UI/ModioExampleLibrary.h +++ b/Source/Modio/Public/UI/ModioExampleLibrary.h @@ -1,11 +1,11 @@ -/* +/* * Copyright (C) 2021 mod.io Pty Ltd. - * + * * This file is part of the mod.io UE4 Plugin. - * - * Distributed under the MIT License. (See accompanying file LICENSE or + * + * Distributed under the MIT License. (See accompanying file LICENSE or * view online at ) - * + * */ #pragma once @@ -43,6 +43,8 @@ class UModioExampleLibrary : public UBlueprintFunctionLibrary * @param Callback Called when mod list has been processed **/ UFUNCTION(BlueprintCallable, Category = "mod.io|Example|UserSubscription") - static void ListUserSubscriptionAsync(const struct FModioFilterParams& FilterParams, FOnListAllModsDelegate Callback); + static void ListUserSubscriptionAsync(const struct FModioFilterParams& FilterParams, + FOnListAllModsDelegate Callback); + }; diff --git a/Source/ModioEx/ModioEx.Build.cs b/Source/ModioEx/ModioEx.Build.cs new file mode 100644 index 00000000..d5fc7479 --- /dev/null +++ b/Source/ModioEx/ModioEx.Build.cs @@ -0,0 +1,31 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class ModioEx : ModuleRules +{ + public ModioEx(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + "Modio" + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + } + ); + + } +} diff --git a/Source/ModioEx/Private/Library/ModioSubmissionExtensionLibrary.cpp b/Source/ModioEx/Private/Library/ModioSubmissionExtensionLibrary.cpp new file mode 100644 index 00000000..27fcd3a4 --- /dev/null +++ b/Source/ModioEx/Private/Library/ModioSubmissionExtensionLibrary.cpp @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2021 mod.io Pty Ltd. + * + * This file is part of the mod.io UE4 Plugin. + * + * Distributed under the MIT License. (See accompanying file LICENSE or + * view online at ) + * + */ + +#include "Library/ModioSubmissionExtensionLibrary.h" + +#include "HAL/FileManager.h" +#include "Misc/FileHelper.h" +#include "Misc/Paths.h" +#include "ModioEx.h" +#include "ModioSubsystem.h" + +static const FString ModFileName(TEXT("Mod.uasset")); + +bool UModioSubmissionExtensionLibrary::LoadModFileToMemory(UModioSubsystem* Target, FModioModID ModId, + TArray& ModData) +{ + auto InstalledMods = Target->QueryUserInstallations(false); + + if (!InstalledMods.Contains(ModId)) + { + UE_LOG(LogModioEx, Error, TEXT("Mod with ID %s was not installed"), *ModId.ToString()); + return false; + } + + const FString ModPath = InstalledMods[ModId].GetPath(); + const FString ModFilePath = FPaths::Combine(*ModPath, *ModFileName); + + if (FFileHelper::LoadFileToArray(ModData, *ModFilePath)) + { + return true; + } + + UE_LOG(LogModioEx, Error, TEXT("Could not load ModId %s from path %s"), *ModId.ToString(), *ModFilePath); + return false; +} + +bool UModioSubmissionExtensionLibrary::K2_LoadModFileToMemory(UModioSubsystem* Target, FModioModID ModId, + TArray& ModData) +{ + return LoadModFileToMemory(Target, ModId, ModData); +} + +void UModioSubmissionExtensionLibrary::SubmitNewModFileForModFromMemory(UModioSubsystem* Target, FModioModID Mod, + FModioCreateModFileMemoryParams Params) +{ + const FString ModTempDir = + FString(FPlatformProcess::UserTempDir()) + TEXT("ModioTemp/") + FGuid::NewGuid().ToString(); + const FString FilePath = FPaths::Combine(*ModTempDir, *ModFileName); + + // Ensure that our temp folder exists + IFileManager::Get().MakeDirectory(*ModTempDir); + + if (FFileHelper::SaveArrayToFile(Params.ModMemory, *FilePath)) + { + // Transform params + FModioCreateModFileParams CreateModFileParams; + CreateModFileParams.Changelog = Params.Changelog; + CreateModFileParams.MetadataBlob = Params.MetadataBlob; + CreateModFileParams.PathToModRootDirectory = FPaths::ConvertRelativePathToFull(*ModTempDir) + TEXT("/"); + CreateModFileParams.VersionString = Params.VersionString; + CreateModFileParams.bSetAsActiveRelease = Params.bSetAsActiveRelease; + + // Submit the file to mod.io for this mod + Target->SubmitNewModFileForMod(Mod, CreateModFileParams); + } +} + +void UModioSubmissionExtensionLibrary::K2_SubmitNewModFileForModFromMemory(UModioSubsystem* Target, FModioModID Mod, + FModioCreateModFileMemoryParams Params) +{ + SubmitNewModFileForModFromMemory(Target, Mod, Params); +} diff --git a/Source/ModioEx/Private/ModioEx.cpp b/Source/ModioEx/Private/ModioEx.cpp new file mode 100644 index 00000000..2df1f5d4 --- /dev/null +++ b/Source/ModioEx/Private/ModioEx.cpp @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2021 mod.io Pty Ltd. + * + * This file is part of the mod.io UE4 Plugin. + * + * Distributed under the MIT License. (See accompanying file LICENSE or + * view online at ) + * + */ + +#include "ModioEx.h" +#include "Engine.h" + +#define LOCTEXT_NAMESPACE "FModioExModule" + +DEFINE_LOG_CATEGORY(LogModioEx) + + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FModioExModule, ModioEx) \ No newline at end of file diff --git a/Source/ModioEx/Public/Library/ModioSubmissionExtensionLibrary.h b/Source/ModioEx/Public/Library/ModioSubmissionExtensionLibrary.h new file mode 100644 index 00000000..c4c37f8a --- /dev/null +++ b/Source/ModioEx/Public/Library/ModioSubmissionExtensionLibrary.h @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2021 mod.io Pty Ltd. + * + * This file is part of the mod.io UE4 Plugin. + * + * Distributed under the MIT License. (See accompanying file LICENSE or + * view online at ) + * + */ + +#pragma once + +#include "ModioSubsystem.h" +#include "Kismet/BlueprintFunctionLibrary.h" +#include "Types/ModioCommonTypes.h" +#include "Types/ModioCreateModFileMemoryParams.h" + +#include "ModioSubmissionExtensionLibrary.generated.h" + +UCLASS() +class UModioSubmissionExtensionLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() +public: + /** + * @brief Queues the upload of a new mod file release for the specified mod, using the submitted parameters. This + * upload method accepts a a block of memory TArray rather than a file path. The upload's progress can be + * tracked in the same way as downloads; when completed, a Mod Management Event will be triggered with the result + * code for the upload. + * @param Target The ModioSubsystem object + * @param Mod The ID of the mod you are submitting a file for + * @param Params Information about the mod file being created, including the memory that wiull be uploaded as a mod + * @requires initialized-sdk + * @requires authenticated-user + */ + static MODIOEX_API void SubmitNewModFileForModFromMemory(UModioSubsystem* Target, FModioModID Mod, FModioCreateModFileMemoryParams Params); + + /** + * @brief Queues the upload of a new mod file release for the specified mod, using the submitted parameters. This upload method + * accepts a a block of memory TArray rather than a file path. The + * upload's progress can be tracked in the same way as downloads; when completed, a Mod Management Event will be + * triggered with the result code for the upload. + * @param Target The ModioSubsystem object + * @param Mod The ID of the mod you are submitting a file for + * @param Params Information about the mod file being created, including the memory that wiull be uploaded as a mod + * @requires initialized-sdk + * @requires authenticated-user + */ + UFUNCTION(BlueprintCallable, DisplayName = "SubmitNewModFileForModFromMemory", Category = "mods.io|Mods|Submission") + static MODIOEX_API void K2_SubmitNewModFileForModFromMemory(UModioSubsystem *Target, FModioModID Mod, FModioCreateModFileMemoryParams Params); + + /** + * @brief Loads an installed mod file into memory. + * @param Target The ModioSubsystem object + * @param Mod The ID of the mod you are submitting a file for + * @param ModData A byte array of the mod that has been loaded + * @returns True if the mod file is successfully loaded; false if it cannot be loaded + * @requires initialized-sdk + * @requires authenticated-user + */ + static MODIOEX_API bool LoadModFileToMemory(UModioSubsystem* Target, FModioModID ModId, TArray& ModData); + + /** + * @brief Loads an installed mod file into memory. + * @param Target The ModioSubsystem object + * @param Mod The ID of the mod you are submitting a file for + * @param ModData A byte array of the mod that has been loaded + * @returns True if the mod file is successfully loaded; false if it cannot be loaded + * @requires initialized-sdk + * @requires authenticated-user + */ + UFUNCTION(BlueprintCallable, DisplayName = "LoadModFileToMemory", Category = "mods.io|Mods") + static MODIOEX_API bool K2_LoadModFileToMemory(UModioSubsystem* Target, FModioModID ModId, TArray& ModData); + + +}; \ No newline at end of file diff --git a/Source/ModioEx/Public/ModioEx.h b/Source/ModioEx/Public/ModioEx.h new file mode 100644 index 00000000..fdff50e1 --- /dev/null +++ b/Source/ModioEx/Public/ModioEx.h @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2021 mod.io Pty Ltd. + * + * This file is part of the mod.io UE4 Plugin. + * + * Distributed under the MIT License. (See accompanying file LICENSE or + * view online at ) + * + */ + +#pragma once + +#include "CoreMinimal.h" +#include "Modules/ModuleManager.h" + +DECLARE_LOG_CATEGORY_EXTERN(LogModioEx, Log, All); + +class FModioExModule : public IModuleInterface +{ +}; diff --git a/Source/ModioEx/Public/Types/ModioCreateModFileMemoryParams.h b/Source/ModioEx/Public/Types/ModioCreateModFileMemoryParams.h new file mode 100644 index 00000000..d853551d --- /dev/null +++ b/Source/ModioEx/Public/Types/ModioCreateModFileMemoryParams.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2021 mod.io Pty Ltd. + * + * This file is part of the mod.io UE4 Plugin. + * + * Distributed under the MIT License. (See accompanying file LICENSE or + * view online at ) + * + */ + +#pragma once + +#include "ModioCreateModFileMemoryParams.generated.h" + +USTRUCT(BlueprintType) +struct MODIOEX_API FModioCreateModFileMemoryParams +{ + GENERATED_BODY() + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "mod.io|FileMemoryParams") + TArray ModMemory; + + TOptional VersionString; + + TOptional Changelog; + + TOptional bSetAsActiveRelease; + + TOptional MetadataBlob; +}; diff --git a/Source/ModioTests/Private/ModioTestsModule.cpp b/Source/ModioTests/Private/ModioTestsModule.cpp index 35a8585b..db6c7a83 100644 --- a/Source/ModioTests/Private/ModioTestsModule.cpp +++ b/Source/ModioTests/Private/ModioTestsModule.cpp @@ -1,9 +1,12 @@ #include "Core.h" #include "Engine/Engine.h" #include "ModioTestsModule.h" +#include "PropertyEditorModule.h" + void FModioTestsModule::StartupModule() { + } diff --git a/Source/ModioTests/Private/Tests/Commands/CreateModAsync.h b/Source/ModioTests/Private/Tests/Commands/CreateModAsync.h new file mode 100644 index 00000000..c0973360 --- /dev/null +++ b/Source/ModioTests/Private/Tests/Commands/CreateModAsync.h @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2021 mod.io Pty Ltd. + * + * This file is part of the mod.io UE4 Plugin. + * + * Distributed under the MIT License. (See accompanying file LICENSE or + * view online at ) + * + */ + +#pragma once + +#include "ModioSubsystem.h" +#include "Tests/Commands/ModioTestCommandBase.h" +#include "Types/ModioModCreationHandle.h" + +#if WITH_DEV_AUTOMATION_TESTS +class FModioCreateModAsyncCommand : public FModioTestLatentCommandBase +{ + FModioModID* NewModID; + FModioModCreationHandle CreationHandle; + FModioCreateModParams Params; +public: + using FModioTestLatentCommandBase::Update; + + FModioCreateModAsyncCommand(FAutomationTestBase* AssociatedTest, const FModioCreateModParams& Params, FModioModID* const NewModID) + : FModioTestLatentCommandBase(AssociatedTest), + NewModID(NewModID), + Params(Params) + {} + + virtual void Start() override + { + CreationHandle = Modio->GetModCreationHandle(); + Modio->SubmitNewModAsync(CreationHandle, Params, FOnSubmitNewModDelegateFast::CreateSP(this, &FModioCreateModAsyncCommand::Callback)); + } + void Callback(FModioErrorCode ec, TOptional ModID) + { + CurrentTest->TestEqual("CreateMod completes without errors", ec, false); + CurrentTest->TestTrue("When CreateModAsync returns without error, ModID should have a value", ModID.IsSet()); + if (ModID.IsSet()) + { + *NewModID = ModID.GetValue(); + } + Done(); + } +}; +class FModioSubmitModFileAsyncCommand : public FModioTestLatentCommandBase +{ + FModioModID ModID; + FModioCreateModFileParams Params; + TSharedPtr> SharedState; +public: + + + //needs to take in some shared state with the mod management loop stuff + FModioSubmitModFileAsyncCommand(FAutomationTestBase* AssociatedTest, + FModioModID ModID, FModioCreateModFileParams Params, TSharedPtr> SharedErrorCode) + : FModioTestLatentCommandBase(AssociatedTest), + ModID(ModID), + Params(Params), + SharedState(SharedErrorCode) + {} + + virtual void Start() override + { + Modio->SubmitNewModFileForMod(ModID, Params); + } + virtual bool Update() override + { + CurrentTest->TestValid("Shared state should always be valid", SharedState); + //The optional inside the shared state may not be set yet because the upload isn't complete + if (SharedState->IsSet()) + { + //If the optional inside the shared state is set, then it means that the upload is complete and we can check the error code itself + CurrentTest->TestEqual("Submit Mod File should complete without errors", SharedState->GetValue(), false); + Done(); + } + return FModioTestLatentCommandBase::Update(); + } +}; + + +#endif diff --git a/Source/ModioTests/Private/Tests/Commands/GetModMediaAsync.h b/Source/ModioTests/Private/Tests/Commands/GetModMediaAsync.h index dfe9e9bc..9ad96feb 100644 --- a/Source/ModioTests/Private/Tests/Commands/GetModMediaAsync.h +++ b/Source/ModioTests/Private/Tests/Commands/GetModMediaAsync.h @@ -31,7 +31,7 @@ class FGetModLogoCommand : public FModioTestLatentCommandBaseExpectedResult { Modio->GetModMediaAsync(ModID, Size, FOnGetMediaDelegateFast::CreateSP(this, &FGetModLogoCommand::Callback)); } - void Callback(FModioErrorCode ec, TOptional ModInfo) + void Callback(FModioErrorCode ec, TOptional ModInfo) { CurrentTest->TestEqual("Mod Logo retrieval completed with expected result", ec, false); Done(); @@ -58,7 +58,7 @@ class FGetModGalleryImageCommand : public FModioTestLatentCommandBaseExpectedRes Modio->GetModMediaAsync(ModID, Size, Index, FOnGetMediaDelegateFast::CreateSP(this, &FGetModGalleryImageCommand::Callback)); } - void Callback(FModioErrorCode ec, TOptional ModInfo) + void Callback(FModioErrorCode ec, TOptional ModInfo) { CurrentTest->TestEqual("Mod Logo retrieval completed with expected result", ec, false); Done(); @@ -83,7 +83,7 @@ class FGetModCreatorAvatarCommand : public FModioTestLatentCommandBaseExpectedRe Modio->GetModMediaAsync(ModID, Size, FOnGetMediaDelegateFast::CreateSP(this, &FGetModCreatorAvatarCommand::Callback)); } - void Callback(FModioErrorCode ec, TOptional ModInfo) + void Callback(FModioErrorCode ec, TOptional ModInfo) { CurrentTest->TestEqual("Mod Logo retrieval completed with expected result", ec, false); Done(); diff --git a/Source/ModioTests/Private/Tests/Commands/InitializeAsync.h b/Source/ModioTests/Private/Tests/Commands/InitializeAsync.h index f44da0c0..cc3e3c7a 100644 --- a/Source/ModioTests/Private/Tests/Commands/InitializeAsync.h +++ b/Source/ModioTests/Private/Tests/Commands/InitializeAsync.h @@ -20,7 +20,7 @@ class FModioInitializeAsyncCommand : public FModioTestLatentCommandBase using FModioTestLatentCommandBase::Update; virtual void Start() override { - Modio->InitializeAsync(UModioSDKLibrary::GetProjectInitializeOptions(), + Modio->InitializeAsync(UModioSDKLibrary::GetAutomationTestOptions(), FOnErrorOnlyDelegateFast::CreateSP(this, &FModioInitializeAsyncCommand::Callback)); } void Callback(FModioErrorCode ec) diff --git a/Source/ModioTests/Private/Tests/CreateModTests.cpp b/Source/ModioTests/Private/Tests/CreateModTests.cpp new file mode 100644 index 00000000..975e38e1 --- /dev/null +++ b/Source/ModioTests/Private/Tests/CreateModTests.cpp @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2021 mod.io Pty Ltd. + * + * This file is part of the mod.io UE4 Plugin. + * + * Distributed under the MIT License. (See accompanying file LICENSE or + * view online at ) + * + */ + +#include "Engine.h" +#include "Libraries/ModioSDKLibrary.h" +#include "Misc/AutomationTest.h" +#include "Tests/Commands/CreateModAsync.h" +#include "Tests/Commands/EnableModManagement.h" +#include "Tests/Commands/InitializeAsync.h" +#include "Tests/Commands/ShutdownAsync.h" +#include "Types/ModioFilterParams.h" + +#if WITH_DEV_AUTOMATION_TESTS + +IMPLEMENT_SIMPLE_AUTOMATION_TEST(FModioCreateModAndModFileTest, "ModioSpecialTests.SubmitNewModAndModfile", + EAutomationTestFlags::EditorContext | EAutomationTestFlags::ClientContext | + EAutomationTestFlags::ProductFilter) +bool FModioCreateModAndModFileTest::RunTest(const FString& Parameters) +{ + ADD_LATENT_AUTOMATION_COMMAND(FModioInitializeAsyncCommand(this)); + + FModioModID NewModID; + TSharedPtr> SharedState = MakeShared>(); + ADD_LATENT_AUTOMATION_COMMAND(FModioCreateModAsyncCommand(this, FModioCreateModParams{}, &NewModID)); + + ADD_LATENT_AUTOMATION_COMMAND(FModioEnableModManagementCommand(this, FOnModManagementDelegateFast::CreateLambda([SharedState, NewModID](FModioModManagementEvent Event) + { + if (Event.ID == NewModID) + { + *SharedState = Event.Status; + } + } + ))); + + ADD_LATENT_AUTOMATION_COMMAND(FModioSubmitModFileAsyncCommand(this, NewModID, FModioCreateModFileParams{}, SharedState)); + + ADD_LATENT_AUTOMATION_COMMAND(FModioShutdownAsyncCommand(this)); + return true; +} + +#endif // WITH_DEV_AUTOMATION_TESTS diff --git a/Source/ThirdParty/NativeSDK b/Source/ThirdParty/NativeSDK index cf669398..09d9fc1b 160000 --- a/Source/ThirdParty/NativeSDK +++ b/Source/ThirdParty/NativeSDK @@ -1 +1 @@ -Subproject commit cf66939884d1093030f1830ae8b12c0628162942 +Subproject commit 09d9fc1b7919f3c4619f0be7993fd218be8cdaf4 diff --git a/Source/ThirdParty/liburing b/Source/ThirdParty/liburing new file mode 160000 index 00000000..8b0529c2 --- /dev/null +++ b/Source/ThirdParty/liburing @@ -0,0 +1 @@ +Subproject commit 8b0529c24be9ed50c4422b479f5b2c7cdc837777 diff --git a/Source/ThirdParty/mbedtls b/Source/ThirdParty/mbedtls new file mode 160000 index 00000000..d65aeb37 --- /dev/null +++ b/Source/ThirdParty/mbedtls @@ -0,0 +1 @@ +Subproject commit d65aeb37349ad1a50e0f6c9b694d4b5290d60e49 diff --git a/Source/mbedtls/Private/mbedtls.cpp b/Source/mbedtls/Private/mbedtls.cpp new file mode 100644 index 00000000..373933cb --- /dev/null +++ b/Source/mbedtls/Private/mbedtls.cpp @@ -0,0 +1,19 @@ +#include "mbedtls.h" + +DEFINE_LOG_CATEGORY(mbedtls); + +#define LOCTEXT_NAMESPACE "Fmbedtls" + +void Fmbedtls::StartupModule() +{ + UE_LOG(mbedtls, Warning, TEXT("mbedtls module has been loaded")); +} + +void Fmbedtls::ShutdownModule() +{ + UE_LOG(mbedtls, Warning, TEXT("mbedtls module has been unloaded")); +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(Fmbedtls, mbedtls) \ No newline at end of file diff --git a/Source/mbedtls/Public/mbedtls.h b/Source/mbedtls/Public/mbedtls.h new file mode 100644 index 00000000..5f7b4f24 --- /dev/null +++ b/Source/mbedtls/Public/mbedtls.h @@ -0,0 +1,16 @@ +#pragma once + +#include "Modules/ModuleManager.h" + +DECLARE_LOG_CATEGORY_EXTERN(mbedtls, All, All); + +class Fmbedtls : public IModuleInterface +{ + public: + + /* Called when the module is loaded */ + virtual void StartupModule() override; + + /* Called when the module is unloaded */ + virtual void ShutdownModule() override; +}; \ No newline at end of file diff --git a/Source/mbedtls/mbedtls.build.cs b/Source/mbedtls/mbedtls.build.cs new file mode 100644 index 00000000..702fd65f --- /dev/null +++ b/Source/mbedtls/mbedtls.build.cs @@ -0,0 +1,125 @@ +using UnrealBuildTool; +using System.IO; +using System.Collections.Generic; + +public class mbedtls : ModuleRules +{ + public mbedtls(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + bUseUnity = false; + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine" }); + + PublicIncludePaths.AddRange(new string[] { Path.Combine(ModuleDirectory, "Public"), Path.Combine(ModuleDirectory, "../ThirdParty/mbedtls/include") }); + PrivateIncludePaths.AddRange(new string[] { Path.Combine(ModuleDirectory, "Private"), Path.Combine(ModuleDirectory, "../ThirdParty/mbedtls/library") }); + + { + List CFiles = new List { + "aes.c", + "aesni.c", + "aria.c", + "asn1parse.c", + "asn1write.c", + "base64.c", + "bignum.c", + "camellia.c", + "ccm.c", + "chacha20.c", + "chachapoly.c", + "cipher.c", + "cipher_wrap.c", + "cmac.c", + "constant_time.c", + "ctr_drbg.c", + "des.c", + "dhm.c", + "ecdh.c", + "ecdsa.c", + "ecjpake.c", + "ecp.c", + "ecp_curves.c", + "entropy.c", + "entropy_poll.c", + //"error.c", + "gcm.c", + "hkdf.c", + "hmac_drbg.c", + "md.c", + "md5.c", + "memory_buffer_alloc.c", + "mps_reader.c", + "mps_trace.c", + "nist_kw.c", + "oid.c", + "padlock.c", + "pem.c", + "pk.c", + "pk_wrap.c", + "pkcs12.c", + "pkcs5.c", + "pkparse.c", + "pkwrite.c", + "platform.c", + "platform_util.c", + "poly1305.c", + "psa_crypto.c", + "psa_crypto_aead.c", + "psa_crypto_cipher.c", + "psa_crypto_client.c", + "psa_crypto_driver_wrappers.c", + "psa_crypto_ecp.c", + "psa_crypto_hash.c", + "psa_crypto_mac.c", + "psa_crypto_rsa.c", + "psa_crypto_se.c", + "psa_crypto_slot_management.c", + "psa_crypto_storage.c", + "psa_its_file.c", + "ripemd160.c", + "rsa.c", + "rsa_alt_helpers.c", + "sha1.c", + "sha256.c", + "sha512.c", + "threading.c", + "timing.c", + "version.c", + //"version_features.c", + "x509.c", + "x509_create.c", + "x509_crl.c", + "x509_crt.c", + "x509_csr.c", + "x509write_crt.c", + "x509write_csr.c", + "debug.c", + "net_sockets.c", + "ssl_cache.c", + "ssl_ciphersuites.c", + "ssl_cli.c", + "ssl_cookie.c", + "ssl_msg.c", + "ssl_srv.c", + "ssl_ticket.c", + "ssl_tls.c", + "ssl_tls13_keys.c", + "ssl_tls13_server.c", + "ssl_tls13_client.c", + "ssl_tls13_generic.c" + }; + if (!Directory.Exists(Path.Combine(ModuleDirectory, "Private/GeneratedSource"))) + { + Directory.CreateDirectory(Path.Combine(ModuleDirectory, "Private/GeneratedSource")); + } + foreach (string CFile in CFiles) + { + //Add the original file in our upstream repository as a dependency, so if a user edits it we will copy it over + string SourcePath = Path.Combine(ModuleDirectory, "../ThirdParty/mbedtls/library", CFile); + ExternalDependencies.Add(SourcePath); + string DestinationPath = Path.Combine(ModuleDirectory, "Private/GeneratedSource", CFile); + File.Copy(SourcePath, DestinationPath, true); + } + } + + } +} \ No newline at end of file diff --git a/Source/uring/Private/uring.cpp b/Source/uring/Private/uring.cpp new file mode 100644 index 00000000..983c901e --- /dev/null +++ b/Source/uring/Private/uring.cpp @@ -0,0 +1,19 @@ +#include "uring.h" + +DEFINE_LOG_CATEGORY(uring); + +#define LOCTEXT_NAMESPACE "Furing" + +void Furing::StartupModule() +{ + UE_LOG(uring, Warning, TEXT("uring module has been loaded")); +} + +void Furing::ShutdownModule() +{ + UE_LOG(uring, Warning, TEXT("uring module has been unloaded")); +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(Furing, uring) \ No newline at end of file diff --git a/Source/uring/Public/liburing/compat.h b/Source/uring/Public/liburing/compat.h new file mode 100644 index 00000000..9a9ad9bc --- /dev/null +++ b/Source/uring/Public/liburing/compat.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: MIT */ +#ifndef LIBURING_COMPAT_H +#define LIBURING_COMPAT_H + +#include +#include + +struct __kernel_timespec + { + int64_t tv_sec; + long long tv_nsec; + }; + +# include + + struct open_how + { + uint64_t flags; + uint64_t mode; + uint64_t resolve; + }; + +#ifndef __kernel_rwf_t + typedef int __kernel_rwf_t; +#endif + +#endif diff --git a/Source/uring/Public/uring.h b/Source/uring/Public/uring.h new file mode 100644 index 00000000..e751f7cd --- /dev/null +++ b/Source/uring/Public/uring.h @@ -0,0 +1,16 @@ +#pragma once + +#include "Modules/ModuleManager.h" + +DECLARE_LOG_CATEGORY_EXTERN(uring, All, All); + +class Furing : public IModuleInterface +{ + public: + + /* Called when the module is loaded */ + virtual void StartupModule() override; + + /* Called when the module is unloaded */ + virtual void ShutdownModule() override; +}; \ No newline at end of file diff --git a/Source/uring/uring.build.cs b/Source/uring/uring.build.cs new file mode 100644 index 00000000..786369ec --- /dev/null +++ b/Source/uring/uring.build.cs @@ -0,0 +1,75 @@ +using UnrealBuildTool; +using System.IO; +using System.Collections.Generic; + +public class uring : ModuleRules +{ + public uring(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + string GeneratedSourcePath = Path.Combine(ModuleDirectory, "Private", "GeneratedSource"); + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine" }); + PublicIncludePaths.AddRange(new string[] {Path.Combine(ModuleDirectory, "Public"), Path.Combine(ModuleDirectory, "../ThirdParty/liburing/src/include")}); + PrivateIncludePaths.AddRange(new string[] {Path.Combine(GeneratedSourcePath), Path.Combine(ModuleDirectory, "../ThirdParty/liburing/src")}); + PrivateDefinitions.Add("LIBURING_INTERNAL=1"); + if (File.Exists(Path.Combine(ModuleDirectory, "../ThirdParty/liburing/.git"))) + { + // Clean the generated source directory + if (Directory.Exists(GeneratedSourcePath)) + { + Directory.Delete(GeneratedSourcePath, true); + } + Directory.CreateDirectory(GeneratedSourcePath); + + { + List CFiles = new List(Directory.GetFiles(Path.Combine(ModuleDirectory, "../ThirdParty/liburing/src"), "*.c", SearchOption.AllDirectories)); + + foreach (string CFile in CFiles) + { + //Add the original file in our upstream repository as a dependency, so if a user edits it we will copy it over + ExternalDependencies.Add(CFile); + string DestinationPath = Path.Combine(GeneratedSourcePath, Path.GetFileName(CFile)); + File.Copy(CFile, DestinationPath, true); + } + + if (File.Exists(Path.Combine(GeneratedSourcePath,"nolibc.c"))) + { + File.Delete(Path.Combine(GeneratedSourcePath, "nolibc.c")); + } + } + { + string CompatHeader = @"/* SPDX-License-Identifier: MIT */ +#ifndef LIBURING_COMPAT_H +#define LIBURING_COMPAT_H + +#include +#include + +struct __kernel_timespec + { + int64_t tv_sec; + long long tv_nsec; + }; + +# include + + struct open_how + { + uint64_t flags; + uint64_t mode; + uint64_t resolve; + }; + +#ifndef __kernel_rwf_t + typedef int __kernel_rwf_t; +#endif + +#endif +"; + string CompatHeaderPath = Path.Combine(ModuleDirectory, "Public", "liburing"); + Directory.CreateDirectory(CompatHeaderPath); + File.WriteAllText(Path.Combine(CompatHeaderPath, "compat.h"), CompatHeader); + } + } + } +} \ No newline at end of file

    aw)R;!My2hJO09|Oxc@+_-v9i-`G(TO9chx*6P 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

    fbH1%L7{@wz#+WH zoSdC!vP3zvMyD4ksXq8V1S$WI9kk2aL-Gcn4bB5aVjng=$kBALKqU4U{V352?K1M# z`JR(4Cz^V~UL@e$j)8m0%FCYY-*XN3BE+sxi|P{+rrbKPABF$nsy#G*p9HII*Kgh^FZ)`xKo zI}asCD|hw{q+mmSS(R>S;N#1B2^42|-$}Yj+0B$`Kb~}b5nCgL35$_t4dWrBeq%u< z#&=SKm|PsV?u}$^Tv9jVz~EJj$-q2>w%kqmc!J?pxuyq}wFF@)?1sY>Yiy^T{pIQ` zpLfcLc;ep1!7-kyRRibqa*e>-8;B8$*8c5*+t7M8mhXO-9%0Ow6{xWX6Cv@#yzob0 z-2cPZFAdAU@5}7wMFLXWf#ax;)=YW#UZ* z7oq)rw7y-bACsh)ZHV(V)G|?lD78A`V!=uRG!wHh3o4}rD`vLR0z-Is!w^y3bpJb) z_(uB>BYp(-!C9%DVWO{QIo|UXMjheggreJ1=~lmj>edL;7SO@QqH@%(Wo8-P3Q(B3 zn(eS2kM105UIgQA`d_XWzP|}t^M(f#_RD(WD6zHtif49x@V1+udVXtXUjU zjxkda)3mLwom(Ys8-Lo*8g2pe6L3AzlO!t#AWNk6wVyNj+gfaW;UukM3U-2xTg*pB}*_xite#18|K`<^88HG5m=oWX5NTdxD zrXpm3*R>cCxV&=rG-Wir9gFX2s!bjFv+BfA{Hh*@1- zJ)-1ES3qhPCA#0D=Dndogzh-+T`6v2q)gKob7U%E2Z0* zG`Wo@JI)rb>!BYVgM3GSUzEtbVH&NlMN@cqzn=ivQdc%6MPMRlMGkI(CZol*TtKQO z{$;ImTK(4b$8@KG50xncACbt_BEHey(GnG^ZTeR5Wj5N^SX*Hgo{>2}yt>qeI`59BLCT`3Uy*OKJ+Nh(Sfcr;4Aw*W2Lu z21u2W`V(ObLUuLojGFJfN2w^?rS!AS_91Byw^~uic_$cgTdL`7n%pp2RI`i|=`?#dgCaWcqeqK;lJ|mml;fBD`9X#b$D?(*z5vi^NitqQ<|L(EDjUb< zY7tdGj?3!EY-Z07MoSn?fZbIb3imi1XSl0)>~E326^vZX78i~Hfz_-P#5)C- z4}U~!wTTI~&Us0Tr+pnv12BoSCa1Hi$#&&_-oVu09gJNdgIp|1T7q!SkY)ELmv3`aP9NE%fPz zQs+a^(L{?2%-d)M+7NWw+s*L2hKBIy{&sf{KOzquCF%C3NS7}}b_LS0H<5yw*r_Ja zH)syq_IC0EthevSt$(abtRc_@WZ|!tuUwARtPQxkk)?p4YNmuCu%~^9*-*}v<0U`J zC9S?GWsYpVIyj&;B|ql<2_Er{iG`P)J%nIAP6=@a1+~{yn6L86C;b597uT?+&yR}J zh~%e)uXEsJ@zpa+9{XCAgxiAzw$swK;@MerfemY(*>xWn!yAu}DVGoGQeChvUz#US z=h0uDWmQZYEx2Yn1kL(bu4CADC&Wd98J+8*%=4YW;uc(QglS_BCqv%NV6)d!b6M<+ z2Ok|iS^y8|rYe!ceTFfhM2%lH3l{uoL_hY1tl)+y0IhYqEE- z4{>x-c>M2XrrJ3T&UCN{Y#hSyFTQU=3_G`~gwscs5;(;YW$m$vX>gw=F#g)g#XdX8 z9<9h=?B)0|!)$>6R`2e_=}qAzS^Q!B=AS!wOV&s0k^76%X!}9J0%Q+ zqKVQA@w(+3stlhn!Hc7_&a*33CSrO+6J+Z#Y>VcMT0bgYrO=AX3m z?Xj=i`aC=g!aj9vdcv$P-<+(}Eu!-rV5Q`wM6wW--?~=+YUE2JFJQ~YygIIPt61Uq z?9E+fkX=SxG{>cfK++qH;3M4rlS*10cG&GwXp}t{8{QtEgW!O!PwlZ_k%u$K-ySaU z7~kY;OzpXJ*oD)_cPvPB5YKN+7&p5zJ=V0w@#K6SWCK14U%MIC8fYgdJvIjuE8-*b z{J8|a`X>QnPobOcgIKTB>4P4c9(bhS>=kg^*vHjwC%t$+R+(;i&E?p|MHd4bPgRDL z#XQz8k&X^MBPXCZ2fGb9Im(QXSM3uadQbJxX$_YVf?Fsrcpj-zQ_wWh1Bn@ zXHCNHO<~23PfkvL9_hQ}Tlq20TQOPj6-w5!KAv_}9a?_68oP<$gt$V2^HfSEQhTZ; ziw5kau#S$0a)oxLW4Wdkn5}498SL3H{ z(h_fQ-e&A{`p{n8JwG*81)9ahD))BKUF6Su>lNvzDP*1l=NHeGm%VXn!!>4qjw$%V z`2l6d2>Inc{c7Ew7%~{TF7@#J0c&Glf zau`%xq+m81hGF)%q*L81n$~MlBU6LN+dKWxnesWrkJlb-v+_qxY%OXfGCDBb$XcA* z&r>=o=)*_CQE!1`S6j@kflaOB3k2WYB9HG%Ajje z`?UM;@Nj;cf$*vo!j*e35-L@CgZdt-RyjoSy^QTKN@LbxKh}4k2Lwjx-XnM!cNvvp zl~lin71rH0w6UCFwM-Aq_P1j+`-lbJ_n!5G^>-F2FAPKD=kuD4exG~dc^Rg}4j7_? zF=Clm45WdQ(-~QESS5TaJ0;Z$zHOtPR!pH@Sj;WAk9=Yi;7CE3Q7Y^$(CYK2^53XV zU3N?EC5w7%M9Hkr&8#=9Mm{Z7!a!}0=`bL~(f55afZT{@Axz2RY9C4HV{fX|D;%D( zYo=AWsBl0dZGk;KwKYCQ75Z*^Es8LH6Y5TnJ~+0@I;Ar?@EF*=c2prPe?qD!a>ib{ z5zK|tcbzkKe?xT;j17|$9`y;4!P`@9h@{Uv^@fI!(3$C z9f20`FMi%B`Q1s{q?8^SAG>Uu{iUqPQY`$Vrx9URA}rB@yNFO4uZRedkYZPVc_RLJ z#QXZxPO%FWLZ8J+X?nX8xJ$LrkT*6qcfQhtwMSSylW;PBv~(;!OMpI~tWHgQ;3puV z*5BpAzp+xm@X22bS&jM3q8Lw;VW5XL2GdqQI1!9cGd~l*4gdC6&>rGabY;L7@M<5G zZDKkZYABd!rQsFFAxK5j>7NW`O5Q*^b(Zv6bbDyNElOY#uCRDt8D#n^$?age#vRPdS)uyaxa4dUNKwb`9XTl2cmlf~bTP^##pn-gRKfEQ#S!m6aCp>q? zaN{uXqhl|)>8~HVruh~cZgwfM5yRrX|19$*iWQ0|VTHc6t7i9#!r_ zK;{kKkMH=&?pvEj&o{^hH#I&E4sC(PhG%*anup#wv*j1TE?skJDYI*v!>|r|7VU}d z1;#a5qWjbYxj(D)A@2edYVLe;M z3q>=;>(=*@2o{#VXm3AeKI!l1w~Hy7%V!tG8TvI(GvIVo8!4@E=iQNQ&PK@+fET5n ztB(JaesA$c7R*xEsTZp)q3vTQ2beOWnAO!tt3-e_HQd*L0a`lVs~`MQ4~KHJmi-$B zfqD7ROU_yP##|TJ4b%-^^MZ7{B=gp_@aLhkJBfvEkhyK|-f_$Zm{regqm4L1WJOsI zDGIr(x4k^#?;`KVIWP!$ekJB9uMkGJJ(Op$<8^-lyFDt9{^ms(N$CFMRKja&yvM~Z z*@?GGP{H&~#zZQs@LK73_Vj~NX{(By`b>~!67CbzF9nY2MYtNulffS2Z`ep{{Tb`X z_Wdig%kx3-m+$-~(1iTjZYaJyB@}|0_y>y9(`FZMaJGHD!8zV7#V|8@FRb_hpj@iu zpl#O3g-^BBxnlZ`K3gtR$R&{QR~!;bTE7TlDN{)wZXaq6y|1M$sw7`gj1P#G=YZRN{B6FL-eE z6zpMf|4dU2ki^%xaX>4S|fAH~n{p!>LG#AhBMIfDXg~XIBO3jYJP32umwyNgt z8ZO&!>X5S8&ygzrHBkupW4HjPy9oTwHD2D@u|XA?50R6gm!z|qh>DJ+q{A%@4|-Lu z3udrOj|__eP0q;qYkUpgUEm$ZN54XC6nG<9_}%45i!3$q)dYh{KFxuiokI+lI%B@b zW3|akG1iUYC9spkL}j^|kAue#mo`N`x)4W-g@4+C)HSEGkhX_W0TOyc~BucJg29yn)1b!wZTW zi@z-FKoHe&YMLEC)kWG9$FTN}x@XxroxCXNaUH}fNKfmh8^IOTeXJWUhRz?h?!2<- zIa$!6$JzA9i31ZZpW|{$HooN&bU~>En!XPn6yw{Pl=4Xc|C|cY*4E~A6XWqrJ9f8t z#8wmAX{*MTYOjcNBrZOekLfm;W23typW%CJX?^Z-pZ5m77IQGqFx53SSzjye?LhKe z=uf5hG_!krctM2a$0(JJ_SLsd(6D5ov5+K(?)->t`$I+1rBg#0mOHp)L63(_XfGHw z;!hX?NAz6-3EKnpZgK?aQz- zwW$?rYXmbKzqnTVC+m01S5%TVFFJC#wGhxz{ZXT6c$N-madV+liC+O}o|X!_0;<^kHvj$;2^a311+oc2*|$ zx;D<}e@`a8A1X!4yt2V!ls<3PU=R^j z$nDz^97PThTOqG0Uf?nM%rNewoV%5t^^3wh84dgCEktJlEm5&@%r&EDmGbx(xX@S_ z#DupTvj+&>-qO9ip;xXwLfH>Qr3J2 zAK6iax-w5mZXkhl1CI_bA3M%JgUBc%x`E!k?t_X*eXU$9cdQK|nuRp>_&8wGV8O4+ z+Ke`kODDd*jr@F}Vk>kB!C0VxNYK#1W8lJyhn`ZJndNzUg_;P?3OGKivUBGSv1(KP zwh2OJE4Sq$d7AI5jr1pjtSg} zUvsM5a0MF~yF^ME&&)YX*p&7YKVFcEG@n*?#8iZXf4e=`s<@8FSmDw`W-89 zkc{n2pO%fi*9zGa>;rD6aTJ%M&CVc>A|Z474D;!b}W4AiCcO^S=^fB9LY|@^HUR`ev6FrxD#N(acx-tHaV8{7R zyOkzJ0a4ORQJ6e?J_D+RB1PTP*}ZQ62Mvk^Mq%tqstZLX?oHT_>GN>nYZ~?@Hb2ZF-`FI&!{gOdONUc+2(cR_&A}E57~)3jc6eJT-WO zzpvEea@a}OGvOoSB4jCQc38yY7p2Eo^KKLGwdD)h+nf9)dIGSfByd`w7sbMBC zvB40PEu1t)Y9ewh2{=LZnOpXqVl(34{^Iuo>5}*b-eBMN_O=06!rvr*taq*-2no6i z2~|@|V}wR7k{lcyn3I`X^#5$^L-}RysH^+ART|*rTxAp*M{9NGHTg~N#6G2auux9_0$pf05jAf(;`r_r8Bqs1mGd#mRo4c8ru!bfB&v0{Gg8X--BsA; zJa*tc3Tmmc!$_bwlz(|->FI6+vnAim)R3Q;xe-5JmZ|3nhMk=P5a_%*ULwM-mu%Ed z^>qTrNk>rr>+Trh(~N0e!!6&)v^2Q8sHp0&R$#w5mLsp4;L8%!7p-^sc-i#!+53c& zJl%qtlQ#75^LE@sls+nza?iZ^KkqdyrrjO(Q$~{xkYz{8@@Vt7s?^rF@*JiV|6P(es&Zp&efBFm0;wI;OCUDDM!lZst>Z=d5e2wJcpYFO-T;J zNvQQqTLQ&yl#$%6DfsU=9GsmYKFA<`PzyMKq)Ai3^4?llbPH65xho;ioVTQFzL{{v zwA;NNRvC~oOz6u8<5q8@{26@e0(4v%jLg@%jC%j|d$RzPwxn9D~Y? zv$uIco zG@y;x8@ds)#KjxF%aKW_95sTCyTLNUIAzZpyL%pklYDvXqp|u@l*Mdud7vm8n4kE( zV`puc&r~|MKVb8QQ_Ldzbf*{(ds<9%`i|d95S^yfTxX@%O#o>S(I`;9y#G_K3!uR1{n&|uOP(d# z8Q3`L6mXr)BY(uL^g29`CMLdl7v19J9!t-JYLZ;ufVF6bE4OHZSA+NZ?ucX`T}<3I zVGGme+WA5}JdjhLLp!VWlIY3^dU>of7OY4Al)E?-!Rv!>z;&gzQ-7@WTPbo)V=+So zM54~1Z$2=`qc&Z)%_<`IgxSmb8`>zNZFj&xRWYvjAZHlmIxn^wb{e!9@Qu!!=QY%)M3@(acY>H>9?*vta6>_#U(=)=w#~ya;(pz z6tu|<#ZoXzYj$Bm5MH`RY+V*(dMF{&7C+}QqWk-|GsUG`z?^;&;M?^P40j2)*x!c* zvmkw727AkOi)SfzWK95cN_xD!h#4_ktEVcd46GNb%DPz|{S{`HPosQq*MtMt456KS zbnG18$ymp6s_DV!*)));F=ZsEfk6)&DlPG|mQK=iFDoXaGmA^53+#;e4W^Co{2c}n zJf&~*FBZ2e)x6GqU%%K*Yd@1&W!`2Hl3T3Ob>5q_mgVFS%!hrrI0GSwwbi znOdT&LfoaMHnOBXulOV3^nO8od(3*|@7op@wemXxh1x%g)NgGb491Nsm}WJcECpG3 z{%Oo2jJ`vflQp;;l9u zsRvoKi@~fT7Qw|lIX=EN=0fCo;Uhm@Y=`?g_cN88Aq?oE6PaQk7zAq)NREe~(IEQj zB|9;p?eiH77Sq*8wT?#INQ;2gL6w>szp-^RW>5iTC{!@^{rl(aF=VyJyGw zmUie`1yxlP{S&M_zbr2kEAsN{6U)eJXbr(G{!y7f4Y z)RrO}(8G43utO@yBO%8H*=u=HBpu1}$1NvDy2T>E(;^2MD9dYUiV9_1U~ete-_BFCV5R`!ivNo+|gN7NIC|Op)AZwFnIbN@dj|iE>w{l9_vzC<lImQ!uAaRlAnWgX0S-UWTs&oinNqme#;?{XGOH;2)|&Z$1)?`y z$Qhig7cRa(zD%`y?GDB`x?>Y|>@b5$hYv^}3B9n2Pd>LvHpp!@sRJuD2R*d5Uh`@F zuuWT0>nh}r|`&tCT9aI%(=aDV_U|BmuZ2 z+WoEN(cPg5*B*A%8syj$gYW${Ki0TPUbqlGP}S-6ro4H{@X7y_+rMO8;w1%q>NW~T z*$)%&i*^IXBmmrj{`HH%uhkclQp1WxvRvQO_scATWPfEZTEiRKnZ7U#A@~L8WZ`@G z0;Oo0<|lDNTG(~V#%NqkC9xeHZ{TpaSM-1vLy($3-cX;|?hw1d`4ZbC6oI4%r8<{ zVEvX%@E;7&wYGcxw-hJ=FdsRy5&uGjWvw&Pj3uR>Pk9 zo6Pn5TSSDRlQ~1wJ1%W*l;JAnpqh$;J~3_Boa!oalQn|)&sy2_G+pQWQ@IzZ9@r32 zE>}pu78@b_&DfDxXmPoWtmFls2+^=6TL>6x7H+ro77buFI@uG^#>%~&tKW?-a-8xa zxbHJU0qEYew==6y^)v)yr^S8;Svo9Zn@*`HTjAC2%x3X7PWmQqLCqcdQL^{R??6$b6*si6g|ed`Kx0Wu z;-!Gso|k8bo~{UW&kn@HKZfsqe%=;C>pXo02*7pY)`QhdV#0~c80?6KQK=@B9Q>=2 z=v5O#he=*R!T96x11i(o58di8Dn}xH*tG~=taKNrjH9FDwcX!aVcM3r;;Fwa&U0hd zlYQFT>h?ch(*g?cDY4geZEByijOR2a?g)Q#Qam#ZLZFM%0&0$1qOTY4VhS}#b+nn5 zyp!#GVh)4d!diCsshEpyn7Rj=9mmRC?s)g+)*7@0JA?kBU?BiQ68OR};R@7@JbYA5 ze03KJQn7XdaY=CztJg&8(8OXH#wHebz4e1k;cmQ$zt7gh6BfKMfz(?K%U(T#=_D-* zyR|m5=g@evs0*aOhdw0c=w`-dF+8@>k-qtZ<>r%#V#q>P7^kloRM0p3b4FX+tE)4) z-;(!ptE%|ILtgS~%kLME*(A(t0TxYbaeaHi7cV%+hr!~3Q&{21ISq$K%YqVrT4WU4 z-SlSQ+}+#Gr3mS_IKZ+C$aFF``9WtvWncX`haaQnBm+M4sdqLp*xG*6dkJD{`^E{^ z+Drs>w!cl_prr$<6}^=JrN$(6Zi#*#n{TrpM*e?26;@^~&O0x7=Fii!V~8*;f%D zE`w3fbO$=@-4~e*Ok~8IgdB`i)*2U^{&9B$C+P1Ga9p~@lH*v_-FBB=1!Ecsn7l_b zCI56P0g$t?b#SK!VOtQb&$UUOQi&pC=!ObHF5S=L5nm%dmQ zQu>F*rB30APgP*DUOO>0qHKiM?V{~5ERSrv|& z&ij+ZKJGui3h#<-0r8Nbp`q99)f{AS8x^QH?E=~dv($MZ;ne=pwPt2AIAO`MTg&y_ z$H;`vmZrZFK;N0t8{y&mQd;LRyzIVrNscxIo|W~uh~wJiP)T$ACH6=irD9U*{U3EzVF1D9VR+G#e$6JFGCVhL5c|y^& zT=eIl^-_4JgiG;KNOsfY;KVtbzoyJ2$2MHpz7m;Eytu7AnCU7egY4N z4>gY0)5;eV{rKw;kHH^Bh@sy_o<{II-&|| zIiq9`H+KWf+bctU{c7&s^fv_}^5k)0rB};e4(`&daO@4g;kon<3cRw5Aa$61J^nqT zB;1VIhHBhrc##^L7s;B=^{iV))e*&kj{B1M{wBc026);@23wgG^}Q{&g`lujdufe{ znZCt^1PFdV7#CK2QU{Wwy`uj&PKYpdtJ3Vug zaVdaV6YxQJe9Z)#&*t)HwjqciwV4AqA$-MijdtB0X5E{&R^e?4$-YwWrqqMEJc0=b*tZwzre$=QyFG3I+)lxjKN65v&i^i_im^O(#BXx*CKNz+(ZCXl6pi>4WL7hinlM z1gX2Zdt)SLg2ltPt{l4_=8U;vXfO((wiI$#ce;{?MEJB|^NTZtXnBC2>3uvG#duEh z(jl_@tL!_9rcBjx0br!0M0+347OVQM@F<6D6^xeDPMq7@ZT&1N$Dc6a0tY+9c306o zWtlJ8R;~kL=Nn)3D)k&l-km@wTRaxw^0JkBuMR6`-dl4>NRfj!bQ5T+c`&70B z>=-q9Rqi+{t7u>7h9W&&59|Tf<&}^)R*Va7Yb)KrvHRpwb?XY>Y_eD02N0#+Z-ie@ z-5n+HLN*{@idg9yR-)YI>P;i9gOWGbE1qjC)ov;d8Az)>&qYh%KO0O(4s}CLO8cbB zFJj=TyPM&AUD2~AIXWTWv~iGTZbB(DQZ7&AWQM(CYf1VSQj$Y^^GoccCZlK;6gEkW z8g84wDz@||q|^5?fFwcZ&#M)N;1q&5xEi<(^){mZ3QumEu8_oQWBrZSO7 z4s58{hEZgPCpcnx^|Q(scKxjIa1~VUZR6M+|30D68>mrI^sdJcqPs&%9kvZAHG7@5 zeXCtkmGfhI`U@}Rx2Ce~F)3i9Sjk`aIiEnr-3ikRHpCuaq|#&AD&kz3sG1$t%4#+& zYRhH})EE-e!JetWH&GcmJCq%I&OA5?!w)i*D=I6pepU5a!LOFC=9m|l<_RT$kr%0< zIw$?4xum%P#5UGI&vt9PjGH=kwee(HD(oT2CY2In8`{#*D2S@?fC}kUOKM0Qr49C6 z9GZf(k?BiPYFdmv>`yhC1)P&Ru9yd9Qkw5!u3&K~=!v$f%B}YZ{?{)|B)&|Q)Atle z{6T%@jqZ3*jK}?@$c4?A5Hp}E{!O}#5;^?TTWTpD^5;Ndj@27|9PuX9%?#v&L1LkT zfHGG}xb&Vij2m=W2{!YP5WtSFx1(cqYCgnrq@zYfup!c5mWQQ2wYZ@-LynQXSv$IB z_?QThCo|X~AMbKfPcSW2sUP;dV3Xf1L_drT$Pi2H5o{`ow}X`Ux;N>Qy;i3ZMTJ!z%u;p) zmbfq-Z^#i75`k>sJ+Kx%()Cq3=keNYu)0H)0wwT{jGTho{o~IJN|d(oRAB0e8lS?Z zNU_`MiQbjASH_%dO+bx)yIo1UfZYFp)NFL+w#>xU9{(CGcANA2(c@YoO@CRTAr6gB zamIqPSk=2j#F0lZ9mrZMan0oQDRus6&brE@T1rIodB5~-fT*+ltlPar6iiCF3?MJe z<4&f5Z`Dih0>yIrBPn3J=emsFTY5|Gy&e4*awG^AL>%WhV|9xnT~<@;+?NXho)r&R zkvu$X(DLF3&k$sTS2XDE9DoApHZMTmFIc_vXKrJD#C(62|B^ZahZp!dzta1Oobl+7 zH4aLcjVCa5s2uH3w%zO^`%s1(n~>+}VJyg*&^Ux9LW1jJ7R4sV-lu`2BBhDpF zAm(#q&RP$>$)gIUK05G;oWQH*O9nY=*q3Z1mS5CiyWLkFA9I%qRHmwS>tsssghxu$-*eFd zvFIt60wT`kKdH5)?y!FgOkvl29)w@h(bGb+7vu#l4F4JD-I<9WwyT8&f7H9L=6^2(O8DL? zE)G47MvL;N1y)&F(Ez#<2}G#TU0PLww8_4*GjqYDZ={{I(?8x7il=;OK(|PKbiS5^ zZvwdI_14|>OYS4d%l`EigEPwmq}`SkJr1YbqW_Kzz=aHGfOGG=XJ$iXuxl6b>^r7M z(d&z_6Z|&Icdy;Zs;yJFh7*yikBjKpfev;L&u!K-DL>swHB3aLj>LP(JGi|w?kPz{q!vw;|~sfOI~23j{@j^DNv3qBbMk<133ryIz@&* zyzSo7o47o`Y3$iUX?z>DziO zTk35ahCv7C*UI9+G&5v{s0d|DG8E; zuHCYTQ7*|MQHi?oByR%Mshj>52gDXr>*A1NJO#gW18Y()Oc2EcntYS*gKi@0#<8;6 z>{|PeG>oD0HoA9tMKsdi$QGd+`l=_*KRC_K2TO9$VDcvKHLS;mOr|7=1e^_Hl~BGu zM55{G1z=<@#);hyhf+|3eg+@E0tCRCDEc0lHy5e9s~#uVa*=@`@Xhc$U-U?tE$v~| zS1reF!GqZ{&93rVqv~N~Um3X8_&=#ku|H-`oGO}#SN;diV$4rN{nNo=6az)QhZW}!4ShmguxiAfEtp5u()QV(*ts2x z@{3**z&anBk>^1IhCRY5$$y03_+@D0*%O8P+Ymsrk}OQo-_FdB_+NAO$M@nSDyr z^J{&5-J7h-wyYmH>+29`HdJm0%zEn{{_)xQ06Snq}MSNPKKYp0T|MU!UFKsWJ3 zp8m`w2|kqV$m`Ste3eudLzk_N&le8&PahPgun74?Cbn(w6pCflE1n(SN4zS zCO{*2kC2{glY(m31uW9uFyFOqG{d3KnTem?Q^ewb~m;#zXV$GMQ#cS)TQn42`pU}0~g6k4^|+q<>tLnCN?^{&U~O1WD7 zgr-Ua(-Y`8{9=e_H|L6N-5BvXE4?ot_vGJx(L0!77=hzKFeciu4a-T+!Djz68R)Odb@N;_-U+T8G&M;&StCO4+zXj8 z;8O5p{L(1m`=NHU;)(*FVKm+5|jI&v7u97ueU#lF0ktGHzOn>3(m2Tt#!|Ly`n zsEv&m6m~FAgT^%aGFV8cJn&#j;d)6{XZ@cUY!uLWqAcK6vYh`knNSIg2sYj(u;Z*; z>*=5fmyD;v=Ousj;Za_}lh{72|NRzS1`^=`bm@7ZNf+U;^KiIjb2Vve{5wUTScoMZ zfcMcyXc5OI;kNN!m$mM{uMR|zuV9_FgORX!l5G%lc&WqUfI}nwejNM%U40vfY&_X8 z55BKvNu+~8m!eu6 zGrxkZcQBL~D4zdgoj&P^NCK$OWch<7Un61#W5j-&0$f)WVpTDq zhvyl=`|(fQF4LKU|GiI#8j}~Sn@c%5HV$xX}H|NA-=`4%zu*-DI<~x3*Bv6sghxh={D_ z`qwqiD94YcrY|Bj^5}|s|M1K^wuE{#B0Cq#6(D8C@!loXvt=ITb;W-X*&k)|hbt&HgZR)~XqL`opbsisp&0}ZXcea@m1eg9wWSYs`9i(eLetk^LpIxwG6ah10A z=E{`zvsM|9?0sbu@vjh!#329P*A9wg-iJ zpt0(K!`fpE^wC3;b;mOQC*~x?-5r2uWr;mxs+EH&KS>+(J}aUh8j3jodBk( zI9|7CT$!@_NA*aDs?D`<_gnz&-w_EZ&>;e7pvZ*?d@?6};%nXn7hFp)7RsG6}f=7W45AxEj0-oLVjyu&v91yG@*d&?)&NjR=l0B!bEa;^_l{%3CP zLDw8gtuKaL!lpcPeK@q;LMz@XuDf0l-@Er@(*tqC9IT4ErN6`DIiEU3;cHd>Ywnud-gLg_nv$1 zGv{3Anwc|KXrJ2ckZ3_pGho3p--jks=^Z!zNxCeEgBsw#^@w_#&GFZxrCL(pwS$08 z>WlYzcZ1I57$w|i%d_SUGyhsXlGECS7}iT~2ke?XKeqXpbg~p0YWR!x`B;&|KkX7` zpcy7OG_oj$6O3Rrr{%M7*k`rG9AV#IJ-#{OAGhSz=>C2tw+`Z%7I3c@HFs$c=w^_f z;gl`$FzUW)#XE(ge{LEIW_k+fsCeW-m%fe|pph07CtV(zo;IB^)1tP${}(r@Z!bjS zu$_YacCMt_<_)vPI;z~} zDH}iPKtle-rWcsW1xWrFZTEE^{y}`t?0XS;0PZX!30@raSibW=A0Y#(GQ&J2Tk$nF zgC0ITW`z`Oe&Tb-8T;>ryOO}K&43qDMQ5!vqadA*v%`6zv9`soz$62lhkRoHRaS8f zXTpm30iWqzO3qNHZijglr|~AF?d3#xYvpA!zW*%HDhW8kupGlRf$qJ;?)3i86UqrC_D^IY|+?TBW;X4=|&Cj|>b z(-*P(e#3x&;oe(;Gdw%nY9<0lHpBc7!}aZt($WY0Lit5Q|4S7(;Qe0!f;I^GDWn<5 z;tAZu0UTWQ_4VxuR7c$Y&jA{9q4UguFLaE*18-Q(SRl?JR*q{yVq#*zzXi*fX0FBN z5e~SxYte4s|9-=u)Q`a=-P&XXBuRY9i-?Z_n}KRe zdS7xZSb(xjM5U+ZgL(2eGs8Q=NYs69&85nZwvvv%?_PL(iZ81MT@u@>=<5rP0a3Q# zH7^Sd(h>W9c785;-XKF#NP}GmP>~zN#vdOeZ8m>w>cz0;xdfM;<$rxpG9mVPjbMd0 zVS|PX7N9X?_azM14m3AMDEgFHur%_O3+`lvendp6xR}`Q0a-BvEJuogBK?+|gSlL< z3ReAGrWM<^w=1yRwBB4Cmsb%wecP`_tNP7mX4qqW`fPS?qMd-Y`LU1n4#%$Ft-k(Y z+<2V2CPv35`R_k;DR1(HBo{g5trCOtI<+_@NE%tvZsMrkW*fT$3;pFjS?_c}vIU9W z%?_QQmRIPw!(Ar3ouv57^7*CjC#~m(jgn>3glfuA#no%OdfF?9>D1@Kb;v%Cu%d}Wf`qP)NdQ2RSZz?M*bSZ?-(Ecdj=DrhXJmA0nF%|Wv;I+VJYn0!AK4|bB zWzixSO~Vg#l*;0&OL+;{7CTG)t5pCNWoB=0pm%D#Lr;*)(=2mWqq`ULv^#sjqs&ZH z0`SG7m2cH@>t1p-Jd`HsrRY~~ECgzExWoN+b3O4MgIRZ#2R!7eBnCK9s=p%jUaSaz zMSrfU8Wgi*HrE#y4F@yb)HO5PRA_8G6?p9Tik<#Oo;ttjH9W_a zX5Ebzz>AoPueR+yh;;k_q{ZRo8^eH$5nXN{Se$Di4`xJ87KQhzHzcNw=go2i*6?Ix(Q5Y0kA9TZwhP^9>Th#A_x)T`+lmHfPAPkb=L3nI$En)ao zfXsllYFPkO9Uri2Ya3Oev(z$JY%fZ|?v>w@yPz!aG0`Czwnl)xfO`mKib%Rs0X}2~H?rLmY?|PDuiukDR3pMp>sCpR&`D^bxUBCBv4%qV)?wG)?odI-$!=YgunfoERtErVo)!-9k-W z;I!YM_5S)!(RP^k_tu}&IN@H-!d|E4+19({6AbE|Y6wnnmprTgK|7h<^I%YFTHp{v zr0^(b_dStFwt|&-so@Ol``mcqkP%ZCtc@+vY zq?RPZ?tssAouz&Pk#}!g;l+nit0{_}vo-ucw=ohqaxe~e z`5&DY7TSy1+f%8=_HSZh=9rwk|GZFnn{2Xj%Wq|YA!=4g`@M=YlAk@^a6$?Y=4vN< z73BZHHkEXOwYrXX^?>u8hGwy)$-oirJsdf8K)6?8=fW(3=}K3}cVZFP#QQ=Z-(2-m@GKp@;fry(uet0!?+S7g(#AIY!e zWFH60@7w1MQF!{=*GNKSs|`kf=}En-J}h}y+$Kv;U>^CJO2ULQ$qR#}^IR}aFIC3h zza^G%6}1%ne%q{{hn1*3PIn=FYvVkmqy1?%gOhTnkbaY-3zg;0K-VQhubom+p{a@V z`IF4w-eSu}8?^W-&sv`0oX_Ce^>h`7>Db@lTKGi^voy7xmn|8J*@lI`=#<@!cTC$6 zug43duL3d+Zia$NV;U%jzpsRlUX=&K&3h)ZQ^6g=N#}_WP2XbhJ6&8xLjMjRIr@0J z@gy(gcIlu+S)p&CJm{!aA=d z4(5pQ7*_~S2ulynY*fBGGg|V;9FLz?>zhuY;MqFoCEXgx0}Rbd1eBaugvMTH637;y zaOv_3(u>{*(^mM^#E7~H0#_w)`rdNXJRK$;Eqy@aZI<~sWeE4FvQ&QboZ3*fxUX|y zCx$dxSW{v0{R~0$N3rVB_58h#U7E*t`x@XYRIW?E*Y9tE8t=)El_igXWmf?N{+kkR zv9r-`0q>?ikA+WZ5yyOiwq~6&yyW;4FbT}mwHZq&#Z*Jr|Uy(T9D$2 zQ##)2*190EgP() ztsecJQi=DbN3p8EPu@=D`2v)jia4#$4!@<6K^0ISos6r13cQSs$USvQ#hEX5Vv^At z;j(H7sz3Mf{1R9$x#4nj`7kc{JgS#ETTu{Ec5Q!QWgDGC=uYKp`^~EK!>*Z>1bE@fcIYb?(NQ#>7So!($f#Ha zF%1H@485Zx0bFjvYNVX>8+;HDY-he)deq9gvSBsz)EiBn!#hWLBT9<9cl1*jAAEwZ zzh7`%`#^PlIeUpH&P$|_iumR0DBKQ~Z`vdV6kvKJ95kL8?%RlHg+CX(Z`q6l6&1S}{z?u`QM)5X_x4$nK zAcSICNpTF{MUb0?2frpGMb3lz=q+i8217-zg93;2A3VRH-iED<2v3AG1)1p9@`Bd^ zBzpQ!2pjRp5^_9W!Ow+2@Q0pwZISrBvGQNg>Yx$wGVFbiQK9!=uXiGJ`!JaUk6J?} zLrlI-o+0Q3R8mJy1C~A`gqxTFs{pPWDN)3&?P3d_SjT)XBWb=r@kUu+-3|?;D7z7n zpwfNqwj#(Ie1$v~BoHoH>xArnstplBwqmS+ASg~8gbKhW0_h5Ec!F4P2(5=#L>9bp za;WiB7Ml#fT|~huY@Tx4-I~dzkJk3dq5_IgqM0w3pMHV zsH)}S1e>-}hzM8iLn|lRUC{n}CD#h414GIgbR$dGJE7aqg~Fdd9k%xtBS6Rz6=?u{ zm<)FFZHp7lHV@?$(fT#EZu_w&YC-a{5W@{u9}?8d$o$!K)=$!~h`0)>(O9#YQr|P; zg@0>O6y!aprrllgL(TJ^!>fvMl7#Q(laUn*hd$nC;hulgg3F2q?%0fJdo* zZT__p#zQHR?;w z49Z2Sr4q9`xaNj^1?0fiKVHaG3$b+pyS?5l#%*!7aQ|56yj~?6c&6 z=E^OIq8FazRZ zsb%7s!#_c4s&1=tuMPQdH50I?uzFgI?1Y4|zw*Y<_8=@AK~0Yv#o!M~anBsQL3Rah zu7sg?j_ByDlpUvVIbU&6tpkh++WzXVG5aINOu5H53%f*1R@ZNr5!Zi0vAVm>t@^UP zo3t`85Wy_UEMq7FS#63voXQtb_b%ke53gC?g80cOdoe?TZ8ef+YTPm0ry;RDr?~Z$ zJ!MhNKDY|UJpYS!i>Om};s-4b%WvjjgGu#2hXy1oGPtXUdO!3vcjd;1(6ZbY79@F} z%Wg8zY$orrh2~<#wg^$fF*V7B0{lP!NewXczHw!HmU~%nygWlU@i;=fL(t~N*np7hr;8Enh zj!`y&2`7i-K9F1*OemSyXexZ4R}K%3qs}bNj}_);8z!ZHDtb@Cx-$#U%EpFjLJ676 zo6#=MQNBsMTVM?PL35h6WRTXxQPP_Nl{vpqh`PFJsntS0<`Ck*^ru)@bKEiS7U2>8 z1E(@w%ZZ-cpT?sS*}>y)6j(G0-kJ}=$QL+g@mrtMtHi&bsQV4@|>j_F%NLK^s3DrHyLswtcaq86T~^=q~n{wfB@ zV^7oi-{c*cMjMrfy?<{aZ=t{z*}EbZRSnhZJH}O_5IuajjO~ zuS)ocS-4G>89LwPJuMo3DN7u5T-PPx`YNKD$0)4ujwYc`L7+Se5_kDcznoeH6i!}% zBSb*W6^6~awr4{Dr$T;V4Xe)!?8iURcnmTMod=0L5MO59V3zcqA#WhH*?H33rY!<@ zdyR`bgANW+{hq*VG1WSFRGIzBz8}~&G_=>d1{mOzBR?4c?lO^)qso4eskWsSAUSe% zUa}O9(6#)0>g3!XH)k2j-O`BMX|Kns75*NK8Bt%5!yw7NKiAfr>1m=rEI(aUEbHR| z*zcBR&BF>$j`?m?!*QIo{BgIAA~ zk_~u4kmY|mFW+2upgHA3I#o)`84!cPf^Qm(IYeWHWM|@KV)yQjVe1iKG+&xRCi8}Y7_iE1jMqF?(eEnb<&&YG14-EB zo$cv!D{*4Dy~?d>P|HbBcFRfp%b1A+tSVkxuVeCu$(SnR357U`Sk?}Dh@^)saf}vL zUk4}j+3-||oY6rGbFFf_0vTme3dR;ZarXYjSei`+2DNvku5K;b?ek(r6AmVk)xEZc zGaQL+%WkmwI;4wXqqnF(VAvu0>U z#edqt;!qT4okRSzSTH)198DS+i*Npu2h;awj8V25KZtfMlTGE27N^3FF!N`O6cwa& z3Hzd0{dWDjz-+;kTQ`f2GmD4NKMElZ?{0cJE3<=k-kARQdR{muqZvDo66v>Hzf1$a zu9uuCN`lrF(^fZY_lu>Tb0u{tj4^);3-hQlZ_;*hoRPqSu$%sB3=ri5xtB6}>P_*PO9D0i1mOeY8bM*L0K*dM$|zQedTo zcSL+IUE-6~I!39Vv~FUhS}l^dJ#^jNszO}MW;h%7`2!PX74Q@>vvbUDovmZ*bNva! zVta!pAW)D1R$&o0A}f?ox`!aQg1+aZvCtat2V~3zob6+AO)IgrXIc}0w3G(S^Lg9U zSXvnQvCO--0adLNBq)ZRDIrkkD1&hEPRneyBY-ZiIRi7!30k)okwegylopGg3;xNS4R2}hGI=cLbs8VBFe_(kM>^@lO`fAj;_T(hBM5n#|{dfqQrOp5Tj*@#N_)5&>#}FaaP?vG2 zrp*{-AbPtdAwx~YTE^j>EIgue+a2DWp(s(KM}`$$CczA=mmE@*s0FAXdC*A`X6mYG z9>-N@Y#n_v)jJ8X^9Q|d%w!o8{hjv=!`xil+tDf!D3);rqxcY4;a=}_m}m)OWkZS=C|G^r&@5ak*5VXzBkzIx9M zTHr9>YEllhCUl^_bMM(b&afT|_&(UOr_+Hx`#7H=T|=(3Bxtoi6|WJ7@l-nM!W?br zCKTc7AsEW8ODaS6+n1nm9)^x+qcGbNw+_DAfBfvEHl3e;bLG)1h7{N*OvvsUJ#XnS zb+riOATfdS*rb;|cHT835m-r90I5IbpWkH^zN{m(ABjFY`|wkT`KK0$Bk2a_qc(JH znaT+bGc%D&R{OFfw}|iS)ri)d$}2e+j~Thk8Gk~&Om9X`%&wk%t@(N7{!zQ|nBz|h zY<=`IuNuNg$GmuO5$@0UI!Z%B66`%3B-BmSW9IlaD`g@U>0P!v0b6AVd3NHBB^PFy zxSYuV!WHbYG%(q*ErF`6tPHZYxh+5Lk^QysuFU)o-@Twa)KYk?f;;ZqC5xZKG=lm4 zE4!he>An}%I_wX;a*>io?aidor@-v6Lbs9G^xrfJumY>aRc_LUR0#-*)6y*7wmk~e z=k~7)pWa0o-}4}rH>(N0a*^hJaX8jq$k;Rep#3^sjiXlaVP~1dA6bKSz++?rkDSuN z%Km?{D41|F{3+w(=TrjT6LG>3a7a??_ zxv#3`eDUa~elk18$8`?Rn|CUkno)ebMlmX!tx%^ba0Sn!!wX38qb>>w#}5DiGNA+j zz=0pdB!rX|lq5w&RYW92B$R|y#6?s@6%-^T#6%?}6r_YeeZYel0Pu?ggm^cgCvYx( z3X}kVCVm8;WGVo7Yimb9kvx5j_|#K&;t7Yv9PV8A~tU1Pun{EU~^ zSVffA5bg?xVc`6t0wQ8Z3IL!G+wq?iPS*MCa@iUD{u&=q49yAm_lQs9A(#(g{8Uf} zWsg7!>bcshc){Gzu5cw35(`IS1&uWXHSADGj3D$D)CuQii!nxnbHL5wEE4o5Xk_P( zKw|}!Q0{PJJzHnE9TwQq;Fml57nusu5rI#42qaj89?w>AMLWTiP#$o1m?IqOKjMHI?a-yMa9yJNipYT~j8a1C31 zT{R_?8yfEg1GfjlpGk-v>3U<~f9ihMF+p!mDjKbur<35;4;6Xgxeb-?!W;n z$_6MI$V6iGQ3xa!xQEjqKXc4Di92sVTobg^MmRcQ5lF`)&wd5jDxjsdp0b)d3Wo+( zH^Xwl-RZ!*PND=?$YcDN0_y3&v9P1mO!-&Df$<$3=QW}?l&8T7&P@k_#sKL&^JC<{ z=SHpwJ2(aq66j+E-TtoApZQVvR6YwD>ci|@@Ff8-YGD^y{&%j8vV*xI?!d4J6jB%F z2FIXbc5vW4);kQW*0Ir_AwA*Cg@efkQ(^{m#PT$r%*+A52YMr5c7LZFFp+v*1%_jU zb;sFZ{|rY6NZSM1e>-uUuevM1?HngWL>V~PhxCEDJm&mP9of(J1~4wDiW$_{P({s9 z&shJKu?CROLo$oM1SiVJA*f&Vi#>8`qbsuQZsOC=i(bnNU_5%UdU|?x-piA3xXFY>L^!9y(&g?tcigIU zFAAt7?Afz{5D3%;*zX$0&0ui}_rpl@L z{M)vquCA`{fA#P^NoVY#HF~YDZ)vGb)O419wnJJF<L6%h~v6$uRur6CVKZ}OJn z6l4bG(yb4LD(@5Re;D|rq@$zbF5KPw?w#{8b26PK+Q%ogSK^>j<`;C5FYD2x;fK5p zA3uKdV!4F2@DHdT)2DxHmi;4N;c5R3HF$ED%I^JrqDhPN3-3ohYOJrXUy44v|D{Yu z-GM&I*utVKWn+DPSzuT~P#JQC_4*Iu@DFBuw9ZHbtpVR%cVES81F!NNAwu*Y-hRSr znHn4SRk{p47S|7xuKsXFQd&AYr-chX;hC~oAR=<+Myh{%1@)CG*1FH5;3G{=gyAA6Nt;7NppQQ zEpzGu^xV3l=O7hr`LK!n7)hGUuPq<9Hu-zO1T>d+VUoPm?*1n}-Sh{L(*6 zpzjqku6`*y_3EoxOoH^qWV(4k^w+Onxmm9`@*Z{-YKFw&+JYm2=&MdnPDg(H2kB&T71@ zyc;WdX->}l@87>yOiN#CZJ#sP2fm_{gh!F4ot3hF2WjIZ9-f{f5zmT?XLcOa^uEoj z?$j?QyKbN&)DyVVS~x2zD&F_^pLcUZhX3@k5I2DJmPhJB5ei>B_q#;|6I#d!GXfaK z_Gbj{j_lYb$=i`FjG}&gPN}r>>X@CBkL06-2Nfru2_#iWNlVf;;kULnGEzG5&*;)z zS2L;4*06QMz0JK85+Xy%{_b;hyq>D>v+b%T_8x~y2FdMW(S%WoU&+qcnuU3ps)Faw zV{O_WMn`wO;hz4wH9TT)_f&0Lk~|RU6w28}9GJx(pP1;9Y73Nqdm!Pj;#g^3(A1QX z(>PaTbT3@GHQM2fP~5h1l!3?GAb;Rp{_d&$-A%+DXNynF#C7AyTJKedvCP;{ks?vL zhWw!|G_^AZLtHJx0|Nszat8b@>XM2{MTNAKZwGqoeRg#}g|Ru}aJbQxMHTnM<|rnK zGgh#~N#fU)jLMNfaJum+8|v|OW2p2b@jKqAZ>1du%2{Q73go@9HNi1?BMO5?Qo=7p z(-0DGF3(cBqfmnPS059y)(zUL&;bHog@COSE3s;t}X&XCuv)LXt!$8|U|J@TD)A$%WM`29N`#&@GQ$Z+ zHM?zvl}1?rI$9of@}k`#q`PPB_7+)F?Nz7GC4#V2OWMf>gDb4x!q3W(6X{>8EBn&X znxi5@ZJIK)zjQ$Kb^a?Sgw8VfBOMVR%_;UCZPH3yrE~=Wsb>|HwO-?(oW<;{14aAG zrtbw-8YOJp|>tfuH|(D*zQ>D=Kj-IJwEu?5TyD8~-OAuf0~y zGgMUh@T+TUYfA;s1vA*xR#vtpR)e+_g*}DCL%;o!sp+?93r`EWMy}7mMpBD-~ufz?X{7};$cUD0m%{NA!fF2IUym) zg>MFa2j-9$+GPv-tT)3+1;RW4X=8g4#?C08&7B=-rVF2-#8!v4QdQ$p(VsYEQRVbj zR_=$AeXR1{%tJ0Kdr4Gi&l<#SSZwFn#o=ER{LZwu^IV7`DVh=nX=&@^MMYcfSstiL zenKd_gwE7zGKB`u?iLGv^<^MRyR7T%=91?l|Cvi$pExL=z(%H}{JNOfW!gXDPkpnu zBa=D(koLWp*Vnt(H$$G#`d&3LY0It?($C)XLyo@gB~>GxAcPHEy2;nVotet6*pH#4 zr<13CUQHjV_|@+9`HKn@uRE3XU5m8n_6{j|5;CK;Oc^%s6PSAAjI!qa@&eWsJ*C|l!U01tvF0dOjy+6x{$cIh=_#vbvs*7 zUm1ZxyTZJ+VYYBr5OEwCajrfaL3|ct|xd8>kfyx;o}0p{!v#Mvk8TMA_ytcK_~*a=Gy~#5kXU~Ye?m3zCjBG% zBIo6Fi7Bi{YMherpi~&=TeQe_F5T~VQ^wP)&h?a zNPi+YfBb|QC;O#4c6>5F%KQn^`?p;{@Y*2W1?lfg zU;fShZ=e41CwTSmn+1>95pf=mC!75}1=qcek0|RTs$(rY;>Q0T`Frvks)AY|{io3@ zEy~nXKaO(X?s-M6pZ&@Z2)7{(wHT)uHYOU%p#YI4j-60k?0FD0L?PpTWYXb-klBny<1!XP zK(#ud@I|=1)AbD6?wmGS%uETpq=U^5Ci%m4xwotd+O%+n`)IkC!W(xff5mQeOLA!| z6VqL$T5-6f*J#oj^sUM_vzj|7) zFANOEeZFupXY=Zn@5tS^c91))nVa;y^{t#TjDw0&6bDWEGp*#o(#tNcR6)B)-yAlK z;hN`~qg&I6z}>EUboVB36ba}eZ!=ot)-je?y0dhkJVp>%b=GP>{dNRYQgRp+*LZQCY9`vhDOo4w0yPoS_8=MF(F=yZZB!3~fw@Wov!OhOykeZ!<)>t+k76{TKG4_JVA} z@>^tHi0}Q#OPv35YQp~NJU{DO-}>)tH%p93(B?VQ$-ly58+vO*2i;%A^~Gg56fxB0 zOtywSj1n*SC6h0V*3D;ZI8$gk`^_}5e<@uWWv{0_$&hAa)_Okm#U|Fe-=*gvMy^6n zi=aQUEcccYR)YZFIig^6#$)9dCD4&o~q3`-8+0FZuK~<4%#j@ob`LW zM!6RpSlZi9+Rc!iiq=Q%ZB_2=)(s)4B59=fq7Gv0F;ABZ{b=I3NPWHIAe}|GjM26# zCjQ2T@#z8BnM-Jf$5(C~G;1waJP9Z`)sFc##eE4Ee4jFoW=)i0CtZure3lgY=v>QG zp@YO7xBT_i#djUKn&~~cnBpG$Gwv@G7Lyt+P9z?@;)^Nh0|cxt4)5tt=COHtx|7+_NbPlO?%0Mcr|f6?49_?9fu1HFI`7PGb>?0t5fUwC{COiqBg5Cn9%4bKz2GJ# zzVP%O^nsZenJAlNI{ze7_Lp7gsk3nhUc==R4+S+kv=1{S1MTm&CNp(wVL78yCC=>M ze9tWtS4?cR@7_pxP5?^Slx64PoZ%VZ5X*O`=Vw!Uw8QOuOX9rI#46eDxj=r;H*Fh& zH@5d2gv}c73N`R?)n?kSHb|yV$DPVorXEKQaJA<&7kc(rWRcu@d=vA5^6_DyWQF0K zc$O}r=3<=ly96Ze=DW|aw7Q=uDfI5BcVFmMiy^6$Z*~iH2b?d$TzO=%+*r>Z4)LAP zC!KXwlgc5)mak4Px0HP^;88i~ylIn}&C$0+w{vFTf>*n3PJeCr(421uOY#16t(6*3 zQ#}@2Fv4Qy+n6jrRT_Ybs&u8kc3u-j^KyL7Pu*c!rY%C3MLkuwK>iV5?`Qw9R8hOQ zORQgf&F&{pSyYJMt-PrEI;GOXM$hDeX;71OI)_<-*{OF*F@mzuaT%wd8gRRnMqL(3 z!}ek?AQ*3z`KSg#C?GqGh@j1_?-o5+xw8fz z`^DGiMudbf%RVUKD4Ol{ zJv*1%=B4S%9;%ep^?IV}tf^~?LQxat+43?Qd_S2d^u-=6S@ymh673PYTadq_FLt2h zKKcC0)^N_^uE^lkZ?(HYy73)iH{vOp$ga6PX?qj7a_-gSex-`|n8t0hmNT|B>+jFT z)zQ>P#661qfbq+*V2qdOLbc27#!Pi3_kLk$%H6yfD!Lq^tqbdrdO|c_JuZ2_5*zK% z=6~4`IjCOE5luN?m7UA%pp!itUM)O;>*MLbl|xFZwb`N#4TBmE3Em2)6?N5dYf+Ir z+Tc|Zw;z>wI$F6Q^QO3^EyqLoi&0S0j`%m9lHB#YDf+j&j!=!d$^Guy7R%+$uKC97 zogW?1FZslz9QS@!y*?#k$3vktiEd`6e))ZGZT&-0NNJ^~Ety+;&IGdJaO?Qa|FJU5LcVy;-76=oWB{K z=_X=*j^5Zl=&3KRW-OS-S@q*9ht3fKRff%mH%cN zgV6&wrK!12($*7pI@ZPK1Lt`^~X6Uxa>FXck_PAZX zDVfbeuC=}hd}L7Zx|lqkm-q#LSR=&}Wi~Gv`GR6-LS3BaOm~XBMAWM065tayv^Nmq z;#t-q$9NBArn6k$(N9r68KtxS^WZzge~)AKV|sH$75C1%o@JEF^WxTv{tJOmo9D_j zljkGkN{u`zS|mSFa&Q(e5C*MQCD%VQjHuWmn(gY*{ZjE2lMr~iQvLm?jIcgd)Q@1lq%Sg}UN?kD>s#|}){dy`Occ!=JtY1-*On~5B z+c=`u&%WQyU;=LZ#GjcChh9Y2?IQZ5wGfU4%rTF*84_sZ9oOo=xlAuYtRYs8$qP{< zdbgA1$oJwT{&-nQ;e4=9;|t?@t2-b2IOY$;ha}+~|0Pw+HsrX=bRXo)PI44oim7$&3qz-hIRbBDkmkG zH%u}@q|8SwAUZftTNJxS&|Dfk?>^ySXU<=Z=pd3Mxm7iN*B~`mbBO!xWomNAPJd~+ zcM%i3CDY^Ei#I}N{c_kL?=MGv*m01b0{UtzNETzJ$Yz_XS2I9fa!u(sR2tPe5bR> zoU^0jfHe{uY`1Icxtv|c)@fQ1D>^lFZkp`$QuYgq(ksf@;w%{v)g@6;Up*5GB_sr@ zeLhTVDG>~z75J{cO?wmbIfStPyh?-e`?iBCpQR-t0_3DfSS*-d#C;sUJazGbg44Oz zCHK!K@C$lb?Mzs?+jX)hFud}G-o-*-YdAR}|us0X?U&F;LuQH9tZH#gN=?6)9`eZVkJ8-KRoy)5(h6z@ne7)NUZj^@+RM!kZ5!SMP`adqhP!0b z4GX*594zg&L$a3p_<%cu$UFRrN+mv@%1BHgrA`AA58izg>|12<@fE%iQGL1kFrLII zm7Q0CuU2~chZdjzMWKYB>eW@n*;4ky9G9x!_>DbgBsq|}R(62#^~Ax#KJg?{6NZ#D zU?!8}-o{k^@kVIC_m73g{gXkp)!h?W(?WM(5~a`I$V%nEzuL7}9$kCYpQcL2#{DX3 z1?$qrIX@C{Du@)f*g|CrRu=j)Idk5I#c2-depl@LYJozP8ga+3!4;}d2Gu9Kl$v+u z!xhBj0?so};^bUzwcSvceX3qe&-)@KYeqn4>OlAMT<*Oq7ED5%HuuhzGTMy%ggQ0w zCJ83oVC(Gr^Z~eHUS)5XCsC+1?|@EJBj2vtD2pE%p{nDQ_0d5>4%qLSiDvqb-r^8! z>=ijoQdCe)cxZA@+q4I{X+4W$vEW_xR_Uzg*8H|4!ezL|-Shp?&{?V1)2K=Tiipv7 zkGH5R&gq*k%G7;Sa;Xs^y&dJ#)1t+qiXea9zm}hO6<5?Ydok3E$wWWdjbkJ|x|chp zYB1!sRE3ARidBNNC3BhXL4GH4KsDvc|QNtyK#r{HakwUop^Wa*x+H*`l~U%~QF?6H~(-@>=_uPRp>L-Vt&0xbhs zcFAvd~Z`qav&Gfsu>!;PvtUQ|o42;FX$_g&h$wSgHW`AP?+ z5I)E8L}Avgt597W0@sjuJ_wTuDSi?_bAxNR=~=>0*L%fXo9Nyg{cA}RUQ}oiKab!9 zJu*kch&aUl3H^B!ji*-3M!nWwi)W}llr$G$5{o(`R-St28^02zf0kv7%TtuAy5o_^ ycOd&N6;(#Y!?N$^WW=%26mjcPaZl4-?a;%xe*c7&bmtp{7nkLqAOqGxfc`(k=})x) diff --git a/Content/OldExampleContent/UI/Icons/T_Warning.uasset b/Content/OldExampleContent/UI/Icons/T_Warning.uasset deleted file mode 100644 index 8c403f230bcfb78dd047dd11cd92a1b771e47348..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29267 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