using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Querying; using MediaBrowser.Model.Sync; using System.Collections.Generic; using System.Threading.Tasks; using MediaBrowser.Model.Users; 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 items. /// /// The query. /// QueryResult<SyncJobItem>. QueryResult GetJobItems(SyncJobItemQuery 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); /// /// Reports the offline action. /// /// The action. /// Task. Task ReportOfflineAction(UserAction action); /// /// Gets the ready synchronize items. /// /// The target identifier. /// List<SyncedItem>. List GetReadySyncItems(string targetId); /// /// Synchronizes the data. /// /// The request. /// Task<SyncDataResponse>. Task SyncData(SyncDataRequest request); } }