using System;
using System.Collections.Generic;
using PepperDash.Essentials.Core.Config;
namespace PepperDash.Essentials.Core
{
///
/// Provides the basic needs for a Device Factory
///
public abstract class EssentialsDeviceFactory : IDeviceFactory where T : EssentialsDevice
{
///
public Type FactoryType => typeof(T);
///
/// A list of strings that can be used in the type property of a DeviceConfig object to build an instance of this device
///
public List TypeNames { get; protected set; }
///
/// Build the device using the configuration
///
/// The device config
/// An instance of the device
public abstract EssentialsDevice BuildDevice(DeviceConfig dc);
}
}