using System;
using PepperDash.Core;
namespace PepperDash.Essentials.Core
{
///
/// Defines the contract for IStatusMonitor
///
public interface IStatusMonitor
{
IKeyed Parent { get; }
event EventHandler StatusChange;
MonitorStatus Status { get; }
string Message { get; }
BoolFeedback IsOnlineFeedback { get; set; }
void Start();
void Stop();
}
///
/// Defines the contract for ICommunicationMonitor
///
public interface ICommunicationMonitor
{
StatusMonitorBase CommunicationMonitor { get; }
}
///
/// StatusUnknown = 0, IsOk = 1, InWarning = 2, InError = 3
///
public enum MonitorStatus
{
StatusUnknown = 0,
IsOk = 1,
InWarning = 2,
InError = 3
}
public class MonitorStatusChangeEventArgs : EventArgs
{
///
/// Gets or sets the Status
///
public MonitorStatus Status { get; private set; }
///
/// Gets or sets the Message
///
public string Message { get; private set; }
public MonitorStatusChangeEventArgs(MonitorStatus status)
{
Status = status;
Message = status == MonitorStatus.IsOk ? "" : status.ToString();
}
public MonitorStatusChangeEventArgs(MonitorStatus status, string message)
{
Status = status;
Message = message;
}
}
}