mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-20 21:08:51 +00:00
This commit is contained in:
parent
b8da96730b
commit
c8ea6b2608
5 changed files with 3 additions and 143 deletions
|
|
@ -84,6 +84,9 @@
|
|||
<ItemGroup>
|
||||
<None Include="Cosmos.snk" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Old\Staging\Stages\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Cosmos.Kernel.Staging.Stages;
|
||||
|
||||
namespace Cosmos.Kernel.Staging {
|
||||
public class DefaultStageQueue : StageQueue {
|
||||
public DefaultStageQueue()
|
||||
: base () {
|
||||
Enqueue (new Cosmos.Kernel.Staging.Stages.KernelStage ());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Cosmos.Kernel.Staging {
|
||||
/// <summary>
|
||||
/// Represents a kernel stage.
|
||||
/// </summary>
|
||||
public abstract class StageBase {
|
||||
/// <summary>
|
||||
/// Gets the name of the stage.
|
||||
/// </summary>
|
||||
public abstract string Name {
|
||||
get;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the stage.
|
||||
/// </summary>
|
||||
public abstract void Initialize();
|
||||
|
||||
/// <summary>
|
||||
/// Tears the stage down.
|
||||
/// </summary>
|
||||
public abstract void Teardown();
|
||||
|
||||
public override string ToString() {
|
||||
return Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Cosmos.Kernel.Staging {
|
||||
/// <summary>
|
||||
/// Represents a stage queue.
|
||||
/// </summary>
|
||||
public class StageQueue {
|
||||
/// <summary>
|
||||
/// The list of initialize stages.
|
||||
/// </summary>
|
||||
private Queue<StageBase> _initialize = new Queue<StageBase>(16);
|
||||
|
||||
/// <summary>
|
||||
/// The list of teardown stages.
|
||||
/// </summary>
|
||||
private Stack<StageBase> _teardown = new Stack<StageBase>(16);
|
||||
|
||||
private StageBase _current;
|
||||
/// <summary>
|
||||
/// Gets the current kernel stage.
|
||||
/// </summary>
|
||||
public StageBase Current {
|
||||
get {
|
||||
return _current;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enqueues a stage.
|
||||
/// </summary>
|
||||
/// <param name="stage"></param>
|
||||
public void Enqueue(StageBase stage) {
|
||||
_initialize.Enqueue(stage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Runs the tasks.
|
||||
/// </summary>
|
||||
public void Run() {
|
||||
while (_initialize.Count != 0) {
|
||||
_current = (StageBase)_initialize.Dequeue();
|
||||
|
||||
Console.Write("Entering stage ");
|
||||
System.Diagnostics.Debugger.Break();
|
||||
Console.Write(Current.Name);
|
||||
Console.WriteLine(".");
|
||||
|
||||
_current.Initialize();
|
||||
_teardown.Push(Current);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Runs the teardown.
|
||||
/// </summary>
|
||||
public void Teardown() {
|
||||
while (_teardown.Count != 0) {
|
||||
_current = (StageBase)_teardown.Pop();
|
||||
|
||||
Console.Write("Leaving stage ");
|
||||
Console.Write(Current.Name);
|
||||
Console.WriteLine(".");
|
||||
|
||||
_current.Teardown();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Cosmos.Kernel.Staging.Stages {
|
||||
public class KernelStage : StageBase {
|
||||
#region IStage Members
|
||||
|
||||
public override string Name {
|
||||
get {
|
||||
return "Kernel";
|
||||
}
|
||||
}
|
||||
|
||||
public override void Initialize() {
|
||||
System.Console.Clear();
|
||||
System.Console.BackgroundColor = ConsoleColor.Black;
|
||||
System.Console.ForegroundColor = ConsoleColor.Red;
|
||||
System.Console.WriteLine("Cosmos Kernel. Copyright 2007-2008 The Cosmos Project.");
|
||||
System.Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
|
||||
System.Console.ForegroundColor = ConsoleColor.White;
|
||||
}
|
||||
|
||||
public override void Teardown() {
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue