Mercurial > pub > ImplabNet
annotate Implab/Components/IInitializable.cs @ 256:c52691faaf21 v3
Removed obsolete App, ComponentContainer
Extracted IAsyncComponent interface
Working on RunnableComponent
author | cin |
---|---|
date | Wed, 11 Apr 2018 03:05:14 +0300 |
parents | 7c7e9ad6fe4a |
children | f1696cdc3d7a |
rev | line source |
---|---|
152 | 1 using System; |
2 | |
3 namespace Implab.Components { | |
4 /// <summary> | |
5 /// Initializable components are created and initialized in two steps, first we have create the component, | |
205
8200ab154c8a
Added ResetState to RunnableComponent to reset in case of failure
cin
parents:
184
diff
changeset
|
6 /// then we have to complete it's creation by calling an <see cref="Initialize()"/> method. All parameters needed |
8200ab154c8a
Added ResetState to RunnableComponent to reset in case of failure
cin
parents:
184
diff
changeset
|
7 /// to complete the initialization must be passed before the calling <see cref="Initialize()"/> |
152 | 8 /// </summary> |
9 public interface IInitializable { | |
10 /// <summary> | |
11 /// Completes initialization. | |
12 /// </summary> | |
13 /// <remarks> | |
251 | 14 /// <para> |
184 | 15 /// Normally virtual methods shouldn't be called from the constructor, due to the incomplete object state, but |
250 | 16 /// they can be called from this method. This method is also usefull when we constructing a complex grpah |
152 | 17 /// of components where cyclic references may take place. |
251 | 18 /// </para> |
19 /// <para> | |
20 /// In asyncronous patterns <see cref="Initialize()"/> can be called | |
21 /// to start initialization and the <see cref="IRunnable.Completion"/> | |
22 /// property can be used to track operation completion. | |
23 /// </para> | |
152 | 24 /// </remarks> |
205
8200ab154c8a
Added ResetState to RunnableComponent to reset in case of failure
cin
parents:
184
diff
changeset
|
25 void Initialize(); |
152 | 26 } |
27 } | |
28 |