2020-10-20 16:20:38 +03:00
|
|
|
using System;
|
|
|
|
using System.IO;
|
|
|
|
using System.Threading;
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
2020-10-26 17:06:29 +02:00
|
|
|
namespace MalwareMultiScan.Backends.Interfaces
|
2020-10-20 16:20:38 +03:00
|
|
|
{
|
2020-10-29 16:09:56 +02:00
|
|
|
/// <summary>
|
|
|
|
/// Scan backend.
|
|
|
|
/// </summary>
|
2020-10-20 16:20:38 +03:00
|
|
|
public interface IScanBackend
|
|
|
|
{
|
2020-10-29 16:09:56 +02:00
|
|
|
/// <summary>
|
|
|
|
/// Unique backend id.
|
|
|
|
/// </summary>
|
2020-10-20 17:10:13 +03:00
|
|
|
public string Id { get; }
|
2020-10-30 11:20:08 +02:00
|
|
|
|
2020-10-29 16:09:56 +02:00
|
|
|
/// <summary>
|
|
|
|
/// Scan file.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="path">File path.</param>
|
|
|
|
/// <param name="cancellationToken">Cancellation token.</param>
|
|
|
|
/// <returns>List of detected threats.</returns>
|
2020-10-20 16:20:38 +03:00
|
|
|
public Task<string[]> ScanAsync(string path, CancellationToken cancellationToken);
|
2020-10-30 11:20:08 +02:00
|
|
|
|
2020-10-29 16:09:56 +02:00
|
|
|
/// <summary>
|
|
|
|
/// Scan URL.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="uri">URL.</param>
|
|
|
|
/// <param name="cancellationToken">Cancellation token.</param>
|
|
|
|
/// <returns>List of detected threats.</returns>
|
2020-10-20 16:20:38 +03:00
|
|
|
public Task<string[]> ScanAsync(Uri uri, CancellationToken cancellationToken);
|
2020-10-30 11:20:08 +02:00
|
|
|
|
2020-10-29 16:09:56 +02:00
|
|
|
/// <summary>
|
|
|
|
/// Scan stream.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="stream">Stream.</param>
|
|
|
|
/// <param name="cancellationToken">Cancellation token.</param>
|
|
|
|
/// <returns>List of detected threats.</returns>
|
2020-10-20 16:20:38 +03:00
|
|
|
public Task<string[]> ScanAsync(Stream stream, CancellationToken cancellationToken);
|
|
|
|
}
|
|
|
|
}
|