// Copyright Epic Games, Inc. All Rights Reserved. using System; using System.Collections.Generic; using Microsoft.Extensions.Logging; namespace EpicGames.Perforce { /// /// Base interface for Perforce clients /// public interface IPerforceConnection : IDisposable { /// /// Connection settings /// IPerforceSettings Settings { get; } /// /// Logger for this connection /// ILogger Logger { get; } /// /// Queues a Perforce command to be executed /// /// The command name /// Arguments for the command /// File arguments (may be put into a response file) /// Input data to be passed to the command /// Response for login prompts /// Whether to intercept file I/O and return it in the reponse stream. Only supported by the native client. /// Response object IPerforceOutput Command(string command, IReadOnlyList arguments, IReadOnlyList? fileArguments, byte[]? inputData, string? promptResponse, bool interceptIo); /// /// Creates a record from a set of input fields /// /// Fields for the record /// Serialized record data PerforceRecord CreateRecord(List> fields); } }