// // // // // $Revision: 2274 $ // using System; namespace Debugger { /// /// Unique identifier of the state of the debugee. /// Changes when debuggee is stepped, but not when properity is evaluated. /// public class DebugeeState: IExpirable, IMutable { Process process; bool hasExpired = false; public event EventHandler Expired; public event EventHandler Changed { add { process.DebuggeeStateChanged += value; } remove { process.DebuggeeStateChanged -= value; } } [Debugger.Tests.Ignore] public Process Process { get { return process; } } public bool HasExpired { get { return hasExpired; } } internal void NotifyHasExpired() { if(!hasExpired) { hasExpired = true; if (Expired != null) { Expired(this, EventArgs.Empty); } } } public DebugeeState(Process process) { this.process = process; } } }