using System; using System.Collections.Generic; namespace BlubbFish.Utils.IoT.Connector { public abstract class AUserBackend { protected Dictionary settings; public abstract event TelegramMessage MessageIncomming; public abstract event TelegramMessage MessageSending; public delegate void TelegramMessage(Object sender, UserMessageEventArgs e); public AUserBackend(Dictionary settings) { this.settings = settings; } public static AUserBackend GetInstance(Dictionary settings) { String object_sensor = "BlubbFish.Utils.IoT.Connector.User." + Char.ToUpper(settings["type"][0]) + settings["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_sensor, true); } catch (TypeLoadException) { throw new ArgumentException("settings.ini: " + settings["type"] + " is not a UserBackend"); } return (AUserBackend)t.GetConstructor(new Type[] { typeof(Dictionary) }).Invoke(new Object[] { settings }); } public abstract void Send(String message); public abstract void Send(String message, String[] buttons); public abstract void Dispose(); } }