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
79 FAssetFileDownloadUpdateNotify AssetFileDownloadUpdateCallback;
80
85 FAssetFileDeleteForSafetyNotify AssetFileDeleteForSafetyCallback;
86
99 bool DeleteByID(FString AssetFileID, FAssetFileDeleteResult InDeleteByIDDelegate);
100
113 bool DeleteByName(FString AssetFileName, FAssetFileDeleteResult InDeleteByNameDelegate);
114
126 bool DownloadById(FString AssetFileID, FAssetFileDownloadResult InDownloadByIDDelegate);
127
139 bool DownloadByName(FString AssetFileName, FAssetFileDownloadResult InDownloadByNameDelegate);
140
152 bool DownloadCancelById(FString AssetFileID, FAssetFileDownloadCancelResult InDownloadCancelByIDDelegate);
153
165 bool DownloadCancelByName(FString AssetFileName, FAssetFileDownloadCancelResult InDownloadCancelByNameDelegate);
166
177 bool GetAssetFileList(FGetAssetFileList InGetAssetFileListDelegate);
178
190 bool GetNextAssetDetailsArrayPage(UPico_AssetDetailsArray* InAssetDetailsArray, FGetAssetFileList InGetNextAssetDetailsArrayPageDelegate);
191
203 bool GetAssetFileStatusById(FString AssetFileID, FGetAssetFileStatus InGetAssetFileStatusByIdDelegate);
204
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
261 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
262 static bool DeleteByID(UObject* WorldContextObject, FString AssetFileID, FAssetFileDeleteResult InDeleteByIDDelegate);
263
277 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
278 static bool DeleteByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDeleteResult InDeleteByNameDelegate);
279
292 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
293 static bool DownloadById(UObject* WorldContextObject, FString AssetFileID, FAssetFileDownloadResult InDownloadByIDDelegate);
294
307 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
308 static bool DownloadByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDownloadResult InDownloadByNameDelegate);
309
322 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
323 static bool DownloadCancelById(UObject* WorldContextObject, FString AssetFileID, FAssetFileDownloadCancelResult InDownloadCancelByIDDelegate);
324
337 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
338 static bool DownloadCancelByName(UObject* WorldContextObject, FString AssetFileName, FAssetFileDownloadCancelResult InDownloadCancelByNameDelegate);
339
351 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
352 static bool GetAssetFileList(UObject* WorldContextObject, FGetAssetFileList InGetAssetFileListDelegate);
353
366 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
367 static bool GetNextAssetDetailsArrayPage(UObject* WorldContextObject, UPico_AssetDetailsArray* InAssetDetailsArray, FGetAssetFileList InGetNextAssetDetailsArrayPageDelegate);
368
381 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
382 static bool GetAssetFileStatusById(UObject* WorldContextObject, FString AssetFileID, FGetAssetFileStatus InGetAssetFileStatusByIdDelegate);
383
396 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|AssetFile")
397 static bool GetAssetFileStatusByName(UObject* WorldContextObject, FString AssetFileName, FGetAssetFileStatus InGetAssetFileStatusByNameDelegate);
398
399};
400
404UCLASS(BlueprintType)
405class ONLINESUBSYSTEMPICO_API UPico_AssetFileDeleteResult : public UObject
406{
407
408 GENERATED_BODY()
409
410public:
411 void InitParams(ppfAssetFileDeleteResult* InppfAssetFileDeleteResultHandle);
412
413private:
414 FString AssetId = FString();
415 FString FilePath = FString();
416 bool bIsSuccessed = false;
417 ppfID ppfAssetId = 0;
418
419public:
420
421 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
422 FString GetAssetId();
423
424 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
425 FString GetFilePath();
426
427 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete Result")
428 bool GetSuccess();
429
430 ppfID GetppfAssetId();
431};
432
433
434UCLASS(BlueprintType)
435class ONLINESUBSYSTEMPICO_API UPico_AssetDetails : public UObject
436{
437
438 GENERATED_BODY()
439
440public:
441 void InitParams(ppfAssetDetails* InppfAssetDetailsHandle);
442
443private:
444 FString AssetId = FString();
445 FString AssetType = FString();
446 FString DownloadStatus = FString();
447 FString FilePath = FString();
448 FString IapStatus = FString();
449 FString Metadata = FString();
450 FString Filename = FString();
451 int32 Version = -1;
452 FString IapSku = FString();
453 FString IapName = FString();
454 FString IapPrice = FString();
455 FString IapCurrency = FString();
456 FString IapDescription = FString();
457 FString IapIconUrl = FString();
458 ppfID ppfAssetId = 0;
459public:
460
461 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
462 FString GetAssetId();
463
464 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
465 FString GetFilePath();
466
467 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
468 FString GetAssetType();
469
470 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
471 FString GetDownloadStatus();
472
473 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
474 FString GetIapStatus();
475
476 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
477 FString GetMetadata();
478
479 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
480 FString GetFilename();
481
482 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
483 int32 GetVersion();
484
485 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
486 FString GetIapSku();
487
488 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
489 FString GetIapName();
490
491 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
492 FString GetIapPrice();
493
494 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
495 FString GetIapCurrency();
496
497 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
498 FString GetIapDescription();
499
500 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details")
501 FString GetIapIconUrl();
502
503 ppfID GetppfAssetId();
504};
505
506UCLASS(BlueprintType)
507class ONLINESUBSYSTEMPICO_API UPico_AssetDetailsArray : public UObject
508{
509
510 GENERATED_BODY()
511
512public:
513 void InitParams(ppfAssetDetailsArray* InppfAssetDetailsArrayHandle);
514
515private:
516 UPROPERTY()
517 TArray<UPico_AssetDetails*> AssetDetailsArray;
518
519 int32 Size = 0;
520 bool bHasNextPage = false;
521 FString NextPageParam = FString();
522
523
524public:
525 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
526 UPico_AssetDetails* GetElement(int32 Index);
527
528 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
529 int32 GetSize();
530
531 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
532 bool GetHasNextPage();
533
534 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Details Array")
535 FString GetNextPageParam();
536};
537
538UCLASS(BlueprintType)
539class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadCancelResult : public UObject
540{
541
542 GENERATED_BODY()
543
544public:
545 void InitParams(ppfAssetFileDownloadCancelResult* InppfAssetFileDownloadCancelResultHandle);
546
547private:
548 FString AssetId = FString();
549 FString FilePath = FString();
550 bool bIsSuccessed = false;
551 ppfID ppfAssetId = 0;
552
553public:
554 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
555 FString GetAssetId();
556
557 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
558 FString GetFilePath();
559
560 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Cancel Result")
561 bool GetSuccess();
562
563 ppfID GetppfAssetId();
564};
565
566UCLASS(BlueprintType)
567class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadUpdate : public UObject
568{
569
570 GENERATED_BODY()
571
572public:
573 void InitParams(ppfAssetFileDownloadUpdate* InppfAssetFileDownloadUpdateHandle);
574
575private:
576 FString AssetId = FString();
577 int64 BytesTotal = 0;
578 int64 BytesTransferred = 0;
580 ppfID ppfAssetId = 0;
581
582public:
583
584 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
585 FString GetAssetId();
586
587 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
588 int64 GetBytesTotal();
589
590 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
591 int64 GetBytesTransferred();
592
593 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Update")
594 EAssetFileDownloadCompleteStatus GetCompleteStatus();
595
596 ppfID GetppfAssetId();
597};
598
599UCLASS(BlueprintType)
600class ONLINESUBSYSTEMPICO_API UPico_AssetFileDownloadResult : public UObject
601{
602
603 GENERATED_BODY()
604
605public:
606 void InitParams(ppfAssetFileDownloadResult* InppfAssetFileDownloadResultHandle);
607
608private:
609 FString AssetId = FString();
610 FString FilePath = FString();
611 ppfID ppfAssetId = 0;
612
613public:
614
615 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Result")
616 FString GetAssetId();
617
618 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Download Result")
619 FString GetFilePath();
620
621 ppfID GetppfAssetId();
622};
623
624UCLASS(BlueprintType)
625class ONLINESUBSYSTEMPICO_API UPico_AssetStatus : public UObject
626{
627
628 GENERATED_BODY()
629
630public:
631 void InitParams(ppfAssetStatus* InppfAssetStatusHandle);
632
633private:
634 FString AssetId = FString();
635 FString FilePath = FString();
636 FString FileName = FString();
637 FString DownloadStatus = FString();
638 ppfID ppfAssetId = 0;
639
640public:
641
642 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
643 FString GetAssetId();
644
645 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
646 FString GetFilePath();
647
648 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
649 FString GetFileName();
650
651 // One of 'installed', 'available', or 'in-progress'
652 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Asset Status")
653 FString GetDownloadStatus();
654
655 ppfID GetppfAssetId();
656};
657
658UCLASS(BlueprintType)
659class ONLINESUBSYSTEMPICO_API UPico_AssetFileDeleteForSafety : public UObject
660{
661
662 GENERATED_BODY()
663
664public:
665 void InitParams(ppfAssetFileDeleteForSafety* InppfAssetFileDeleteForSafetyHandle);
666
667private:
668 FString AssetId = FString();
669 FString Reason = FString();
670 ppfID ppfAssetId = 0;
671
672public:
673
674 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete For Safety")
675 FString GetAssetId();
676
677 UFUNCTION(BlueprintPure, Category = "Pico Platform|AssetFile|Delete For Safety")
678 FString GetReason();
679
680 ppfID GetppfAssetId();
681};
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:85
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:79
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
EAssetFileDownloadCompleteStatus
The status of the file in the file download process.
Definition: OnlineSubsystemPicoNames.h:591