using MediaBrowser.Model.Sync; using System.Collections.Generic; using System.Threading.Tasks; namespace MediaBrowser.Controller.Sync { public interface ISyncDataProvider { /// <summary> /// Gets the local items. /// </summary> /// <param name="target">The target.</param> /// <param name="serverId">The server identifier.</param> /// <returns>Task<List<LocalItem>>.</returns> Task<List<LocalItem>> GetLocalItems(SyncTarget target, string serverId); /// <summary> /// Adds the or update. /// </summary> /// <param name="target">The target.</param> /// <param name="item">The item.</param> /// <returns>Task.</returns> Task AddOrUpdate(SyncTarget target, LocalItem item); /// <summary> /// Deletes the specified identifier. /// </summary> /// <param name="target">The target.</param> /// <param name="id">The identifier.</param> /// <returns>Task.</returns> Task Delete(SyncTarget target, string id); /// <summary> /// Gets the specified identifier. /// </summary> /// <param name="target">The target.</param> /// <param name="id">The identifier.</param> /// <returns>Task<LocalItem>.</returns> Task<LocalItem> Get(SyncTarget target, string id); /// <summary> /// Gets the cached item. /// </summary> /// <param name="target">The target.</param> /// <param name="serverId">The server identifier.</param> /// <param name="itemId">The item identifier.</param> /// <returns>Task<LocalItem>.</returns> Task<List<LocalItem>> GetItems(SyncTarget target, string serverId, string itemId); /// <summary> /// Gets the cached items by synchronize job item identifier. /// </summary> /// <param name="target">The target.</param> /// <param name="serverId">The server identifier.</param> /// <param name="syncJobItemId">The synchronize job item identifier.</param> /// <returns>Task<List<LocalItem>>.</returns> Task<List<LocalItem>> GetItemsBySyncJobItemId(SyncTarget target, string serverId, string syncJobItemId); } }