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);
}
}