1 //
2 // Copyright (c) 2010-2018 Antmicro
3 // Copyright (c) 2011-2015 Realtime Embedded
4 //
5 // This file is licensed under the MIT License.
6 // Full license text is available in 'licenses/MIT.txt'.
7 //
8 using System.Collections.Generic;
9 using Antmicro.Renode.Peripherals;
10 
11 namespace Antmicro.Renode.Core.Structure
12 {
13     /// <summary>
14     /// Interface for objects that allow registering peripherals and addressing/querying for them.
15     /// </summary>
16     public interface IPeripheralContainer<TPeripheral, TRegistrationPoint> :
17         IPeripheralRegister<TPeripheral, TRegistrationPoint>
18         where TPeripheral : IPeripheral where TRegistrationPoint : IRegistrationPoint
19     {
GetRegistrationPoints(TPeripheral peripheral)20         IEnumerable<TRegistrationPoint> GetRegistrationPoints(TPeripheral peripheral);
21         IEnumerable<IRegistered<TPeripheral, TRegistrationPoint>> Children { get; }
22     }
23 }
24