// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved. #include "ISourceControlProvider.h" #include "SourceControlHelpers.h" #include "SourceControlOperations.h" #define LOCTEXT_NAMESPACE "ISourceControlProvider" ECommandResult::Type ISourceControlProvider::Login(const FString& InPassword, EConcurrency::Type InConcurrency, const FSourceControlOperationComplete& InOperationCompleteDelegate) { TSharedRef ConnectOperation = ISourceControlOperation::Create(); ConnectOperation->SetPassword(InPassword); return Execute(ConnectOperation, InConcurrency, InOperationCompleteDelegate); } ECommandResult::Type ISourceControlProvider::GetState(const TArray& InPackages, TArray< TSharedRef >& OutState, EStateCacheUsage::Type InStateCacheUsage) { TArray Files = SourceControlHelpers::PackageFilenames(InPackages); return GetState(Files, OutState, InStateCacheUsage); } TSharedPtr ISourceControlProvider::GetState(const UPackage* InPackage, EStateCacheUsage::Type InStateCacheUsage) { return GetState(SourceControlHelpers::PackageFilename(InPackage), InStateCacheUsage); } TSharedPtr ISourceControlProvider::GetState(const FString& InFile, EStateCacheUsage::Type InStateCacheUsage) { TArray Files; TArray< TSharedRef > States; Files.Add(InFile); if (GetState(Files, States, InStateCacheUsage) == ECommandResult::Succeeded) { TSharedRef State = States[0]; return State; } return NULL; } ECommandResult::Type ISourceControlProvider::Execute(const TSharedRef& InOperation, const EConcurrency::Type InConcurrency, const FSourceControlOperationComplete& InOperationCompleteDelegate) { return Execute(InOperation, TArray(), InConcurrency, InOperationCompleteDelegate); } ECommandResult::Type ISourceControlProvider::Execute(const TSharedRef& InOperation, const UPackage* InPackage, const EConcurrency::Type InConcurrency, const FSourceControlOperationComplete& InOperationCompleteDelegate) { return Execute(InOperation, SourceControlHelpers::PackageFilename(InPackage), InConcurrency, InOperationCompleteDelegate); } ECommandResult::Type ISourceControlProvider::Execute(const TSharedRef& InOperation, const FString& InFile, const EConcurrency::Type InConcurrency, const FSourceControlOperationComplete& InOperationCompleteDelegate) { TArray FileArray; FileArray.Add(InFile); return Execute(InOperation, FileArray, InConcurrency, InOperationCompleteDelegate); } ECommandResult::Type ISourceControlProvider::Execute(const TSharedRef& InOperation, const TArray& InPackages, const EConcurrency::Type InConcurrency, const FSourceControlOperationComplete& InOperationCompleteDelegate) { TArray FileArray = SourceControlHelpers::PackageFilenames(InPackages); return Execute(InOperation, FileArray, InConcurrency, InOperationCompleteDelegate); } TSharedPtr ISourceControlProvider::GetLabel(const FString& InLabelName) const { TArray< TSharedRef > Labels = GetLabels(InLabelName); if (Labels.Num() > 0) { return Labels[0]; } return NULL; } #undef LOCTEXT_NAMESPACE