Files
Jerome Delattre 17bd93a393 AutomationDriver - use share pointer to store FAutomatedApplication
Fix crash related to GC
+ harden reset with some Latent commands after they timed out

#preflight 6422f54b803cb466e851e734
#jira UE-181463
#rb Chris.Constantinescu

[CL 24870636 by Jerome Delattre in ue5-main branch]
2023-03-31 09:54:54 -04:00

45 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GenericPlatform/GenericApplication.h"
#include "GenericPlatform/ICursor.h"
class GenericApplication;
class FGenericApplicationMessageHandler;
class IPassThroughMessageHandlerFactory;
class FAutomatedApplication
: public GenericApplication
{
public:
TSharedRef<FGenericApplicationMessageHandler> GetRealMessageHandler() { return RealMessageHandler.ToSharedRef(); }
virtual void AllowPlatformMessageHandling() = 0;
virtual void DisablePlatformMessageHandling() = 0;
virtual bool IsHandlingMessages() = 0;
virtual void SetFakeModifierKeys(FModifierKeysState Value) = 0;
FAutomatedApplication(
const TSharedPtr<ICursor>& InCursor)
: GenericApplication(InCursor)
{ }
protected:
TSharedPtr<FGenericApplicationMessageHandler> RealMessageHandler;
private:
};
class FAutomatedApplicationFactory
{
public:
static TSharedRef<FAutomatedApplication> Create(
const TSharedRef<GenericApplication>& PlatformApplication,
const TSharedRef<IPassThroughMessageHandlerFactory>& PassThroughMessageHandlerFactory);
};