using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace MalwareMultiScan.Backends.Interfaces
{
///
/// Scan backend.
///
public interface IScanBackend
{
///
/// Unique backend id.
///
public string Id { get; }
///
/// Scan file.
///
/// File path.
/// Cancellation token.
/// List of detected threats.
public Task ScanAsync(string path, CancellationToken cancellationToken);
///
/// Scan URL.
///
/// URL.
/// Cancellation token.
/// List of detected threats.
public Task ScanAsync(Uri uri, CancellationToken cancellationToken);
///
/// Scan stream.
///
/// Stream.
/// Cancellation token.
/// List of detected threats.
public Task ScanAsync(Stream stream, CancellationToken cancellationToken);
}
}