BosmonMqtt/BosmonMqtt/BosMonPluginClass.cs
2018-09-06 20:17:26 +00:00

90 lines
2.0 KiB
C#

using System;
using BosMon.Exceptions;
using BosMon.Plugins;
using BosMon.Prefs;
namespace BlubbFish.BosmonMqtt {
public class BosMonPluginClass : IBosMonPlugin {
private readonly MqttPlugin plugin = new MqttPlugin();
#region Plugin Eigenschaften
String IBosMonPlugin.PluginName {
get {
return "MQTT-Bridge";
}
}
String IBosMonPlugin.PluginDescription {
get {
return "Sendet Telegramme nach MQTT";
}
}
Int32 IBosMonPlugin.PluginVersion {
get {
return 4;
}
}
PluginType IBosMonPlugin.PluginType {
get {
return PluginType.Client;
}
}
Int32 IBosMonPlugin.PluginFlags {
get {
return 0;
}
}
String[] IBosMonPlugin.StartPluginAfter {
get {
return new String[] { "TelegramsEvents" };
}
}
#endregion
#region Plugin Connectoren
public IBosMonHost PluginHost {
get {
return this.plugin.PluginHost;
}
set {
this.plugin.PluginHost = value ?? throw new BosMonArgumentNullException();
}
}
IBosMonConfigurationStorage IBosMonPlugin.ConfigurationStorage {
get {
return this.plugin.ConfigurationStorage;
}
set {
if (value == null) {
throw new BosMonArgumentNullException();
} else if (this.plugin.ConfigurationStorage != null) {
throw new BosMonInternalException("ConfigStorage already set");
}
this.plugin.ConfigurationStorage = value;
}
}
#endregion
#region Plugin Einstiegspunkte
void IDisposable.Dispose() {
this.plugin.Dispose(true);
GC.SuppressFinalize(this);
}
void IBosMonPlugin.InitializePlugin() {
this.plugin.Init();
}
void IBosMonPlugin.StartPlugin() {
this.plugin.Start();
}
void IBosMonPlugin.StopPlugin() {
this.plugin.Stop();
}
#endregion
}
}