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);
}
}