using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core.Config;
namespace PepperDash.Essentials.Core
{
///
/// Defines the basic needs for an EssentialsDevice to enable it to be build by an IDeviceFactory class
///
public abstract class EssentialsDevice : Device
{
protected EssentialsDevice(string key)
: base(key)
{
}
}
public abstract class Factory : IDeviceFactory
{
#region IDeviceFactory Members
public List TypeNames { get; protected set; }
public virtual void LoadTypeFactories()
{
foreach (var typeName in TypeNames)
{
DeviceFactory.AddFactoryForType(typeName, BuildDevice);
}
}
#endregion
public abstract IKeyed BuildDevice(DeviceConfig dc);
protected Factory()
{
TypeNames = new List();
}
}
}