mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-23 22:25:09 -04:00
New: Implemented Torrent Download Clients: uTorrent, Transmission and Deluge. And several public and private Torrent Indexers.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace MonoTorrent
|
||||
{
|
||||
public static class HashAlgoFactory
|
||||
{
|
||||
static Dictionary<Type, Type> algos = new Dictionary<Type, Type>();
|
||||
|
||||
static HashAlgoFactory()
|
||||
{
|
||||
Register<MD5, MD5CryptoServiceProvider>();
|
||||
Register<SHA1, SHA1CryptoServiceProvider>();
|
||||
}
|
||||
|
||||
public static void Register<T, U>()
|
||||
where T : HashAlgorithm
|
||||
where U : HashAlgorithm
|
||||
{
|
||||
Register(typeof(T), typeof(U));
|
||||
}
|
||||
|
||||
public static void Register(Type baseType, Type specificType)
|
||||
{
|
||||
Check.BaseType(baseType);
|
||||
Check.SpecificType(specificType);
|
||||
|
||||
lock (algos)
|
||||
algos[baseType] = specificType;
|
||||
}
|
||||
|
||||
public static T Create<T>()
|
||||
where T : HashAlgorithm
|
||||
{
|
||||
if (algos.ContainsKey(typeof(T)))
|
||||
return (T)Activator.CreateInstance(algos[typeof(T)]);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user