Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/tools/corcompare/CompletionInfo.cs')
-rw-r--r--mcs/tools/corcompare/CompletionInfo.cs573
1 files changed, 0 insertions, 573 deletions
diff --git a/mcs/tools/corcompare/CompletionInfo.cs b/mcs/tools/corcompare/CompletionInfo.cs
deleted file mode 100644
index ab497f31eb4..00000000000
--- a/mcs/tools/corcompare/CompletionInfo.cs
+++ /dev/null
@@ -1,573 +0,0 @@
-// Mono.Util.CorCompare.CompletionInfo
-//
-// Author(s):
-// Piers Haken (piersh@friskit.com)
-//
-// (C) 2001-2002 Piers Haken
-
-using System;
-using System.Reflection;
-using System.Xml;
-using System.Collections;
-
-namespace Mono.Util.CorCompare
-{
- #region
- public struct CompletionType
- {
- private enum CompletionTypes
- {
- Present,
- Missing,
- Extra
- }
- private const int MASK_TYPE = 0x0f;
- private const int MASK_TODO = 0x10;
- //private const int MASK_ERROR = 0x20;
- private int m_type;
-
- private CompletionType (CompletionTypes type, bool fTodo)
- {
- m_type = (int) type;
-
- if (fTodo)
- m_type |= MASK_TODO;
- }
-
- public bool IsPresent
- {
- get { return Type == CompletionTypes.Present; }
- }
- public bool IsMissing
- {
- get { return Type == CompletionTypes.Missing; }
- }
- public bool IsExtra
- {
- get { return Type == CompletionTypes.Extra; }
- }
- public bool IsTodo
- {
- get { return (m_type & MASK_TODO) != 0; }
- }
- private CompletionTypes Type
- {
- get { return (CompletionTypes) (m_type & MASK_TYPE); }
- }
-
- public override string ToString ()
- {
- switch (Type)
- {
- case CompletionTypes.Missing:
- return "missing";
- case CompletionTypes.Extra:
- return "extra";
- case CompletionTypes.Present:
- return "present";
- default:
- throw new Exception ("Invalid CompletionType: "+Type);
- }
- }
-
- public static CompletionType Present
- {
- get { return new CompletionType (CompletionTypes.Present, false); }
- }
- public static CompletionType Missing
- {
- get { return new CompletionType (CompletionTypes.Missing, false); }
- }
- public static CompletionType Extra
- {
- get { return new CompletionType (CompletionTypes.Extra, false); }
- }
- public static CompletionType Compare (Object oMono, Object oMS)
- {
- if (oMono == null)
- return Missing;
- else if (oMS == null)
- return Extra;
- else
- return Present;
- }
- }
-
- /// <summary>
- /// Represents the amount of work done on a node
- /// </summary>
- /// <remarks>
- /// created by - Piersh
- /// created on - 3/2/2002 1:12:00 AM
- /// </remarks>
-
- public struct CompletionInfo
- {
- public int cPresent;
- public int cExtra;
- public int cMissing;
- public int cTodo;
-
- /// <summary>
- /// converts a CompletionTypes into a CompletionInfo
- /// sets the corresponding field to '1'
- /// </summary>
- /// <param name="ct">the CompletionTypes to convert</param>
- public CompletionInfo (CompletionType ct)
- {
- cPresent = cTodo = cMissing = cExtra = 0;
- if (ct.IsPresent)
- cPresent = 1;
- else if (ct.IsMissing)
- cMissing = 1;
- else if (ct.IsExtra)
- cExtra = 1;
-
- if (ct.IsTodo)
- cTodo = 1;
- }
-
- /// <summary>
- /// counts the total number of elements represented by this info
- /// </summary>
- public int cTotal
- {
- get
- {
- return cPresent + cTodo + cMissing;
- }
- }
-
- /// <summary>
- /// adds two CompletionInfos together
- /// </summary>
- /// <param name="m_nodeStatus"></param>
- public void Add (CompletionInfo m_nodeStatus)
- {
- cPresent += m_nodeStatus.cPresent;
- cTodo += m_nodeStatus.cTodo;
- cMissing += m_nodeStatus.cMissing;
- cExtra += m_nodeStatus.cExtra;
- }
-
- /// <summary>
- /// subtracts two CompletionInfos
- /// </summary>
- /// <param name="m_nodeStatus"></param>
- public void Sub (CompletionInfo m_nodeStatus)
- {
- cPresent -= m_nodeStatus.cPresent;
- cTodo -= m_nodeStatus.cTodo;
- cMissing -= m_nodeStatus.cMissing;
- cExtra -= m_nodeStatus.cExtra;
- if (cPresent < 0 || cTodo < 0 || cMissing < 0 || cExtra < 0)
- throw new Exception ("Completion underflow on subtract");
- }
-
- /// <summary>
- /// increments the corresponding field
- /// </summary>
- /// <param name="ct"></param>
- public void Add (CompletionType ct)
- {
- Add (new CompletionInfo (ct));
- }
- /// <summary>
- /// decrements the corresponding field
- /// </summary>
- /// <param name="ct"></param>
- public void Sub (CompletionType ct)
- {
- Sub (new CompletionInfo (ct));
- }
-
- /// <summary>
- /// adds appropriate 'missing', 'todo' & 'complete' attributes to an XmlElement
- /// </summary>
- /// <param name="elt"></param>
- public void SetAttributes (XmlElement elt)
- {
- elt.SetAttribute ("present", cPresent.ToString ());
- elt.SetAttribute ("missing", cMissing.ToString ());
- elt.SetAttribute ("extra", cExtra.ToString ());
- elt.SetAttribute ("todo", cTodo.ToString ());
-
- //int percentComplete = (cTotal == 0) ? 100 : (100 - 100 * (cMissing + cExtra) / cTotal);
- //elt.SetAttribute ("complete", percentComplete.ToString ());
- }
- }
-
- #endregion
-
- public enum PresenceTypes
- {
-// UNINITIALIZED = 0,
- Missing = 0,
- Present,
- Extra
- }
-
- public enum ErrorTypes
- {
- // TODO: order is important here... (see Status.SetError ())
-// UNINITIALIZED = 0,
- OK = 0,
- Todo,
- Warning,
- Error
- }
-
- public struct PresenceCounts
- {
- public int cMissing;
- public int cPresent;
- public int cExtra;
-
- public PresenceCounts (PresenceTypes type)
- {
- cMissing = cPresent = cExtra = 0;
- if (type == PresenceTypes.Missing)
- cMissing = 1;
- else if (type == PresenceTypes.Present)
- cPresent = 1;
- else if (type == PresenceTypes.Extra)
- cExtra = 1;
- else throw new Exception ("Invalid PresenceType");
- }
- public int Total
- {
- get { return cMissing + cPresent + cExtra; }
- }
- public void Add (PresenceCounts counts)
- {
- cMissing += counts.cMissing;
- cPresent += counts.cPresent;
- cExtra += counts.cExtra;
- }
- public void Sub (PresenceCounts counts)
- {
- cMissing -= counts.cMissing;
- cPresent -= counts.cPresent;
- cExtra -= counts.cExtra;
-
- if (cMissing < 0 || cPresent < 0 || cExtra < 0)
- throw new Exception ("Underflow");
- }
- public void Add (PresenceTypes type)
- {
- Add (new PresenceCounts (type));
- }
- public void Sub (PresenceTypes type)
- {
- Sub (new PresenceCounts (type));
- }
- public void SetAttributes (XmlElement elt, string strSuffix)
- {
- if (cMissing != 0)
- elt.SetAttribute ("missing"+strSuffix, cMissing.ToString ());
- if (cPresent != 0)
- elt.SetAttribute ("present"+strSuffix, cPresent.ToString ());
- if (cExtra != 0)
- elt.SetAttribute ("extra"+strSuffix, cExtra.ToString ());
- }
- }
-
- public struct ErrorCounts
- {
- public int cOK;
- public int cTodo;
- public int cWarning;
- public int cError;
-
- public ErrorCounts (ErrorTypes type)
- {
- cOK = cTodo = cWarning = cError = 0;
- if (type == ErrorTypes.OK)
- cOK = 1;
- else if (type == ErrorTypes.Todo)
- cTodo = 1;
- else if (type == ErrorTypes.Warning)
- cWarning = 1;
- else if (type == ErrorTypes.Error)
- cError = 1;
- else throw new Exception ("Invalid ErrorType");
- }
- public int Total
- {
- get { return cOK + cTodo + cWarning + cError; }
- }
- public void Add (ErrorCounts counts)
- {
- cOK += counts.cOK;
- cTodo += counts.cTodo;
- cWarning += counts.cWarning;
- cError += counts.cError;
- }
- public void Sub (ErrorCounts counts)
- {
- cOK -= counts.cOK;
- cTodo -= counts.cTodo;
- cWarning -= counts.cWarning;
- cError -= counts.cError;
- if (cOK < 0 || cTodo < 0 || cWarning < 0 || cError < 0)
- throw new Exception ("Underflow");
- }
- public void Add (ErrorTypes type)
- {
- Add (new ErrorCounts (type));
- }
- public void Sub (ErrorTypes type)
- {
- Sub (new ErrorCounts (type));
- }
- public void SetAttributes (XmlElement elt, string strSuffix)
- {
- if (cOK != 0)
- elt.SetAttribute ("ok"+strSuffix, cOK.ToString ());
- if (cTodo != 0)
- elt.SetAttribute ("todo"+strSuffix, cTodo.ToString ());
- if (cWarning != 0)
- elt.SetAttribute ("warning"+strSuffix, cWarning.ToString ());
- if (cError != 0)
- elt.SetAttribute ("error"+strSuffix, cError.ToString ());
- }
- }
-
- public struct Status
- {
- public PresenceTypes presence;
- public ErrorTypes error;
-
- public string PresenceName
- {
- get
- {
- if (presence == PresenceTypes.Missing)
- return "missing";
- else if (presence == PresenceTypes.Present)
- return "present";
- else if (presence == PresenceTypes.Extra)
- return "extra";
- else throw new Exception ("Invalid PresenceType");
- }
- }
- public string ErrorName
- {
- get
- {
- if (error == ErrorTypes.OK)
- return "OK";
- else if (error == ErrorTypes.Todo)
- return "todo";
- else if (error == ErrorTypes.Warning)
- return "warning";
- else if (error == ErrorTypes.Error)
- return "error";
- else throw new Exception ("Invalid ErrorType");
- }
- }
- public void SetAttributes (XmlElement elt)
- {
- if (presence != PresenceTypes.Present)
- elt.SetAttribute ("presence", PresenceName);
- if (error != ErrorTypes.OK)
- elt.SetAttribute ("error", ErrorName);
- }
- }
-
- public struct StatusCounts
- {
- public PresenceCounts presenceCounts;
- public ErrorCounts errorCounts;
-
- public void Add (StatusCounts statusCounts)
- {
- presenceCounts.Add (statusCounts.presenceCounts);
- errorCounts.Add (statusCounts.errorCounts);
- if (presenceCounts.Total != errorCounts.Total)
- throw new Exception ("invalid status counts");
- }
- public void Sub (StatusCounts statusCounts)
- {
- presenceCounts.Sub (statusCounts.presenceCounts);
- errorCounts.Sub (statusCounts.errorCounts);
- if (presenceCounts.Total != errorCounts.Total)
- throw new Exception ("invalid status counts");
- }
- public void Add (Status status)
- {
- presenceCounts.Add (status.presence);
- errorCounts.Add (status.error);
- if (presenceCounts.Total != errorCounts.Total)
- throw new Exception ("invalid status counts");
- }
- public void Sub (Status status)
- {
- presenceCounts.Sub (status.presence);
- errorCounts.Sub (status.error);
- if (presenceCounts.Total != errorCounts.Total)
- throw new Exception ("invalid status counts");
- }
- public void SetAttributes (XmlElement elt, string strSuffix)
- {
- presenceCounts.SetAttributes (elt, strSuffix);
- errorCounts.SetAttributes (elt, strSuffix);
-
- int cTotal = presenceCounts.cMissing + presenceCounts.cPresent;
- int cIncomplete =
- presenceCounts.cMissing +
- errorCounts.cTodo +
- errorCounts.cWarning +
- errorCounts.cError;
-
- if (presenceCounts.Total != errorCounts.Total)
- throw new Exception ("invalid status counts");
-
- if (cTotal != 0)
- {
- int percentComplete = 100 * (cTotal - cIncomplete) / cTotal;
- elt.SetAttribute ("complete" + strSuffix, percentComplete.ToString ());
- }
- }
- }
-
- public class NodeMessage
- {
- protected string msg;
-
- public NodeMessage (string _msg)
- {
- msg = _msg;
- }
-
- public string Message
- {
- get { return msg; }
- }
- }
-
- public class NodeStatus
- {
- public Status status;
- protected StatusCounts statusCountsChildren;
- protected StatusCounts statusCountsTotal;
- protected IList lstWarnings;
-
- public NodeStatus ()
- {
- status.error = ErrorTypes.OK;
- }
-
- /// <summary>
- /// Constructs a NodeStatus by comparing the presence of two objects
- /// it only sets the status.presence field
- /// </summary>
- /// <param name="objMono"></param>
- /// <param name="objMS"></param>
- public NodeStatus (Object objMono, Object objMS)
- {
- status.error = ErrorTypes.OK;
- statusCountsChildren = statusCountsTotal = new StatusCounts ();
- if (objMono == null)
- status.presence = PresenceTypes.Missing;
- else if (objMS == null)
- status.presence = PresenceTypes.Extra;
- else
- status.presence = PresenceTypes.Present;
- }
- public void Add (NodeStatus statusChild)
- {
- if ((int) statusChild.status.error > (int) status.error)
- status.error = statusChild.status.error;
- statusCountsTotal.Add (statusChild.statusCountsTotal);
- statusCountsChildren.Add (statusChild.statusCountsChildren);
- }
- public void AddChildren (NodeStatus statusChild)
- {
- statusCountsTotal.Add (statusChild.statusCountsTotal);
- statusCountsTotal.Add (statusChild.status);
- statusCountsChildren.Add (statusChild.status);
- }
-
- public void SubChildren (NodeStatus statusChild)
- {
- statusCountsTotal.Sub (statusChild.statusCountsTotal);
- statusCountsTotal.Sub (statusChild.status);
- statusCountsChildren.Sub (statusChild.status);
- }
-
- public void Add (StatusCounts statusCounts)
- {
- statusCountsChildren.Add (statusCounts);
- statusCountsTotal.Add (statusCounts);
- }
-
- public void Sub (StatusCounts statusCounts)
- {
- statusCountsChildren.Sub (statusCounts);
- statusCountsTotal.Sub (statusCounts);
- }
-
- public void Add (Status status)
- {
- statusCountsChildren.Add (status);
- statusCountsTotal.Add (status);
- }
-
- public void Sub (Status status)
- {
- statusCountsChildren.Sub (status);
- statusCountsTotal.Sub (status);
- }
-
-
- public bool IsMissing
- {
- get { return status.presence == PresenceTypes.Missing; }
- }
- public bool IsPresent
- {
- get { return status.presence == PresenceTypes.Present; }
- }
- public bool IsExtra
- {
- get { return status.presence == PresenceTypes.Extra; }
- }
-
- public void SetAttributes (XmlElement elt)
- {
- status.SetAttributes (elt);
- statusCountsChildren.SetAttributes (elt, "");
- statusCountsTotal.SetAttributes (elt, "_total");
-
- // add any warning messages
- if (lstWarnings != null)
- {
- XmlElement eltWarnings = elt.OwnerDocument.CreateElement ("warnings");
- elt.AppendChild (eltWarnings);
- foreach (NodeMessage msg in lstWarnings)
- {
- XmlElement eltWarning = elt.OwnerDocument.CreateElement ("warning");
- eltWarnings.AppendChild (eltWarning);
- eltWarning.SetAttribute ("text", msg.Message);
- }
- }
-
- //int percentComplete = (cTotal == 0) ? 100 : (100 - 100 * (cMissing + cExtra) / cTotal);
- //elt.SetAttribute ("complete", percentComplete.ToString ());
- }
- public void SetError (ErrorTypes errorNew)
- {
- // TODO: assumes order of error values
- if ((int) errorNew > (int) status.error)
- status.error = errorNew;
- }
- public void AddWarning (string strWarning)
- {
- if (lstWarnings == null)
- lstWarnings = new ArrayList ();
- lstWarnings.Add (new NodeMessage (strWarning));
- SetError (ErrorTypes.Warning);
- }
- }
-} \ No newline at end of file