Mercurial > pub > ImplabNet
view Implab/IPromise.cs @ 10:aa33d0bb8c0c promises
implemeted new cancellable promises concept
author | cin |
---|---|
date | Sun, 03 Nov 2013 18:07:38 +0400 |
parents | c82e0dfbb4dd |
children | 6ec82bf68c8e |
line wrap: on
line source
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Implab { public interface IPromise { /// <summary> /// Check whereather the promise has no more than one dependent promise. /// </summary> bool IsExclusive { get; } /// <summary> /// The current state of the promise. /// </summary> PromiseState State { get; } /// <summary> /// Tries to cancel the promise or the complete chain. /// </summary> /// <param name="dependencies">Try to cancel the whole promise chain, the parent promise will be cancelled only if it has only one promise</param> /// <returns></returns> bool Cancel(bool dependencies); /// <summary> /// Registers handler for the case when the promise is cencelled. If the promise already cancelled the /// handler will be invoked immediatelly. /// </summary> /// <param name="handler">The handler</param> void HandleCancelled(Action handler); } }