public IReadOnlyList <PluginIdentifier> FindAllPluginsFor(IReadOnlyList <PluginInterface> interfaces) { var stopwatch = Stopwatch.StartNew(); Log.DebugFormat("Retrieving all plugins compatible to '{0}'...", string.Join(", ", interfaces)); var interfacesByName = CreateInterfaceMap(interfaces); // TODO: Use proper indices when necessary... var plugins = new List <PluginIdentifier>(); foreach (var pair in _pluginDescriptions.GetAll()) { if (IsSupported(pair.Value, interfacesByName)) { plugins.Add(pair.Key); } } stopwatch.Stop(); Log.InfoFormat("Found {0} plugins ({1}) (took {2}ms)", plugins.Count, string.Join(", ", plugins), stopwatch.ElapsedMilliseconds); return(plugins); }
public Task <IEnumerable <KeyValuePair <Guid, Device2> > > GetAllDevices() { return(_scheduler.StartNew(() => _devices.GetAll())); }
public Task <IEnumerable <KeyValuePair <Guid, Alarm> > > GetAllAlarms() { return(_scheduler.StartNew(() => _alarms.GetAll())); }