RealtimeStyleTransferRuntime/Source/LyraGame/Replays/AsyncAction_QueryReplays.h

55 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Delegates/Delegate.h"
#include "Kismet/BlueprintAsyncActionBase.h"
#include "Templates/SharedPointer.h"
#include "UObject/UObjectGlobals.h"
#include "UObject/WeakObjectPtrTemplates.h"
#include "AsyncAction_QueryReplays.generated.h"
class APlayerController;
class INetworkReplayStreamer;
class ULyraReplayList;
class UObject;
struct FEnumerateStreamsResult;
struct FFrame;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FQueryReplayAsyncDelegate, ULyraReplayList*, Results);
/**
* Watches for team changes in the specified player controller
*/
UCLASS()
class UAsyncAction_QueryReplays : public UBlueprintAsyncActionBase
{
GENERATED_BODY()
public:
UAsyncAction_QueryReplays(const FObjectInitializer& ObjectInitializer);
// Watches for team changes in the specified player controller
UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true"))
static UAsyncAction_QueryReplays* QueryReplays(APlayerController* PlayerController);
virtual void Activate() override;
public:
// Called when the replay query completes
UPROPERTY(BlueprintAssignable)
FQueryReplayAsyncDelegate QueryComplete;
private:
void OnEnumerateStreamsComplete(const FEnumerateStreamsResult& Result);
private:
UPROPERTY()
TObjectPtr<ULyraReplayList> ResultList;
TWeakObjectPtr<APlayerController> PlayerController;
TSharedPtr<INetworkReplayStreamer> ReplayStreamer;
};