using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; using Tango.PMR.Diagnostics; namespace Tango.Integration.Operation { /// /// Represents a machine event states provider used by the machine provider to notify about current machine events and errors. /// public interface IMachineEventsStateProvider { /// /// Gets the current machine events. /// ReadOnlyObservableCollection Events { get; } /// /// Gets or sets a value indicating whether this instance has events. /// bool HasEvents { get; } /// /// Occurs when new events are available. /// event EventHandler> NewEvents; /// /// Occurs when old events has been resolved. /// event EventHandler> EventsResolved; /// /// Occurs when a new events states has been received. /// event EventHandler> EventsReceived; /// /// Occurs when the collection of current events has changed. /// event EventHandler> EventsChanged; /// /// Applies the collection of events received from the machine operator. /// /// The events. void ApplyEvents(IEnumerable events); /// /// Resets the current events tracking. /// void Reset(); } }