private bool Execute(InitializationPass pass) { var currentSteps = InitSteps[pass].ToArray(); // create copy since collection might get modified foreach (var step in currentSteps) { if (step.Executed) { continue; } if (!Execute(step)) { return(false); } } while (m_newSteps) { // step added further steps -> Retroactively init all steps of previous passes that have been added m_newSteps = false; for (var previousPass = InitializationPass.First; previousPass <= m_currentPass; previousPass++) { Execute(previousPass); } } return(true); }
public InitializationStep(InitializationPass pass, string initStepName, bool isRequired, object[] initContext, MethodInfo initMethod) { Pass = pass; InitStepName = initStepName; IsRequired = isRequired; InitContext = initContext; InitMethod = initMethod; }
public void Initialize(InitializationPass pass) { foreach (InitializationMethod current in this.m_initializer[pass]) { this.ExecuteInitializationMethod(current); } this.m_initializer[pass].Clear(); }
public void Initialize(InitializationPass pass) { foreach (var init in m_initializer[pass]) { ExecuteInitializationMethod(init); } m_initializer[pass].Clear(); }
/// <summary> /// Initializes all types in all assemblies within the current application domain. /// </summary> public static void InitializeAll() { var max = (InitializationPass)ReflectionUtility.GetEnumValueCount<InitializationPass>(); for (InitializationPass i = 0; i < max; i++) { var list = _initializers.TryGet(i); if (list == null) continue; foreach (var init in list) { Contract.Assume(init != null); RunInitializable(list, init, true); } } }
/// <summary> /// Tries to execute all initialization steps, and returns the initialization result, /// logging every failure and success. /// </summary> /// <returns>true if all initialization steps completed, false if a required step failed.</returns> public bool PerformInitialization() { m_newSteps = false; foreach (InitializationPass pass in Enum.GetValues(typeof(InitializationPass))) { if (GetStepCount(pass) > 0) { m_currentPass = pass; s_log.Info(string.Format(WCell_Core.InitPass, m_currentPass)); if (!Execute(pass)) { return(false); } } } s_log.Info(string.Format(WCell_Core.InitComplete, totalSuccess, totalFails)); return(true); }
private bool Execute(InitializationPass pass) { foreach (InitializationStep step in InitSteps[pass].ToArray()) { if (!step.Executed && !Execute(step)) { return(false); } } while (m_newSteps) { m_newSteps = false; for (InitializationPass pass1 = InitializationPass.First; pass1 <= m_currentPass; ++pass1) { Execute(pass1); } } return(true); }
/// <summary> /// Tries to execute all initialization steps, and returns the initialization result, /// logging every failure and success. /// </summary> /// <returns>true if all initialization steps completed, false if a required step failed.</returns> public bool PerformInitialization() { m_newSteps = false; // Go through every pass level foreach (InitializationPass pass in Enum.GetValues(typeof(InitializationPass))) { if (GetStepCount(pass) > 0) { // Execute steps of pass, if there are any m_currentPass = pass; s_log.Info(string.Format(Resources.InitPass, (int)m_currentPass)); if (!Execute(pass)) { return(false); } } } s_log.Info(string.Format(Resources.InitComplete, totalSuccess, totalFails)); return(true); }
private bool Execute(InitializationPass pass) { var currentSteps = InitSteps[pass].ToArray(); // create copy since collection might get modified foreach (var step in currentSteps) { if (step.Executed) { continue; } if (!Execute(step)) { return false; } } while (m_newSteps) { // step added further steps -> Retroactively init all steps of previous passes that have been added m_newSteps = false; for (var previousPass = InitializationPass.First; previousPass <= m_currentPass; previousPass++) { Execute(previousPass); } } return true; }
public InitializationAttribute(InitializationPass pass, string name) { this.IsRequired = true; this.Pass = pass; this.Name = name; }
public int GetStepCount(InitializationPass pass) { return(InitSteps[pass].Count); }
public InitializationAttribute(InitializationPass pass, string desciption = "") { this.Description = desciption; this.Pass = pass; }
public InitializationStep(InitializationPass pass, string initStepName, bool isRequired, MethodInfo initMethod) : this(pass, initStepName, isRequired, null, initMethod) { }
public InitializationAttribute(InitializationPass pass) { this.Pass = pass; }
/// <summary> /// Tries to execute all initialization steps, and returns the initialization result, /// logging every failure and success. /// </summary> /// <returns>true if all initialization steps completed, false if a required step failed.</returns> public bool PerformInitialization() { m_newSteps = false; // Go through every pass level. foreach (InitializationPass pass in Enum.GetValues(typeof(InitializationPass))) { var steps = InitSteps[pass]; // Make sure we have steps to go through. if (steps.Count > 0) { m_currentPass = pass; s_log.Info(string.Format(Resources.InitPass, (int)m_currentPass)); if (!Init(steps)) { return false; } } } s_log.Info(string.Format(Resources.InitComplete, totalSuccess, totalFails)); return true; }
public InitializationAttribute(InitializationPass pass) { this.IsRequired = true; this.Name = ""; this.Pass = pass; }
public InitializationAttribute(InitializationPass pass, string name) { IsRequired = true; Pass = pass; Name = name; }
public InitializationAttribute(InitializationPass pass) { IsRequired = true; Name = ""; Pass = pass; }
/// <summary> /// Tries to execute all initialization steps, and returns the initialization result, /// logging every failure and success. /// </summary> /// <returns>true if all initialization steps completed, false if a required step failed.</returns> public bool PerformInitialization() { m_newSteps = false; // Go through every pass level foreach (InitializationPass pass in Enum.GetValues(typeof(InitializationPass))) { if (GetStepCount(pass) > 0) { // Execute steps of pass, if there are any m_currentPass = pass; s_log.Info(string.Format(Resources.InitPass, (int)m_currentPass)); if (!Execute(pass)) { return false; } } } s_log.Info(string.Format(Resources.InitComplete, totalSuccess, totalFails)); return true; }
public int GetStepCount(InitializationPass pass) { return InitSteps[pass].Count; }
public InitializableAttribute(string name, InitializationPass pass) { Name = name; Pass = pass; }