Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public InitializationStep(InitializationPass pass, string initStepName, bool isRequired, object[] initContext, MethodInfo initMethod)
 {
     Pass         = pass;
     InitStepName = initStepName;
     IsRequired   = isRequired;
     InitContext  = initContext;
     InitMethod   = initMethod;
 }
Ejemplo n.º 3
0
		public InitializationStep(InitializationPass pass, string initStepName, bool isRequired, object[] initContext, MethodInfo initMethod)
        {
			Pass = pass;
            InitStepName = initStepName;
            IsRequired = isRequired;
            InitContext = initContext;
			InitMethod = initMethod;
        }
Ejemplo n.º 4
0
 public void Initialize(InitializationPass pass)
 {
     foreach (InitializationMethod current in this.m_initializer[pass])
     {
         this.ExecuteInitializationMethod(current);
     }
     this.m_initializer[pass].Clear();
 }
Ejemplo n.º 5
0
        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);
                }
            }
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        /// <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);
        }
Ejemplo n.º 10
0
		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;
        }
Ejemplo n.º 11
0
 public InitializationAttribute(InitializationPass pass, string name)
 {
     this.IsRequired = true;
     this.Pass       = pass;
     this.Name       = name;
 }
Ejemplo n.º 12
0
 public int GetStepCount(InitializationPass pass)
 {
     return(InitSteps[pass].Count);
 }
Ejemplo n.º 13
0
 public InitializationAttribute(InitializationPass pass, string desciption = "")
 {
     this.Description = desciption;
     this.Pass        = pass;
 }
Ejemplo n.º 14
0
 public InitializationStep(InitializationPass pass, string initStepName, bool isRequired, MethodInfo initMethod) :
     this(pass, initStepName, isRequired, null, initMethod)
 {
 }
Ejemplo n.º 15
0
 public InitializationAttribute(InitializationPass pass)
 {
     this.Pass = pass;
 }
Ejemplo n.º 16
0
        /// <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;
        }
Ejemplo n.º 17
0
		public InitializationStep(InitializationPass pass, string initStepName, bool isRequired, MethodInfo initMethod) : 
			this(pass, initStepName, isRequired, null, initMethod)
        {
        }
Ejemplo n.º 18
0
 public InitializationAttribute(InitializationPass pass)
 {
     this.IsRequired = true;
     this.Name       = "";
     this.Pass       = pass;
 }
Ejemplo n.º 19
0
 public InitializationAttribute(InitializationPass pass, string name)
 {
     IsRequired = true;
     Pass       = pass;
     Name       = name;
 }
Ejemplo n.º 20
0
		public InitializationAttribute(InitializationPass pass)
		{
			IsRequired = true;
			Name = "";
			Pass = pass;
		}
Ejemplo n.º 21
0
    	/// <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;
        }
Ejemplo n.º 22
0
		public int GetStepCount(InitializationPass pass)
		{
			return InitSteps[pass].Count;
		}
Ejemplo n.º 23
0
 public InitializableAttribute(string name, InitializationPass pass)
 {
     Name = name;
     Pass = pass;
 }
Ejemplo n.º 24
0
 public InitializableAttribute(string name, InitializationPass pass)
 {
     Name = name;
     Pass = pass;
 }
Ejemplo n.º 25
0
		public InitializationAttribute(InitializationPass pass, string name)
		{
			IsRequired = true;
			Pass = pass;
			Name = name;
		}
Ejemplo n.º 26
0
 public InitializationAttribute(InitializationPass pass)
 {
     IsRequired = true;
     Name       = "";
     Pass       = pass;
 }