using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Firebird2D.Interfaces { public interface IPipelineBase { /// /// Class witch owns the Pipeline and has the right to send events or delete the pipeline /// object PipelineMaster { get; } /// /// Check if no one subscribed to the event /// bool IsEventEmpty { get; } /// /// Subscribe to this event Pipeline /// /// Handler witch should be Invoked when the event is send void Subscribe(Delegate handler); /// /// Unsubscribe from this event Pipeline /// /// Handler witch should be removed from the Pipeline void Unsubscribe(Delegate handler); } /// /// Interface for the Firebird event Pipeline /// public interface IPipeline : IPipelineBase where T : EventArgs { void SendEvent(object sender, T args); } }