using System.Collections.Generic;
using MediaBrowser.Controller.Entities;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Persistence
{
///
/// Provides an interface to implement a UserData repository
///
public interface IUserDataRepository : IRepository
{
///
/// Opens the connection to the repository
///
/// Task.
Task Initialize();
///
/// Saves the user data.
///
/// The user id.
/// The key.
/// The user data.
/// The cancellation token.
/// Task.
Task SaveUserData(Guid userId, string key, UserItemData userData, CancellationToken cancellationToken);
///
/// Gets the user data.
///
/// The user id.
/// The key.
/// Task{UserItemData}.
UserItemData GetUserData(Guid userId, string key);
///
/// Return all user data associated with the given user
///
///
///
IEnumerable GetAllUserData(Guid userId);
///
/// Save all user data associated with the given user
///
///
///
///
///
Task SaveAllUserData(Guid userId, IEnumerable userData, CancellationToken cancellationToken);
}
}