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); } }