Utils/IoT/Connector/ADataBackend.cs

30 lines
1.1 KiB
C#
Raw Normal View History

2017-10-02 18:26:38 +02:00
using System;
using System.Collections.Generic;
namespace BlubbFish.Utils.IoT.Connector {
public abstract class ADataBackend {
public abstract event MqttMessage MessageIncomming;
public abstract event MqttMessage MessageSending;
public delegate void MqttMessage(Object sender, MqttEventArgs e);
2017-10-03 00:51:08 +02:00
public static ADataBackend GetInstance(Dictionary<String, String> settings) {
if(settings.Count == 0) {
return null;
}
2017-10-03 00:51:08 +02:00
String object_sensor = "BlubbFish.Utils.IoT.Connector.Data." + Char.ToUpper(settings["type"][0]) + settings["type"].Substring(1).ToLower();
2017-10-02 18:26:38 +02:00
Type t = null;
try {
t = Type.GetType(object_sensor, true);
} catch (TypeLoadException) {
2017-10-03 00:51:08 +02:00
throw new ArgumentException("settings.ini: " + settings["type"] + " is not a DataBackend");
2017-10-02 18:26:38 +02:00
}
2017-10-03 00:51:08 +02:00
return (ADataBackend)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>) }).Invoke(new Object[] { settings });
2017-10-02 18:26:38 +02:00
}
public abstract void Send(String topic, String data);
public abstract void Dispose();
}
}