// Calls to these get compiled away when PROGRESS is undefined. partial void SetDepth(Promise next);
void IProgressListener.ResolveOrSetProgress(Promise sender, UnsignedFixed32 progress) { SetProgress(progress); ReleaseWithoutDisposeCheck(); }
void IProgressListener.CancelOrSetProgress(Promise sender, UnsignedFixed32 progress) { _suspended = true; _currentAmount = progress; ReleaseWithoutDisposeCheck(); }
protected override bool SubscribeProgressIfWaiterAndContinueLoop(ref IProgressListener progressListener, out Promise previous, ref ValueLinkedStack <PromisePassThrough> passThroughs) { if (_state != State.Pending) { previous = null; return(false); } return(SubscribeProgressAndContinueLoop(ref progressListener, out previous)); }
void IProgressListener.SetProgress(Promise sender, UnsignedFixed32 progress) { SetProgress(progress); }
public static ProgressDelegateCapture <TCapture> GetOrCreate(TCapture capturedValue, Action <TCapture, float> onProgress, Promise owner, CancelationToken cancelationToken = default(CancelationToken)) { var progress = _pool.IsNotEmpty ? (ProgressDelegateCapture <TCapture>)_pool.Pop() : new ProgressDelegateCapture <TCapture>(); progress._capturedValue = capturedValue; progress._onProgress = onProgress; progress.Reset(owner, cancelationToken); return(progress); }
protected override bool SubscribeProgressAndContinueLoop(ref IProgressListener progressListener, out Promise previous) { // This is guaranteed to be pending. bool firstSubscribe = _progressListeners.IsEmpty; progressListener.Retain(); _progressListeners.Push(progressListener); previous = _valueOrPrevious as Promise; if (_secondPrevious) { if (!firstSubscribe) { return(false); } // Subscribe this to the returned promise. progressListener = this; } return(previous != null); }
void Internal.ITreeHandleable.MakeReadyFromSettled(Promise owner, Internal.IValueContainer valueContainer) { throw new System.InvalidOperationException(); }
public static ProgressDelegate GetOrCreate(Action <float> onProgress, Promise owner, CancelationToken cancelationToken = default(CancelationToken)) { var progress = _pool.IsNotEmpty ? (ProgressDelegate)_pool.Pop() : new ProgressDelegate(); progress._onProgress = onProgress; progress.Reset(owner, cancelationToken); return(progress); }
protected virtual void Dispose() { _owner = null; _cancelationRegistration = default(CancelationRegistration); }
void Internal.ITreeHandleable.MakeReady(Promise owner, Internal.IValueContainer valueContainer, ref ValueLinkedQueue <Internal.ITreeHandleable> handleQueue) { throw new System.InvalidOperationException(); }
protected virtual bool SubscribeProgressIfWaiterAndContinueLoop(ref InternalProtected.IProgressListener progressListener, out Promise previous, ref ValueLinkedStack <InternalProtected.PromisePassThrough> passThroughs) { return((previous = _valueOrPrevious as Promise) != null); }
protected virtual bool SubscribeProgressAndContinueLoop(ref InternalProtected.IProgressListener progressListener, out Promise previous) { progressListener.Retain(); _progressListeners.Push(progressListener); return((previous = _valueOrPrevious as Promise) != null); }
partial void SetDepth(Promise next) { next.SetDepth(_waitDepthAndProgress); }
void IProgressListener.CancelOrSetProgress(Promise sender, UnsignedFixed32 progress) { Release(); }
partial void IncrementProgress(Promise feed);