using System; using System.Collections.Generic; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.ThingiProvider; namespace NzbDrone.Core.Download { public abstract class DownloadClientBase : IDownloadClient where TSettings : IProviderConfig, new() { public Type ConfigContract { get { return typeof(TSettings); } } public IEnumerable DefaultDefinitions { get { return new List(); } } public ProviderDefinition Definition { get; set; } protected TSettings Settings { get { return (TSettings)Definition.Settings; } } public override string ToString() { return GetType().Name; } public abstract string DownloadNzb(RemoteEpisode remoteEpisode); public abstract IEnumerable GetQueue(); public abstract IEnumerable GetHistory(int start = 0, int limit = 10); public abstract void RemoveFromQueue(string id); public abstract void RemoveFromHistory(string id); public abstract void RetryDownload(string id); public abstract void Test(); } }