using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Sync;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Sync
{
public interface ISyncManager
{
///
/// Creates the job.
///
/// The request.
/// Task.
Task CreateJob(SyncJobRequest request);
///
/// Gets the jobs.
///
/// QueryResult<SyncJob>.
QueryResult GetJobs(SyncJobQuery query);
///
/// Gets the job.
///
/// The identifier.
/// SyncJob.
SyncJob GetJob(string id);
///
/// Cancels the job.
///
/// The identifier.
/// Task.
Task CancelJob(string id);
///
/// Adds the parts.
///
void AddParts(IEnumerable providers);
///
/// Gets the synchronize targets.
///
IEnumerable GetSyncTargets(string userId);
///
/// Supportses the synchronize.
///
/// The item.
/// true if XXXX, false otherwise.
bool SupportsSync(BaseItem item);
///
/// Gets the device profile.
///
/// The target identifier.
/// DeviceProfile.
DeviceProfile GetDeviceProfile(string targetId);
///
/// Reports the synchronize job item transferred.
///
/// The identifier.
/// Task.
Task ReportSyncJobItemTransferred(string id);
///
/// Gets the job item.
///
/// The identifier.
/// SyncJobItem.
SyncJobItem GetJobItem(string id);
}
}