Updates to device factory methodology for use in plugins

This commit is contained in:
Neil Dorin
2020-04-01 14:18:26 -06:00
parent f0010a7625
commit fcc2a5db06
5 changed files with 36 additions and 25 deletions

View File

@@ -19,9 +19,18 @@ namespace PepperDash.Essentials.Core
{
}
protected EssentialsDevice(string key, string name)
: base(key, name)
{
}
}
public abstract class Factory : IDeviceFactory
/// <summary>
/// Devices the basic needs for a Device Factory
/// </summary>
public abstract class EssentialsDeviceFactory<T> : IDeviceFactory where T:EssentialsDevice
{
#region IDeviceFactory Members
@@ -35,13 +44,16 @@ namespace PepperDash.Essentials.Core
}
}
public abstract EssentialsDevice BuildDevice(DeviceConfig dc);
#endregion
}
public abstract IKeyed BuildDevice(DeviceConfig dc);
protected Factory()
{
TypeNames = new List<string>();
}
/// <summary>
/// Devices the basic needs for a Device Factory
/// </summary>
public abstract class EssentialsPluginDeviceFactory<T> : EssentialsDeviceFactory<T>, IPluginDeviceFactory where T : EssentialsDevice
{
public string MinimumEssentialsFrameworkVersion { get; protected set; }
}
}