Newer
Older
MI-AudioMixer / Library / PackageCache / com.unity.package-manager-ui@2.0.3 / Editor / Sources / Services / Common / OperationSignal.cs
@flameshadow flameshadow on 10 Apr 2019 674 bytes first commit
using System;

namespace UnityEditor.PackageManager.UI
{
    [Serializable]
    internal class OperationSignal<T> where T: IBaseOperation
    {
        public event Action<T> OnOperation = delegate { };

        public T Operation { get; set; }

        public void SetOperation(T operation)
        {
            Operation = operation;
            OnOperation(operation);
        }

        public void WhenOperation(Action<T> callback)
        {
            if (Operation != null)
                callback(Operation);
            OnOperation += callback;
        }

        internal void ResetEvents()
        {
            OnOperation = delegate { };
        }
    }
}