namespace EternalArrowBackup.Contracts.TargetStorage
{
using System;
using System.Threading;
using System.Threading.Tasks;
public interface ITargetDirectory
{
///
/// Uploads new content to the target directory, and adds new entity with DateTime.UtcNow to the list of files
///
/// File name
/// Content
/// File hash
/// Task
Task UploadNewContent(string filename, byte[] content, string hash);
///
/// Adds new entity with DateTime.UtcNow to the list of files.
///
/// Example: file "abc.txt" with content "qwe" (v1) was replaced with "rty" (v2), and then was replaced with "qwe" (v3) again.
/// The client should for v1 and v2, and then call this method (passing v1 FileInfo to it) for v3.
///
///
///
Task UpdateExistingContent(ITargetFile file);
IObservable GetAllFiles(CancellationToken ct);
}
}