using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace mdfinder.hashprovider { public interface IHashProvider { /// Gets the name of the hash provider. /// The name of the hash provider. string Name { get; } /// Gets the description of the hash provider. /// The description. string Description { get; } /// Gets a value indicating if this hash provider is valid to use. /// The value indicating if the hash provider is valid. /// This value can be used by hash providers to limit use of the provider. This can be used to create paid hash providers. bool IsValid { get; } /// Gets or sets the priority this provider has when multiple providers support the same extension. /// The priority of the hash provider. int Priority { get; set; } /// Gets the file extensions that this hash provider can work with. /// The file extensions the hash provider works with. IEnumerable FileExtensions { get; } /// Gets a hash from a file. /// The file to hash. /// The hash. string GetHash(FileInfo file); } }