using Enigmos.Exceptions; using Enigmos.Modules.ControllingModules; using Enigmos.Ports.DataPorts; namespace Enigmos.Modules.ComputationalModules; public abstract partial class ComputationalModule : BaseModule { protected override void TimeoutHandler(ModuleExecutionTimeout timeout) { foreach (DataOutPort port in Ports.OfType()) port.DataUpdated = false; base.TimeoutHandler(timeout); } protected abstract void Compute(RootModule root); public void ComputeWithTimeoutHandle(RootModule root) { foreach (DataOutPort port in Ports.OfType()) port.DataUpdated = true; try { Compute(root); } catch (ModuleExecutionTimeout timeOut) { TimeoutHandler(timeOut); } TimeoutCheck(root); } }