PICO Unreal Platform SDK
Pico_AssetFile.h
1// Copyright® 2015-2023 PICO Technology Co., Ltd. All rights reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UObject/NoExportTypes.h"
7#include "PPF_Platform.h"
8#include "OnlineSubsystemPicoNames.h"
9#include "OnlineSubsystemPico.h"
10#include "Pico_AssetFile.generated.h"
11
13
17DECLARE_LOG_CATEGORY_EXTERN(PicoAssetFile, Log, All);
18
19DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAssetFileDeleteResult, bool, bIsError, const FString&, ErrorMessage, UPico_AssetFileDeleteResult*, DeleteResult);
20DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAssetFileDownloadResult, bool, bIsError, const FString&, ErrorMessage, UPico_AssetFileDownloadResult*, DownloadResult);
21DECLARE_DYNAMIC_DELEGATE_ThreeParams(FAssetFileDownloadCancelResult, bool, bIsError, const FString&, ErrorMessage, UPico_AssetFileDownloadCancelResult*, DownloadCancelResult);
22DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetAssetFileStatus, bool, bIsError, const FString&, ErrorMessage, UPico_AssetStatus*, AssetFileStatus);
23DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetAssetFileList, bool, bIsError, const FString&, ErrorMessage, UPico_AssetDetailsArray*, AssetDetailsArray);
24
25DECLARE_MULTICAST_DELEGATE_OneParam(FAssetFileDownloadUpdateNotify, UPico_AssetFileDownloadUpdate* /*AssetFileDownloadUpdateObj*/);
26DECLARE_MULTICAST_DELEGATE_OneParam(FAssetFileDeleteForSafetyNotify, UPico_AssetFileDeleteForSafety* /*AssetFileDeleteForSafetyObj*/);
27
28
29
41class ONLINESUBSYSTEMPICO_API FPicoAssetFileInterface
42{
43private:
44
45 FOnlineSubsystemPico& PicoSubsystem;
46
47public:
48 FPicoAssetFileInterface(FOnlineSubsystemPico& InSubsystem);
50
51 FAssetFileDeleteResult DeleteByIDDelegate;
52 FAssetFileDeleteResult DeleteByNameDelegate;
53 FAssetFileDownloadResult DownloadByIdDelegate;
54 FAssetFileDownloadResult DownloadByNameDelegate;
55 FAssetFileDownloadCancelResult DownloadCancelByIdDelegate;
56 FAssetFileDownloadCancelResult DownloadCancelNameIdDelegate;
57 FGetAssetFileStatus GetAssetFileStatusByIdDelegate;
58 FGetAssetFileStatus GetAssetFileStatusByNameDelegate;
59 FGetAssetFileList GetAssetFileListDelegate;
60 FGetAssetFileList GetNextAssetDetailsArrayPageDelegate;
61
68 FAssetFileDownloadUpdateNotify AssetFileDownloadUpdateCallback;
69
75 FAssetFileDeleteForSafetyNotify AssetFileDeleteForSafetyCallback;
76
90 bool DeleteByID(FString AssetFileID, FAssetFileDeleteResult InDeleteByIDDelegate);
91
105 bool DeleteByName(FString AssetFileName, FAssetFileDeleteResult InDeleteByNameDelegate);
106
119 bool DownloadById(FString AssetFileID, FAssetFileDownloadResult InDownloadByIDDelegate);
120
133 bool DownloadByName(FString AssetFileName, FAssetFileDownloadResult InDownloadByNameDelegate);
134
147 bool DownloadCancelById(FString AssetFileID, FAssetFileDownloadCancelResult InDownloadCancelByIDDelegate);
148
161 bool DownloadCancelByName(FString AssetFileName, FAssetFileDownloadCancelResult InDownloadCancelByNameDelegate);
162
174 bool GetAssetFileList(FGetAssetFileList InGetAssetFileListDelegate);
175
188 bool GetNextAssetDetailsArrayPage(UPico_AssetDetailsArray* InAssetDetailsArray, FGetAssetFileList InGetNextAssetDetailsArrayPageDelegate);
189
202 bool GetAssetFileStatusById(FString AssetFileID, FGetAssetFileStatus InGetAssetFileStatusByIdDelegate);
203
216 bool GetAssetFileStatusByName(FString AssetFileName, FGetAssetFileStatus InGetAssetFileStatusByNameDelegate);
217
218 FDelegateHandle AssetFileDownloadUpdateHandle;
219 void OnAssetFileDownloadUpdate(ppfMessageHandle Message, bool bIsError);
220
221 FDelegateHandle AssetFileDeleteForSafetyHandle;
222 void OnAssetFileDeleteForSafety(ppfMessageHandle Message, bool bIsError);
223};
224
225
240UCLASS()
241class ONLINESUBSYSTEMPICO_API UOnlinePicoAssetFileFunction : public UBlueprintFunctionLibrary
242{
243 GENERATED_BODY()
244
245public:
246
247
262 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
263 static bool DeleteByID(UObject* WorldContextObject, FString AssetFileID, FAssetFileDeleteResult InDeleteByIDDelegate);
264
279 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
280 static bool DeleteByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDeleteResult InDeleteByNameDelegate);
281
295 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
296 static bool DownloadById(UObject* WorldContextObject, FString AssetFileID, FAssetFileDownloadResult InDownloadByIDDelegate);
297
311 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
312 static bool DownloadByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDownloadResult InDownloadByNameDelegate);
313
327 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
328 static bool DownloadCancelById(UObject* WorldContextObject, FString AssetFileID, FAssetFileDownloadCancelResult InDownloadCancelByIDDelegate);
329
343 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
344 static bool DownloadCancelByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDownloadCancelResult InDownloadCancelByNameDelegate);
345
358 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
359 static bool GetAssetFileList(UObject* WorldContextObject, FGetAssetFileList InGetAssetFileListDelegate);
360
374 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
375 static bool GetNextAssetDetailsArrayPage(UObject* WorldContextObject, UPico_AssetDetailsArray* InAssetDetailsArray, FGetAssetFileList InGetNextAssetDetailsArrayPageDelegate);
376
390 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
391 static bool GetAssetFileStatusById(UObject* WorldContextObject, FString AssetFileID, FGetAssetFileStatus InGetAssetFileStatusByIdDelegate);
392
406 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
407 static bool GetAssetFileStatusByName(UObject* WorldContextObject, FString AssetFileName, FGetAssetFileStatus InGetAssetFileStatusByNameDelegate);
408
409};
410
416UCLASS(BlueprintType)
417class ONLINESUBSYSTEMPICO_API UPico_AssetFileDeleteResult : public UObject
418{
419
420 GENERATED_BODY()
421
422public:
423 void InitParams(ppfAssetFileDeleteResult* InppfAssetFileDeleteResultHandle);
424
425private:
426 FString AssetId = FString();
427 FString FilePath = FString();
428 bool bIsSuccessed = false;
429 ppfID ppfAssetId = 0;
430
431public:
432
434 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
435 FString GetAssetId();
436
438 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
439 FString GetFilePath();
440
442 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
443 bool GetSuccess();
444
445 ppfID GetppfAssetId();
446};
447
449UCLASS(BlueprintType)
450class ONLINESUBSYSTEMPICO_API UPico_AssetDetails : public UObject
451{
452
453 GENERATED_BODY()
454
455public:
456 void InitParams(ppfAssetDetails* InppfAssetDetailsHandle);
457
458private:
459 FString AssetId = FString();
460 FString AssetType = FString();
461 FString DownloadStatus = FString();
462 FString FilePath = FString();
463 FString IapStatus = FString();
464 FString Metadata = FString();
465 FString Filename = FString();
466 int32 Version = -1;
467 FString IapSku = FString();
468 FString IapName = FString();
469 FString IapPrice = FString();
470 FString IapCurrency = FString();
471 FString IapDescription = FString();
472 FString IapIconUrl = FString();
473 ppfID ppfAssetId = 0;
474public:
475
477 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
478 FString GetAssetId();
479
481 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
482 FString GetFilePath();
483
487 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
488 FString GetAssetType();
489
491 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
492 FString GetDownloadStatus();
493
495 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
496 FString GetIapStatus();
497
499 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
500 FString GetMetadata();
501
503 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
504 FString GetFilename();
505
507 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
508 int32 GetVersion();
509
511 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
512 FString GetIapSku();
513
515 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
516 FString GetIapName();
517
519 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
520 FString GetIapPrice();
521
523 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
524 FString GetIapCurrency();
525
527 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
528 FString GetIapDescription();
529
531 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
532 FString GetIapIconUrl();
533
534 ppfID GetppfAssetId();
535};
536
538UCLASS(BlueprintType)
539class ONLINESUBSYSTEMPICO_API UPico_AssetDetailsArray : public UObject
540{
541
542 GENERATED_BODY()
543
544public:
545 void InitParams(ppfAssetDetailsArray* InppfAssetDetailsArrayHandle);
546
547private:
548 UPROPERTY()
549 TArray<UPico_AssetDetails*> AssetDetailsArray;
550
551 int32 Size = 0;
552 bool bHasNextPage = false;
553 FString NextPageParam = FString();
554
555
556public:
557
559 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
560 UPico_AssetDetails* GetElement(int32 Index);
561
563 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
564 int32 GetSize();
565
567 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
568 bool GetHasNextPage();
569
570 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
571 FString GetNextPageParam();
572};
573
575UCLASS(BlueprintType)
576class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadCancelResult : public UObject
577{
578
579 GENERATED_BODY()
580
581public:
582 void InitParams(ppfAssetFileDownloadCancelResult* InppfAssetFileDownloadCancelResultHandle);
583
584private:
585 FString AssetId = FString();
586 FString FilePath = FString();
587 bool bIsSuccessed = false;
588 ppfID ppfAssetId = 0;
589
590public:
592 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
593 FString GetAssetId();
594
596 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
597 FString GetFilePath();
598
600 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
601 bool GetSuccess();
602
603 ppfID GetppfAssetId();
604};
605
607UCLASS(BlueprintType)
608class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadUpdate : public UObject
609{
610
611 GENERATED_BODY()
612
613public:
614 void InitParams(ppfAssetFileDownloadUpdate* InppfAssetFileDownloadUpdateHandle);
615
616private:
617 FString AssetId = FString();
618 int64 BytesTotal = 0;
619 int64 BytesTransferred = 0;
621 ppfID ppfAssetId = 0;
622
623public:
624
626 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
627 FString GetAssetId();
628
630 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
631 int64 GetBytesTotal();
632
634 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
635 int64 GetBytesTransferred();
636
638 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
640
641 ppfID GetppfAssetId();
642};
643
645UCLASS(BlueprintType)
646class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadResult : public UObject
647{
648
649 GENERATED_BODY()
650
651public:
652 void InitParams(ppfAssetFileDownloadResult* InppfAssetFileDownloadResultHandle);
653
654private:
655 FString AssetId = FString();
656 FString FilePath = FString();
657 ppfID ppfAssetId = 0;
658
659public:
660
662 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Result")
663 FString GetAssetId();
664
666 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Result")
667 FString GetFilePath();
668
669 ppfID GetppfAssetId();
670};
671
673UCLASS(BlueprintType)
674class ONLINESUBSYSTEMPICO_API UPico_AssetStatus : public UObject
675{
676
677 GENERATED_BODY()
678
679public:
680 void InitParams(ppfAssetStatus* InppfAssetStatusHandle);
681
682private:
683 FString AssetId = FString();
684 FString FilePath = FString();
685 FString FileName = FString();
686 FString DownloadStatus = FString();
687 ppfID ppfAssetId = 0;
688
689public:
690
692 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
693 FString GetAssetId();
694
696 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
697 FString GetFilePath();
698
700 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
701 FString GetFileName();
702
704 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
705 FString GetDownloadStatus();
706
707 ppfID GetppfAssetId();
708};
709
711UCLASS(BlueprintType)
712class ONLINESUBSYSTEMPICO_API UPico_AssetFileDeleteForSafety : public UObject
713{
714
715 GENERATED_BODY()
716
717public:
718 void InitParams(ppfAssetFileDeleteForSafety* InppfAssetFileDeleteForSafetyHandle);
719
720private:
721 FString AssetId = FString();
722 FString Reason = FString();
723 ppfID ppfAssetId = 0;
724
725public:
726
728 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete For Safety")
729 FString GetAssetId();
730
732 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete For Safety")
733 FString GetReason();
734
735 ppfID GetppfAssetId();
736};
PicoAssetFileInterface class.
Definition: Pico_AssetFile.h:42
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:75
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:68
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:242
UPico_AssetDetailsArray class.
Definition: Pico_AssetFile.h:540
UPico_AssetDetails class.
Definition: Pico_AssetFile.h:451
UPico_AssetFileDeleteForSafety class.
Definition: Pico_AssetFile.h:713
UPico_AssetFileDeleteResult class.
Definition: Pico_AssetFile.h:418
UPico_AssetFileDownloadCancelResult class.
Definition: Pico_AssetFile.h:577
UPico_AssetFileDownloadResult class.
Definition: Pico_AssetFile.h:647
UPico_AssetFileDownloadUpdate class.
Definition: Pico_AssetFile.h:609
UPico_AssetStatus class.
Definition: Pico_AssetFile.h:675
EAssetFileDownloadCompleteStatus
The status of the file in the file download process.
Definition: OnlineSubsystemPicoNames.h:579