moel@1: /*
moel@1:  
moel@344:   This Source Code Form is subject to the terms of the Mozilla Public
moel@344:   License, v. 2.0. If a copy of the MPL was not distributed with this
moel@344:   file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@1:  
moel@344:   Copyright (C) 2009-2011 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@344: 	
moel@1: */
moel@1: 
moel@1: namespace OpenHardwareMonitor.Hardware {
moel@1: 
moel@1:   public delegate void SensorEventHandler(ISensor sensor);
moel@298:   
moel@176:   public enum HardwareType {
moel@165:     Mainboard,
moel@165:     SuperIO,
moel@176:     CPU,
moel@370:     RAM,
moel@176:     GpuNvidia,
moel@176:     GpuAti,    
moel@176:     TBalancer,
moel@176:     Heatmaster,
moel@370:     HDD
moel@165:   }
moel@165: 
moel@110:   public interface IHardware : IElement {
moel@1: 
moel@275:     string Name { get; set; }
moel@109:     Identifier Identifier { get; }
moel@1: 
moel@165:     HardwareType HardwareType { get; }
moel@1: 
moel@1:     string GetReport();
moel@1: 
moel@1:     void Update();
moel@1: 
moel@64:     IHardware[] SubHardware { get; }
moel@64: 
moel@176:     IHardware Parent { get; }
moel@176: 
moel@1:     ISensor[] Sensors { get; }
moel@1: 
moel@1:     event SensorEventHandler SensorAdded;
moel@1:     event SensorEventHandler SensorRemoved;
moel@1:   }
moel@1: }