You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace MediaBrowser.Controller.Providers
|
|
{
|
|
public interface IItemIdentity
|
|
{
|
|
string Type { get; }
|
|
}
|
|
|
|
public interface IHasIdentities<out TIdentity>
|
|
where TIdentity : IItemIdentity
|
|
{
|
|
IEnumerable<TIdentity> Identities { get; }
|
|
|
|
Task FindIdentities(IProviderManager providerManager, CancellationToken cancellationToken);
|
|
}
|
|
|
|
public interface IItemIdentityProvider : IHasOrder { }
|
|
|
|
public interface IItemIdentityProvider<in TLookupInfo, TIdentity> : IItemIdentityProvider
|
|
where TLookupInfo : ItemLookupInfo
|
|
where TIdentity : IItemIdentity
|
|
{
|
|
Task<TIdentity> FindIdentity(TLookupInfo info);
|
|
}
|
|
|
|
public interface IItemIdentityConverter : IHasOrder { }
|
|
|
|
public interface IItemIdentityConverter<TIdentity> : IItemIdentityConverter
|
|
where TIdentity : IItemIdentity
|
|
{
|
|
Task<TIdentity> Convert(TIdentity identity);
|
|
|
|
string SourceType { get; }
|
|
|
|
string ResultType { get; }
|
|
}
|
|
} |