Files
UnrealEngineUWP/Engine/Source/Developer/SourceControl/Public/ISourceControlOperation.h
ryan durand 471d972e62 Updating copyright for Engine Developer.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00

82 lines
2.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
/** Accumulated error and info messages for a source control operation. */
struct FSourceControlResultInfo
{
/** Append any messages from another FSourceControlResultInfo, ensuring to keep any already accumulated info. */
void Append(const FSourceControlResultInfo& InResultInfo)
{
InfoMessages.Append(InResultInfo.InfoMessages);
ErrorMessages.Append(InResultInfo.ErrorMessages);
}
/** Info and/or warning message storage */
TArray<FText> InfoMessages;
/** Potential error message storage */
TArray<FText> ErrorMessages;
};
class ISourceControlOperation : public TSharedFromThis<ISourceControlOperation, ESPMode::ThreadSafe>
{
public:
/**
* Virtual destructor
*/
virtual ~ISourceControlOperation() {}
/** Get the name of this operation, used as a unique identifier */
virtual FName GetName() const = 0;
/** Get the string to display when this operation is in progress */
virtual FText GetInProgressString() const
{
return FText();
}
/** Retrieve any info or error messages that may have accumulated during the operation. */
virtual const FSourceControlResultInfo& GetResultInfo() const
{
// Implemented in subclasses
static const FSourceControlResultInfo ResultInfo = FSourceControlResultInfo();
return ResultInfo;
}
/** Add info/warning message. */
virtual void AddInfoMessge(const FText& InInfo)
{
// Implemented in subclasses
}
/** Add error message. */
virtual void AddErrorMessge(const FText& InError)
{
// Implemented in subclasses
}
/**
* Append any info or error messages that may have accumulated during the operation prior
* to returning a result, ensuring to keep any already accumulated info.
*/
virtual void AppendResultInfo(const FSourceControlResultInfo& InResultInfo)
{
// Implemented in subclasses
}
/** Factory method for easier operation creation */
template<typename Type>
static TSharedRef<Type, ESPMode::ThreadSafe> Create()
{
return MakeShareable( new Type() );
}
};
typedef TSharedRef<class ISourceControlOperation, ESPMode::ThreadSafe> FSourceControlOperationRef;