Hardware/HDD/HDD.cs
changeset 275 35788ddd1825
parent 258 87ccb567fae7
child 298 96263190189a
     1.1 --- a/Hardware/HDD/HDD.cs	Sat Apr 23 14:18:02 2011 +0000
     1.2 +++ b/Hardware/HDD/HDD.cs	Sat Apr 30 16:03:58 2011 +0000
     1.3 @@ -40,11 +40,10 @@
     1.4  using System.Globalization;
     1.5  
     1.6  namespace OpenHardwareMonitor.Hardware.HDD {
     1.7 -  internal class HDD : IHardware {
     1.8 +  internal class HDD : Hardware {
     1.9  
    1.10      private const int UPDATE_DIVIDER = 30; // update only every 30s
    1.11  
    1.12 -    private readonly string name;
    1.13      private readonly IntPtr handle;
    1.14      private readonly int drive;
    1.15      private int count;
    1.16 @@ -57,9 +56,9 @@
    1.17  
    1.18      public HDD(string name, IntPtr handle, int drive, 
    1.19        SMART.AttributeID temperatureID, SMART.AttributeID lifeID, 
    1.20 -      ISettings settings)
    1.21 +      ISettings settings) : base(name, new Identifier("hdd", 
    1.22 +          drive.ToString(CultureInfo.InvariantCulture)), settings)
    1.23      {
    1.24 -      this.name = name;
    1.25        this.handle = handle;
    1.26        this.drive = drive;
    1.27        this.count = 0;
    1.28 @@ -78,30 +77,11 @@
    1.29        Update();
    1.30      }
    1.31  
    1.32 -    public string Name {
    1.33 -      get { return name; }
    1.34 -    }
    1.35 -
    1.36 -    public Identifier Identifier {
    1.37 -      get { 
    1.38 -        return new Identifier("hdd", 
    1.39 -          drive.ToString(CultureInfo.InvariantCulture)); 
    1.40 -      }
    1.41 -    }
    1.42 -
    1.43 -    public HardwareType HardwareType {
    1.44 +    public override HardwareType HardwareType {
    1.45        get { return HardwareType.HDD; }
    1.46      }
    1.47  
    1.48 -    public IHardware[] SubHardware {
    1.49 -      get { return new IHardware[0]; }
    1.50 -    }
    1.51 -
    1.52 -    public virtual IHardware Parent {
    1.53 -      get { return null; }
    1.54 -    }
    1.55 -
    1.56 -    public ISensor[] Sensors {
    1.57 +    public override ISensor[] Sensors {
    1.58        get {
    1.59          if (lifeID != SMART.AttributeID.None)
    1.60            return new ISensor[] { lifeSensor };
    1.61 @@ -113,11 +93,7 @@
    1.62        }
    1.63      }
    1.64  
    1.65 -    public string GetReport() {
    1.66 -      return null;
    1.67 -    }
    1.68 -
    1.69 -    public void Update() {
    1.70 +    public override void Update() {
    1.71        if (count == 0) {
    1.72          SMART.DriveAttribute[] attributes = SMART.ReadSmart(handle, drive);
    1.73  
    1.74 @@ -151,18 +127,7 @@
    1.75        SMART.CloseHandle(handle);
    1.76      }
    1.77  
    1.78 -    #pragma warning disable 67
    1.79 -    public event SensorEventHandler SensorAdded;
    1.80 -    public event SensorEventHandler SensorRemoved;
    1.81 -    #pragma warning restore 67    
    1.82 -
    1.83 -    public void Accept(IVisitor visitor) {
    1.84 -      if (visitor == null)
    1.85 -        throw new ArgumentNullException("visitor");
    1.86 -      visitor.VisitHardware(this);
    1.87 -    }
    1.88 -
    1.89 -    public void Traverse(IVisitor visitor) {
    1.90 +    public override void Traverse(IVisitor visitor) {
    1.91        foreach (ISensor sensor in Sensors)
    1.92          sensor.Accept(visitor);
    1.93      }