tbf/TBF/BenchControl/ComponentBase.cs

62 lines
1.9 KiB
C#

///
/// Copyright (c) 2013-2019 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic;
using Common;
using Config.Entities;
using TBF.BenchControl.Generic;
namespace TBF.BenchControl
{
public abstract class ComponentBase : IComponent
{
readonly Generic.IComponentCfg cfg;
public Generic.IComponentCfg Cfg { get { return cfg; } }
public string Name { get { return cfg.Name; } }
public string ClassName { get { return cfg.Factory.ClassName; } }
public string ParentName { get { return cfg.ParentName; } }
public IComponentFactory Factory { get { return cfg.Factory; } }
public int ItemNr { get { return cfg.ItemNr; } }
public DebugMode DebugLevel { get { return cfg.DebugLevel; } set { cfg.DebugLevel = value; } }
public LogLevel LogLevel { get { return cfg.LogLevel; } }
public IList<MeasurementCorrection> Corrections
{
get { return cfg.Corrections; }
set { cfg.Corrections = value; }
}
public IList<Uncertainty> Uncertainties
{
get { return cfg.Uncertainties; }
set { cfg.Uncertainties = value; }
}
/// Constructor, components created in this way is used by
/// IComponentFactory.DummyComponent() function. Such dummy component should be used
/// only for runtime class type identification (e.g. object is iValve)
public ComponentBase()
{
cfg = null;
}
/// Constructor with configuration as an argument
public ComponentBase(IComponentCfg cfg)
{
if (cfg == null) throw new ArgumentNullException("cfg");
this.cfg = cfg;
}
public abstract void Initialize();
/// <summary> Empty implementation, might be overriden in derived classes </summary>
public virtual void StartChangeHandler() { }
/// <summary> Empty implementation, might be overriden in derived classes </summary>
public virtual void StopChangeHandler() { }
}
}