// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. namespace WixToolset.Extensibility.Services { using System; using WixToolset.Data; using WixToolset.Extensibility.Data; /// /// Interface provided to help backend extensions. /// public interface IBackendHelper { /// /// Creates a file transfer and marks it redundant if the source and destination are identical. /// /// Source for the file transfer. /// Destiation for the file transfer. /// Indicates whether to move or copy the source file. IFileTransfer CreateFileTransfer(string source, string destination, bool move, SourceLineNumber sourceLineNumbers = null); /// /// Creates a version 3 name-based UUID. /// /// The namespace UUID. /// The value. /// The generated GUID for the given namespace and value. string CreateGuid(Guid namespaceGuid, string value); /// /// Creates a resolved directory. /// /// Directory parent identifier. /// Name of directory. /// Resolved directory. IResolvedDirectory CreateResolvedDirectory(string directoryParent, string name); /// /// Creates a tracked file. /// /// Destination path for the build output. /// Type of tracked file to create. /// Optional source line numbers that requested the tracked file. ITrackedFile TrackFile(string path, TrackedFileType type, SourceLineNumber sourceLineNumbers = null); } }