Cosmos/source2/Build/Cosmos.Build.Common/Enums.cs
kudzu_cp e04dbba56a
2009-05-28 14:21:15 +00:00

103 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace Cosmos.Build.Common {
public enum TargetHost
{
[Description("VMWare Workstation")]
VMWareWorkstation,
[Description("VMWare Server")]
VMWareServer,
QEMU,
[Description("Virtual PC")]
VPC,
PXE,
ISO
}
public enum Architecture
{
x86
//x64
}
public enum Framework
{
[Description("Microsoft .NET")]
MicrosoftNET,
Mono
}
public enum VMQemuNetworkCard
{
None,
[Description("Realtek RTL8139")]
RealtekRTL8139,
}
public enum VMQemuAudioCard
{
None,
[Description("PC Speaker")]
PCSpeaker
}
public enum DebugQemuCommunication
{
None,
[Description("TCP: QEMU as server, Cosmos as client")]
TCPListener,
[Description("TCP: QEMU as client, Cosmos as server")]
TCPClient,
[Description("Named Pipe: QEMU as server, Cosmos as client")]
NamedPipeListener,
[Description("Named Pipe: QEMU as client, Cosmos as server")]
NamedPipeClient
}
public class DescriptionAttribute : Attribute
{
public static String GetDescription(object value)
{
Type valueType = value.GetType();
MemberInfo[] valueMemberInfo;
Object[] valueMemberAttribute;
if (valueType.IsEnum == true)
{
valueMemberInfo = valueType.GetMember(value.ToString());
if ((valueMemberInfo != null) && (valueMemberInfo.Length > 0))
{
valueMemberAttribute = valueMemberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute),false);
if ((valueMemberAttribute != null) && (valueMemberAttribute.Length > 0))
{
return ((DescriptionAttribute)valueMemberAttribute[0]).Description;
}
}
}
valueMemberAttribute = valueType.GetCustomAttributes(typeof(DescriptionAttribute),false);
if ((valueMemberAttribute != null) && (valueMemberAttribute.Length > 0))
{
return ((DescriptionAttribute)valueMemberAttribute[0]).Description;
}
return value.ToString();
}
private string emDescription;
public DescriptionAttribute(String description)
{
this.emDescription = description;
}
public String Description
{ get { return this.emDescription; } }
}
}