Mercurial > pub > ImplabNet
view Implab/PromiseAll.cs @ 264:3a6e18c432be v3
Added XmlToJson xsl transformation.
Added JsonXmlReader.CreateJsonXmlReader(...) methods
Added SerializationHelpers.SerializeJson/DeserializeJson methods
| author | cin | 
|---|---|
| date | Mon, 16 Apr 2018 18:43:49 +0300 | 
| parents | 5cb4826c2c2a | 
| children | 
line wrap: on
 line source
using System; using System.Threading; namespace Implab { class PromiseAll : IResolvable { int m_count; readonly Deferred m_deferred; public bool Done { get { return m_deferred.Promise.IsResolved; } } public IPromise ResultPromise { get { return m_deferred.Promise; } } public void AddPromise(IPromise promise) { Interlocked.Increment(ref m_count); } public PromiseAll(Deferred deferred) { m_deferred = deferred; } public void Resolve() { if (Interlocked.Decrement(ref m_count) == 0) m_deferred.Resolve(); } public void Complete() { Resolve(); } public void Reject(Exception error) { m_deferred.Reject(error); } } }
