Utils/IoT/Connector/AUserBackend.cs
2017-10-23 19:19:02 +00:00

32 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
namespace BlubbFish.Utils.IoT.Connector {
public abstract class AUserBackend {
protected Dictionary<String, String> settings;
public abstract event TelegramMessage MessageIncomming;
public abstract event TelegramMessage MessageSending;
public delegate void TelegramMessage(Object sender, UserMessageEventArgs e);
public AUserBackend(Dictionary<String, String> settings) {
this.settings = settings;
}
public static AUserBackend GetInstance(Dictionary<String, String> 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<String, String>) }).Invoke(new Object[] { settings });
}
public abstract void Send(String message);
public abstract void Dispose();
}
}