using System;
using System.Collections.Generic;
namespace BizHawk.Emulation.Common
{
public interface IEmulatorServiceProvider
{
///
/// Returns whether or not T is available
///
bool HasService() where T : IEmulatorService;
///
/// Returns whether or not t is available
///
bool HasService(Type t);
///
/// Returns an instance of T if T is available
/// Else returns null
///
T GetService() where T : IEmulatorService;
///
/// Returns an instance of t if t is available
/// Else returns null
///
object GetService(Type t);
///
/// A list of all cuurently registered services available to be called
///
IEnumerable AvailableServices { get; }
}
}