public static PingEventSourceConfig LoadConfig(IPluginConfig pluginConfig) { var result = new PingEventSourceConfig(); if (pluginConfig.EventSourceConfigs.ContainsKey("qitana.Ping")) { var obj = pluginConfig.EventSourceConfigs["qitana.Ping"]; if (obj.TryGetValue("Enabled", out JToken enabled)) { result.Enabled = enabled.ToObject <bool>(); } if (obj.TryGetValue("Interval", out JToken interval)) { result.Interval = interval.ToObject <int>(); } if (obj.TryGetValue("Timeout", out JToken timeout)) { result.Timeout = timeout.ToObject <int>(); } } return(result); }
public PingEventSourceConfigPanel(PingEventSource source) { InitializeComponent(); this.source = source; this.config = source.Config; SetupControlProperties(); }
public PingController(PingEventSourceConfig config) { this.Config = config; ping = new Ping(); ping.PingCompleted += (sender, e) => { OnPingCompleted(new PingResult() { Address = e.Reply.Address.ToString(), RTT = e.Reply.RoundtripTime, Status = e.Reply.Status.ToString(), TTL = (e.Reply.Options != null) ? e.Reply.Options.Ttl : 0, TimestampRaw = ((PingUserToken)e.UserState).Timestamp, }); }; pingTimer = new System.Timers.Timer() { Interval = this.Interval, AutoReset = true }; pingTimer.Elapsed += (sender, e) => { pingTimer.Interval = this.Config.Interval; if (!this.Config.Enabled) { return; } if (string.IsNullOrWhiteSpace(Address)) { return; } try { ping.SendAsync(Address, this.Timeout, pingBytes, pingOptions, new PingUserToken()); } catch (Exception ex) { OnPingCompleted(new PingResult() { Status = "Exception", Message = ex.Message }); } }; }
public override void LoadConfig(IPluginConfig config) { Config = PingEventSourceConfig.LoadConfig(config); }