Cosmos/source/Cosmos.Build.Common/Enums.cs
2016-01-16 12:53:37 -06:00

115 lines
2.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace Cosmos.Build.Common
{
public enum DeploymentType
{
[Description("ISO Image")] ISO,
[Description("USB Device")] USB,
[Description("PXE Network Boot")] PXE,
BinaryImage
}
public enum LaunchType
{
[Description("None")] None,
[Description("VMware")] VMware,
[Description("Attached Slave (CanaKit)")] Slave,
[Description("Bochs")] Bochs,
[Description("Intel Edison")] IntelEdison,
}
public enum VMwareEdition
{
Workstation,
Player
}
public enum Architecture
{
x86 //, x64
}
public enum Framework
{
[Description("Microsoft .NET")] MicrosoftNET,
Mono
}
public enum LogSeverityEnum : byte
{
Warning = 0,
Error = 1,
Informational = 2,
Performance = 3
}
public enum TraceAssemblies
{
None = 0,
User = 1,
Cosmos = 2,
All = 3
};
public enum DebugMode
{
IL,
Source
}
public enum StackCorruptionDetectionLevel
{
[Description("All Instructions")] AllInstructions,
[Description("Method Footers Only")] MethodFooters
}
public sealed class DescriptionAttribute : Attribute
{
public static String GetDescription(object value)
{
Type valueType = value.GetType();
MemberInfo[] valueMemberInfo;
Object[] valueMemberAttribute;
if (valueType.IsEnum)
{
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)
{
emDescription = description;
}
public String Description
{
get { return emDescription; }
}
}
}