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 }