Hardware/SensorVisitor.cs
author moel.mich
Sun, 23 Sep 2012 18:37:43 +0000
changeset 380 573f1fff48b2
parent 195 0ee888c485d5
permissions -rw-r--r--
Fixed Issue 387. The new implementation does not try to start a ring 0 driver that already exists, but could not be opened. It tries to delete the driver and install it new. The driver is now stored temporarily in the application folder. The driver is not correctly removed on system shutdown.
moel@161
     1
/*
moel@161
     2
 
moel@344
     3
  This Source Code Form is subject to the terms of the Mozilla Public
moel@344
     4
  License, v. 2.0. If a copy of the MPL was not distributed with this
moel@344
     5
  file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@161
     6
 
moel@344
     7
  Copyright (C) 2009-2010 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@344
     8
	
moel@161
     9
*/
moel@161
    10
moel@161
    11
using System;
moel@161
    12
using System.Collections.Generic;
moel@161
    13
moel@161
    14
namespace OpenHardwareMonitor.Hardware {
moel@161
    15
moel@161
    16
  public class SensorVisitor : IVisitor {
moel@195
    17
    private readonly SensorEventHandler handler;
moel@161
    18
moel@161
    19
    public SensorVisitor(SensorEventHandler handler) {
moel@167
    20
      if (handler == null)
moel@167
    21
        throw new ArgumentNullException("handler");
moel@161
    22
      this.handler = handler;
moel@161
    23
    }
moel@161
    24
moel@161
    25
    public void VisitComputer(IComputer computer) {
moel@167
    26
      if (computer == null)
moel@167
    27
        throw new ArgumentNullException("computer");
moel@161
    28
      computer.Traverse(this);
moel@161
    29
    }
moel@161
    30
moel@161
    31
    public void VisitHardware(IHardware hardware) {
moel@167
    32
      if (hardware == null)
moel@167
    33
        throw new ArgumentNullException("hardware");
moel@161
    34
      hardware.Traverse(this);
moel@161
    35
    }
moel@161
    36
moel@161
    37
    public void VisitSensor(ISensor sensor) {
moel@161
    38
      handler(sensor);
moel@161
    39
    }
moel@161
    40
moel@161
    41
    public void VisitParameter(IParameter parameter) { }
moel@161
    42
  }
moel@161
    43
}