view Implab/Components/IInitializable.cs @ 203:4d9830a9bbb8 v2

Added 'Fail' method to RunnableComponent which allows component to move from Running to Failed state. Added PollingComponent a timer based runnable component More tests Added FailPromise a thin class to wrap exceptions Fixed error handling in SuccessPromise classes.
author cin
date Tue, 18 Oct 2016 17:49:54 +0300
parents d6a8cba73acc
children 8200ab154c8a
line wrap: on
line source

using System;

namespace Implab.Components {
    /// <summary>
    /// Initializable components are created and initialized in two steps, first we have create the component,
    /// then we have to complete it's creation by calling an <see cref="Init()"/> method. All parameters needed
    /// to complete the initialization must be passed before the calling <see cref="Init()"/>
    /// </summary>
    public interface IInitializable {
        /// <summary>
        /// Completes initialization.
        /// </summary>
        /// <remarks>
        /// Normally virtual methods shouldn't be called from the constructor, due to the incomplete object state, but
        /// they can be called from this method. This method is also usefull when we constructing a complex grpah
        /// of components where cyclic references may take place.
        /// </remarks>
        void Init();
    }
}