diff -r 70d0c3102424 -r 411b72b73d8f Hardware/Computer.cs --- a/Hardware/Computer.cs Thu May 06 19:20:38 2010 +0000 +++ b/Hardware/Computer.cs Sun May 09 16:22:13 2010 +0000 @@ -91,21 +91,6 @@ open = true; } - private void SubHardwareUpdate(IHardware hardware) { - foreach (IHardware subHardware in hardware.SubHardware) { - subHardware.Update(); - SubHardwareUpdate(subHardware); - } - } - - public void Update() { - foreach (IGroup group in groups) - foreach (IHardware hardware in group.Hardware) { - hardware.Update(); - SubHardwareUpdate(hardware); - } - } - public bool HDDEnabled { get { return hddEnabled; } set { @@ -221,5 +206,15 @@ public event HardwareEventHandler HardwareAdded; public event HardwareEventHandler HardwareRemoved; + + public void Accept(IVisitor visitor) { + visitor.VisitComputer(this); + } + + public void Traverse(IVisitor visitor) { + foreach (IGroup group in groups) + foreach (IHardware hardware in group.Hardware) + hardware.Accept(visitor); + } } }