view Implab/SuccessPromise.cs @ 212:a01d9df88d74 v2

Added class Trace<T> to manage channels for individual classes, if SomeClass uses Trace<SomeClass> it sould be marked with TraceSourceAttribute
author cin
date Tue, 04 Apr 2017 12:04:05 +0300
parents 4d9830a9bbb8
children cbe10ac0731e
line wrap: on
line source

using System;

namespace Implab {
    public class SuccessPromise : IPromise {
        #region IPromise implementation

        public IPromise On(Action success, Action<Exception> error, Action<Exception> cancel) {
            if (success != null) {
                try {
                    success();
                    // Analysis disable once EmptyGeneralCatchClause
                } catch {
                }
            }
            return this;
        }

        public IPromise On(Action success, Action<Exception> error) {
            if (success != null) {
                try {
                    success();
                    // Analysis disable once EmptyGeneralCatchClause
                } catch {
                }
            }
            return this;
        }

        public IPromise On(Action success) {
            if (success != null) {
                try {
                    success();
                    // Analysis disable once EmptyGeneralCatchClause
                } catch {
                }
            }
            return this;
        }

        public IPromise On(Action handler, PromiseEventType events) {
            if (handler != null && events.HasFlag(PromiseEventType.Success)) {
                try {
                    handler();
                    // Analysis disable once EmptyGeneralCatchClause
                } catch {
                }
            }
            return this;
        }

        public IPromise<T> Cast<T>() {
            throw new InvalidCastException();
        }

        public void Join() {
        }

        public void Join(int timeout) {
        }

        public Type PromiseType {
            get {
                return typeof(void);
            }
        }

        public bool IsResolved {
            get {
                return true;
            }
        }

        public bool IsCancelled {
            get {
                return false;
            }
        }

        public Exception Error {
            get {
                return null;
            }
        }

        #endregion

        #region ICancellable implementation

        public void Cancel() {
        }

        public void Cancel(Exception reason) {
        }

        #endregion

    }
}