Add ApiContainer prop to IExternalApiProvider

This commit is contained in:
YoshiRulz 2020-12-03 18:46:07 +10:00
parent 29bceb272f
commit 608d7dcff8
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
2 changed files with 7 additions and 5 deletions

View File

@ -8,14 +8,14 @@ namespace BizHawk.Client.Common
{
public class BasicApiProvider : IExternalApiProvider
{
private readonly IReadOnlyDictionary<Type, IExternalApi> _libs;
public IReadOnlyCollection<Type> AvailableApis => Container.Libraries.Keys.ToList();
public IReadOnlyCollection<Type> AvailableApis => _libs.Keys.ToList();
public ApiContainer Container { get; }
public BasicApiProvider(ApiContainer apiContainer) => _libs = apiContainer.Libraries;
public BasicApiProvider(ApiContainer apiContainer) => Container = apiContainer;
public object? GetApi(Type t) => _libs.TryGetValue(t, out var api) ? api : null;
public object? GetApi(Type t) => Container.Libraries.TryGetValue(t, out var api) ? api : null;
public bool HasApi(Type t) => _libs.ContainsKey(t);
public bool HasApi(Type t) => Container.Libraries.ContainsKey(t);
}
}

View File

@ -10,6 +10,8 @@ namespace BizHawk.Client.Common
/// <returns>a list of all currently registered <see cref="IExternalApi">APIs</see> that are available</returns>
IReadOnlyCollection<Type> AvailableApis { get; }
ApiContainer Container { get; }
/// <returns>an instance of the <see cref="IExternalApi"/> <paramref name="t"/> iff available else <see langword="null"/></returns>
object? GetApi(Type t);