aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers/ItemIdentities.cs
blob: 8d24f6c1fb0e1458596f2e46530d9b075f112bfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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; }
    }
}