PICO Unreal Platform SDK
Pico_AssetFile.h
1/*******************************************************************************
2Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved.
3
4NOTICE:All information contained herein is, and remains the property of
5PICO Technology Co., Ltd. The intellectual and technical concepts
6contained herein are proprietary to PICO Technology Co., Ltd. and may be
7covered by patents, patents in process, and are protected by trade secret or
8copyright law. Dissemination of this information or reproduction of this
9material is strictly forbidden unless prior written permission is obtained from
10PICO Technology Co., Ltd.
11*******************************************************************************/
12// This plugin incorporates portions of the Unreal® Engine. Unreal® is a trademark or registered trademark of Epic Games, Inc.In the United States of America and elsewhere.
13// Unreal® Engine, Copyright 1998 – 2022, Epic Games, Inc.All rights reserved.
14
15#pragma once
16
17#include "CoreMinimal.h"
18#include "UObject/NoExportTypes.h"
19#include "PPF_Platform.h"
20#include "OnlineSubsystemPicoNames.h"
21#include "OnlineSubsystemPico.h"
22#include "Pico_AssetFile.generated.h"
23
25
29DECLARE_LOG_CATEGORY_EXTERN(PicoAssetFile, Log, All);
30
31DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAssetFileDeleteResult, bool, bIsError, const FString&, ErrorMessage, UPico_AssetFileDeleteResult*, DeleteResult);
32DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAssetFileDownloadResult, bool, bIsError, const FString&, ErrorMessage, UPico_AssetFileDownloadResult*, DownloadResult);
33DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAssetFileDownloadCancelResult, bool, bIsError, const FString&, ErrorMessage, UPico_AssetFileDownloadCancelResult*, DownloadCancelResult);
34DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetAssetFileStatus, bool, bIsError, const FString&, ErrorMessage, UPico_AssetStatus*, AssetFileStatus);
35DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetAssetFileList, bool, bIsError, const FString&, ErrorMessage, UPico_AssetDetailsArray*, AssetDetailsArray);
36
37DECLARE_MULTICAST_DELEGATE_OneParam(FAssetFileDownloadUpdateNotify, UPico_AssetFileDownloadUpdate* /*AssetFileDownloadUpdateObj*/);
38DECLARE_MULTICAST_DELEGATE_OneParam(FAssetFileDeleteForSafetyNotify, UPico_AssetFileDeleteForSafety* /*AssetFileDeleteForSafetyObj*/);
39
40
41
53class ONLINESUBSYSTEMPICO_API FPicoAssetFileInterface
54{
55private:
56
57 FOnlineSubsystemPico& PicoSubsystem;
58
59public:
60 FPicoAssetFileInterface(FOnlineSubsystemPico& InSubsystem);
62
63 FAssetFileDeleteResult DeleteByIDDelegate;
64 FAssetFileDeleteResult DeleteByNameDelegate;
65 FAssetFileDownloadResult DownloadByIdDelegate;
66 FAssetFileDownloadResult DownloadByNameDelegate;
67 FAssetFileDownloadCancelResult DownloadCancelByIdDelegate;
68 FAssetFileDownloadCancelResult DownloadCancelNameIdDelegate;
69 FGetAssetFileStatus GetAssetFileStatusByIdDelegate;
70 FGetAssetFileStatus GetAssetFileStatusByNameDelegate;
71 FGetAssetFileList GetAssetFileListDelegate;
72 FGetAssetFileList GetNextAssetDetailsArrayPageDelegate;
73
80 FAssetFileDownloadUpdateNotify AssetFileDownloadUpdateCallback;
81
87 FAssetFileDeleteForSafetyNotify AssetFileDeleteForSafetyCallback;
88
102 bool DeleteByID(FString AssetFileID, FAssetFileDeleteResult InDeleteByIDDelegate);
103
117 bool DeleteByName(FString AssetFileName, FAssetFileDeleteResult InDeleteByNameDelegate);
118
131 bool DownloadById(FString AssetFileID, FAssetFileDownloadResult InDownloadByIDDelegate);
132
145 bool DownloadByName(FString AssetFileName, FAssetFileDownloadResult InDownloadByNameDelegate);
146
159 bool DownloadCancelById(FString AssetFileID, FAssetFileDownloadCancelResult InDownloadCancelByIDDelegate);
160
173 bool DownloadCancelByName(FString AssetFileName, FAssetFileDownloadCancelResult InDownloadCancelByNameDelegate);
174
186 bool GetAssetFileList(FGetAssetFileList InGetAssetFileListDelegate);
187
200 bool GetNextAssetDetailsArrayPage(UPico_AssetDetailsArray* InAssetDetailsArray, FGetAssetFileList InGetNextAssetDetailsArrayPageDelegate);
201
214 bool GetAssetFileStatusById(FString AssetFileID, FGetAssetFileStatus InGetAssetFileStatusByIdDelegate);
215
228 bool GetAssetFileStatusByName(FString AssetFileName, FGetAssetFileStatus InGetAssetFileStatusByNameDelegate);
229
230 FDelegateHandle AssetFileDownloadUpdateHandle;
231 void OnAssetFileDownloadUpdate(ppfMessageHandle Message, bool bIsError);
232
233 FDelegateHandle AssetFileDeleteForSafetyHandle;
234 void OnAssetFileDeleteForSafety(ppfMessageHandle Message, bool bIsError);
235};
236
237
252UCLASS()
253class ONLINESUBSYSTEMPICO_API UOnlinePicoAssetFileFunction : public UBlueprintFunctionLibrary
254{
255 GENERATED_BODY()
256
257public:
258
259
274 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
275 static bool DeleteByID(UObject* WorldContextObject, FString AssetFileID, FAssetFileDeleteResult InDeleteByIDDelegate);
276
291 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
292 static bool DeleteByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDeleteResult InDeleteByNameDelegate);
293
307 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
308 static bool DownloadById(UObject* WorldContextObject, FString AssetFileID, FAssetFileDownloadResult InDownloadByIDDelegate);
309
323 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
324 static bool DownloadByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDownloadResult InDownloadByNameDelegate);
325
339 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
340 static bool DownloadCancelById(UObject* WorldContextObject, FString AssetFileID, FAssetFileDownloadCancelResult InDownloadCancelByIDDelegate);
341
355 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
356 static bool DownloadCancelByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDownloadCancelResult InDownloadCancelByNameDelegate);
357
370 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
371 static bool GetAssetFileList(UObject* WorldContextObject, FGetAssetFileList InGetAssetFileListDelegate);
372
386 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
387 static bool GetNextAssetDetailsArrayPage(UObject* WorldContextObject, UPico_AssetDetailsArray* InAssetDetailsArray, FGetAssetFileList InGetNextAssetDetailsArrayPageDelegate);
388
402 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
403 static bool GetAssetFileStatusById(UObject* WorldContextObject, FString AssetFileID, FGetAssetFileStatus InGetAssetFileStatusByIdDelegate);
404
418 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
419 static bool GetAssetFileStatusByName(UObject* WorldContextObject, FString AssetFileName, FGetAssetFileStatus InGetAssetFileStatusByNameDelegate);
420
421};
422
428UCLASS(BlueprintType)
429class ONLINESUBSYSTEMPICO_API UPico_AssetFileDeleteResult : public UObject
430{
431
432 GENERATED_BODY()
433
434public:
435 void InitParams(ppfAssetFileDeleteResult* InppfAssetFileDeleteResultHandle);
436
437private:
438 FString AssetId = FString();
439 FString FilePath = FString();
440 bool bIsSuccessed = false;
441 ppfID ppfAssetId = 0;
442
443public:
444
446 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
447 FString GetAssetId();
448
450 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
451 FString GetFilePath();
452
454 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
455 bool GetSuccess();
456
457 ppfID GetppfAssetId();
458};
459
461UCLASS(BlueprintType)
462class ONLINESUBSYSTEMPICO_API UPico_AssetDetails : public UObject
463{
464
465 GENERATED_BODY()
466
467public:
468 void InitParams(ppfAssetDetails* InppfAssetDetailsHandle);
469
470private:
471 FString AssetId = FString();
472 FString AssetType = FString();
473 FString DownloadStatus = FString();
474 FString FilePath = FString();
475 FString IapStatus = FString();
476 FString Metadata = FString();
477 FString Filename = FString();
478 int32 Version = -1;
479 FString IapSku = FString();
480 FString IapName = FString();
481 FString IapPrice = FString();
482 FString IapCurrency = FString();
483 FString IapDescription = FString();
484 FString IapIconUrl = FString();
485 ppfID ppfAssetId = 0;
486public:
487
489 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
490 FString GetAssetId();
491
493 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
494 FString GetFilePath();
495
499 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
500 FString GetAssetType();
501
503 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
504 FString GetDownloadStatus();
505
507 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
508 FString GetIapStatus();
509
511 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
512 FString GetMetadata();
513
515 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
516 FString GetFilename();
517
519 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
520 int32 GetVersion();
521
523 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
524 FString GetIapSku();
525
527 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
528 FString GetIapName();
529
531 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
532 FString GetIapPrice();
533
535 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
536 FString GetIapCurrency();
537
539 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
540 FString GetIapDescription();
541
543 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
544 FString GetIapIconUrl();
545
546 ppfID GetppfAssetId();
547};
548
550UCLASS(BlueprintType)
551class ONLINESUBSYSTEMPICO_API UPico_AssetDetailsArray : public UObject
552{
553
554 GENERATED_BODY()
555
556public:
557 void InitParams(ppfAssetDetailsArray* InppfAssetDetailsArrayHandle);
558
559private:
560 UPROPERTY()
561 TArray<UPico_AssetDetails*> AssetDetailsArray;
562
563 int32 Size = 0;
564 bool bHasNextPage = false;
565 FString NextPageParam = FString();
566
567
568public:
569
571 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
572 UPico_AssetDetails* GetElement(int32 Index);
573
575 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
576 int32 GetSize();
577
579 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
580 bool GetHasNextPage();
581
582 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
583 FString GetNextPageParam();
584};
585
587UCLASS(BlueprintType)
588class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadCancelResult : public UObject
589{
590
591 GENERATED_BODY()
592
593public:
594 void InitParams(ppfAssetFileDownloadCancelResult* InppfAssetFileDownloadCancelResultHandle);
595
596private:
597 FString AssetId = FString();
598 FString FilePath = FString();
599 bool bIsSuccessed = false;
600 ppfID ppfAssetId = 0;
601
602public:
604 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
605 FString GetAssetId();
606
608 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
609 FString GetFilePath();
610
612 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
613 bool GetSuccess();
614
615 ppfID GetppfAssetId();
616};
617
619UCLASS(BlueprintType)
620class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadUpdate : public UObject
621{
622
623 GENERATED_BODY()
624
625public:
626 void InitParams(ppfAssetFileDownloadUpdate* InppfAssetFileDownloadUpdateHandle);
627
628private:
629 FString AssetId = FString();
630 int64 BytesTotal = 0;
631 int64 BytesTransferred = 0;
633 ppfID ppfAssetId = 0;
634
635public:
636
638 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
639 FString GetAssetId();
640
642 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
643 int64 GetBytesTotal();
644
646 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
647 int64 GetBytesTransferred();
648
650 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
652
653 ppfID GetppfAssetId();
654};
655
657UCLASS(BlueprintType)
658class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadResult : public UObject
659{
660
661 GENERATED_BODY()
662
663public:
664 void InitParams(ppfAssetFileDownloadResult* InppfAssetFileDownloadResultHandle);
665
666private:
667 FString AssetId = FString();
668 FString FilePath = FString();
669 ppfID ppfAssetId = 0;
670
671public:
672
674 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Result")
675 FString GetAssetId();
676
678 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Result")
679 FString GetFilePath();
680
681 ppfID GetppfAssetId();
682};
683
685UCLASS(BlueprintType)
686class ONLINESUBSYSTEMPICO_API UPico_AssetStatus : public UObject
687{
688
689 GENERATED_BODY()
690
691public:
692 void InitParams(ppfAssetStatus* InppfAssetStatusHandle);
693
694private:
695 FString AssetId = FString();
696 FString FilePath = FString();
697 FString FileName = FString();
698 FString DownloadStatus = FString();
699 ppfID ppfAssetId = 0;
700
701public:
702
704 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
705 FString GetAssetId();
706
708 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
709 FString GetFilePath();
710
712 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
713 FString GetFileName();
714
716 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
717 FString GetDownloadStatus();
718
719 ppfID GetppfAssetId();
720};
721
723UCLASS(BlueprintType)
724class ONLINESUBSYSTEMPICO_API UPico_AssetFileDeleteForSafety : public UObject
725{
726
727 GENERATED_BODY()
728
729public:
730 void InitParams(ppfAssetFileDeleteForSafety* InppfAssetFileDeleteForSafetyHandle);
731
732private:
733 FString AssetId = FString();
734 FString Reason = FString();
735 ppfID ppfAssetId = 0;
736
737public:
738
740 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete For Safety")
741 FString GetAssetId();
742
744 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete For Safety")
745 FString GetReason();
746
747 ppfID GetppfAssetId();
748};
PicoAssetFileInterface class.
Definition: Pico_AssetFile.h:54
bool DownloadCancelByName(FString AssetFileName, FAssetFileDownloadCancelResult InDownloadCancelByNameDelegate)
Cancels the download of an asset file by asset file name.
bool DownloadCancelById(FString AssetFileID, FAssetFileDownloadCancelResult InDownloadCancelByIDDelegate)
Cancels the download of an asset file by asset file ID.
FAssetFileDeleteForSafetyNotify AssetFileDeleteForSafetyCallback
Sets the callback to automatically delete a downloaded asset file if it is different from the origina...
Definition: Pico_AssetFile.h:87
bool DownloadById(FString AssetFileID, FAssetFileDownloadResult InDownloadByIDDelegate)
Downloads an asset file by asset file ID.
bool DeleteByName(FString AssetFileName, FAssetFileDeleteResult InDeleteByNameDelegate)
Deletes an installed asset file by asset file name. The corresponding asset file will be removed from...
bool GetAssetFileStatusById(FString AssetFileID, FGetAssetFileStatus InGetAssetFileStatusByIdDelegate)
Gets the download status of an asset file by asset file ID.
bool DeleteByID(FString AssetFileID, FAssetFileDeleteResult InDeleteByIDDelegate)
Deletes an installed asset file by asset file ID. The corresponding asset file will be removed from t...
FAssetFileDownloadUpdateNotify AssetFileDownloadUpdateCallback
Sets the callback to track the download progress of asset file. The Transferred field indicates the n...
Definition: Pico_AssetFile.h:80
bool GetNextAssetDetailsArrayPage(UPico_AssetDetailsArray *InAssetDetailsArray, FGetAssetFileList InGetNextAssetDetailsArrayPageDelegate)
Gets the next page of the asset file list.
bool DownloadByName(FString AssetFileName, FAssetFileDownloadResult InDownloadByNameDelegate)
Downloads an asset file by asset file name.
bool GetAssetFileStatusByName(FString AssetFileName, FGetAssetFileStatus InGetAssetFileStatusByNameDelegate)
Gets the download status of an asset file by asset file name.
bool GetAssetFileList(FGetAssetFileList InGetAssetFileListDelegate)
Gets the asset file list.
OnlinePicoAssetFile Blueprint Function class.
Definition: Pico_AssetFile.h:254
UPico_AssetDetailsArray class.
Definition: Pico_AssetFile.h:552
UPico_AssetDetails class.
Definition: Pico_AssetFile.h:463
UPico_AssetFileDeleteForSafety class.
Definition: Pico_AssetFile.h:725
UPico_AssetFileDeleteResult class.
Definition: Pico_AssetFile.h:430
UPico_AssetFileDownloadCancelResult class.
Definition: Pico_AssetFile.h:589
UPico_AssetFileDownloadResult class.
Definition: Pico_AssetFile.h:659
UPico_AssetFileDownloadUpdate class.
Definition: Pico_AssetFile.h:621
UPico_AssetStatus class.
Definition: Pico_AssetFile.h:687
EAssetFileDownloadCompleteStatus
The status of the file in the file download process.
Definition: OnlineSubsystemPicoNames.h:591